Dunque, devo risolvere un sistema non lineare di equazioni con il metodo di Newton-Raphson al variare di un parametro t (tempo); ho pensato di scrivere un metodo che disponga i vettori delle soluzioni come colonne di una matrice, per poi tracciarne i grafici con il comando plot.
Il listato è questo:
codice:
function T = newra(x0,eps,max_iter)
T=zeros(61,8);
i=1;
t=0;
f=fun(x0,t);
norma_residui=norm(f);
while(t<=6)&&(i<=61)
k=0;
while(norma_residui>eps)
f=fun(x0,t);
J=jac(x0,t); % Calcola la norma del vettore dei residui norma_residui=norm(f);
x=x0-J\f;
k=k+1;
if(k>max_iter)
disp('no');
disp(k);
break,
end
x0=x;
end
t=t+0.1;
for j=1:8
T(i,j)=x(j);
end
i=i+1;
x0=x;
end
end
dove fun e jac sono metodi che sostituiscono rispettivamente al sistema di equazioni e alla matrice Jacobiana gli elementi del vettore x0 e il valore del tempo x.
Il risultato che ottengo è una matrice 61X8 (come deve essere) in cui però compare in tutte le colonne la stessa soluzione, quella con t=0. Come mai?