Guardar datos de un ciclo while
Publicado por Natus (3 intervenciones) el 24/02/2018 17:44:47
Buenos Dias compañeros, me encuentro en un problema, se trata del metodo Gauss-Seidel, como veran el codigo si compila y encuentra la solucion mi problema va en que yo deseo guardar los datos de cada iteracion y no solo la solucion, espero puedan ayudarme

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
%Datos:
A=[4 3 0; 3 4 -1; 0 -1 4];
b=[24;30;-24];
w=1.25;
tol=0.00001;
it=20;
%PROGRAMA
function [x, error, iter,Navi] = GNavi(A,b,w,tol,c)
% Resolución por SOR (compacto)
if nargin<5, tol=sqrt(eps);
end
n=size(A,1);
x=zeros(n,1);
r = b - A*x;
error = norm(r);
iter=0;
if error<tol, return, end
b = w * b;
M = w * tril(A,-1) + diag(diag(A));
N = -w * triu(A,1) + (1.0 - w) * diag(diag(A));
k=0;
while error>=tol && k<c
x_1 = x;
x = M \ ( N*x + b );
error = norm(x - x_1)/norm(x);
iter = iter+1;
Navi=[iter x_1'];
disp(Navi)
end
end

Valora esta pregunta


0