clear; clc; fprintf('\n metodo de Newton Rapson Modificado\n\n'); funcion=input('Dame la funcion f(x) : ','s'); dfuncion=input('Dame la derivada de funcion f(x) : ','s'); d2funcion=input('Dame la segunda derivada de funcion f(x) : ','s'); xi=input('Dame el valor inicial de x : '); e=input('Dame el porciento del error : '); ea=1000; c=1; x=xi; while ea>e g=eval(funcion); h=eval(dfuncion); k=eval(d2funcion); j=x-(g*h)/(h^(2)-(g*k)); ea=abs((j-x)/j*100); x=j; c=c+1; end fprintf('\n\n\n\nLa raiz exacta es: %d',j) fprintf('\n\nNumero de iteraciones: %d',c);
videotutoriales de matlab, octave, numpy, python, POA, algoritmia, simulacion de procesos en ingenieria quimica, y algo de ingenieria quimica
domingo, 12 de febrero de 2012
Método de Newton Raphson Modificado en Matlab
Suscribirse a:
Enviar comentarios (Atom)
que es la senda de la derivada
ResponderEliminarSegunda derivada, perdon, use www.tohtml.com para editar el codigo pero ha presentado errores . =(
Eliminargracias ya esta corregido
Eliminarclc
ResponderEliminarx0=input('introducir el vector inicial (3):');
it=0;
ep=1;
Nmax=input('introducir el numero de iteraciones maximas:');
while ep>0.0001 & it<Nmax
it=it+1;
f1=x0(1)^2-4*x0(1)+x0(2)^2;
f2=x0(1)^2-x0(1)-12*x0(2)+1;
f3=x0(1)+x0(2)+x0(3)-6;
df1x=2*x0(1)-4;
df1y=2*x0(2);
df1z=0;
df2x=2*x0(1)-1;
df2y=-12;
df2z=0;
df3x=1;
df3y=1;
df3z=1;
A=[df1x df1y df1z -f1;df2x df2y df2z -f2;df3x df3y df3z -f3];
A(1,:)=A(1,:)/A(1,1);
A(2,:)=A(2,:)-A(1,:)*A(2,1);
A(3,:)=A(3,:)-A(1,:)*A(3,1);
A(2,:)=A(2,:)/A(2,2);
A(3,:)=A(3,:)-A(2,:)*A(3,2);
A(3,:)=A(3,:)/A(3,3);
A(2,:)=A(2,:)-A(3,:)*A(2,3);
A(1,:)=A(1,:)-A(3,:)*A(1,3);
A(1,:)=A(1,:)-A(2,:)*A(1,2);
D=A(:,4);
x=D'+x0
ep=norm(x0-x);
disp([it x ep]);
x0=x;
end