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