
Ayuda a Optimizacion de Gauss-Seidel
Publicado por Jorge (2 intervenciones) el 17/11/2015 16:15:00
Tengo el siguiente programa de Gauss-Seidel en matlab.
Quería ver si me ayudan con IDEAS para optimizarlo mucho mas de lo que esta actualmente.
Tal vez con la ayuda de algunos comandos que realicen tareas automáticamente.
He probado con la implementacion de normas para la solución del mismo, también con matrices transpuestas, pero de esas formas el programa sale mucho mas largo.
Contrario a lo que busco su optimizacion. (menos código).
Gracias de antemano.
Quería ver si me ayudan con IDEAS para optimizarlo mucho mas de lo que esta actualmente.
Tal vez con la ayuda de algunos comandos que realicen tareas automáticamente.
He probado con la implementacion de normas para la solución del mismo, también con matrices transpuestas, pero de esas formas el programa sale mucho mas largo.
Contrario a lo que busco su optimizacion. (menos código).
Gracias de antemano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
clear;clc
ind1=0;
while ind1==0
A=input('Ingrese la Matriz: ');
[n,m]=size(A);
c=0;
for i=1:n
s=sum(A(i,:))-(A(i,m))-(A(i,i));
if abs(A(i,i))>abs(s)
c=c+1;
end
end
if c~=n
fprintf(' La Matriz no es Diagonal Dominante en Filas\n')
input(' Enter para Continuar ');
clc
else
ep=input('Ingrese el valor del Error Permitido: ');
im=input('Ingrese el numero de Iteraciones Maximas: ');
ind1=1;
it=0;
X=zeros(1,n);
Xa=zeros(1,n);
ind2=0;
cont=0;
while ind2==0;
it=it+1;
for i=1:n
Xa(i)=X(i);
sum=0;
for j=1:n
if i~=j
sum=sum+A(i,j)*X(j);
end
end
X(i)=(A(i,m)-sum)/abs(A(i,i));
ei=abs(X(i)-Xa(i));
if ei<=ep
cont=cont+1;
end
if cont==n
ind2=1;
end
end
cont=0;
ind3=0;
if it>im
fprintf(' No convergue o pocas iteraciones\n')
ind2=1;
ind3=1;
end
end
if ind3~=1
for h=n:-1:1
fprintf(' La Variable X%d es: %6.3f\n',h,X(h))
end
end
end
end
Valora esta pregunta


0