Programa MATLAB (Newton Raphson 2 variables)
Estoy intentando programar el método iterativo de newton raphson en MATLAB y creo que lo que es el algoritmo de dentro del bucle y lo demás esta bien pero en la condición del while lo he intentado todo, pero no se porque no entra en el bucle y por tanto hace las repeticiones.
Se que puede ser una chapuza porque estoy empezando pero porfavor solo dime lo que tengo mal y lo corrijo no quiero que cambies la sintaxis gracias.
Se que faltan los ';' al final de las sentencias pero es para ir comprobando lo que va haciendo el programa y donde falla. Gracias otra vez.
function raphson2v
syms x y
f1=input('Inserte la primera la funcion....\n');
f2=input('Inserte la segunda funcion.......\n');
x0=input(' Inserte valor inicial de la primera variable...');
y0=input ('Inserte valor inicial de la segunda variable...');
d=input('Inserte el numero de decimales de precision...');
E=10^(-d)
F= [f1;f2]
J=jacobian(F,[x,y])
prod=J\F
sol=[x0;y0]
sustsol=subs(F,{x,y},{sol(1,1),sol(2,1)})
%Sustituir las soluciones que se van obteniendo en las funciones, para ver cuando estan cerca(<Error) de cumplirlas%
iter=0;
while (E>sustsol(1,1) && E>sustsol(2,1))
sol=subs(sol-prod,{x y},{sol(1,1),sol(2,1)})
iter=iter+1;
sustsol=subs(F,{x,y},{sol(1,1),sol(2,1)})
fprintf('%f \n',sustsol(1,1));
fprintf('%f \n',sustsol(2,1));
end %sol=inic-subs(prod,{x,y},{sol(1,1),sol(2,1)});
fprintf('X=%f\n',sol(1,1));
fprintf('Y=%f\n',sol(2,1));
fprintf('\nSe han necesitado %d iteraciones',iter);
end
1 respuesta
Respuesta de Valero Angel Serrano Mercadal
3

¿Podrías poner el código con los cambios realizados? - Jose Maria Manuel Merino