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:
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.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
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?

Rispondi quotando