Algoritmos

Solo disponible en BuenasTareas
  • Páginas : 2 (477 palabras )
  • Descarga(s) : 10
  • Publicado : 19 de julio de 2010
Leer documento completo
Vista previa del texto
CODIGO EN MATLAB (M-FILE)
disp ('NEWTON-RAPHSON')
xo=input('Valor inicial =');
n=input ('numero de iteraciones=');
salida=ones(n,4); % matiz de salida de datos
for i=1:nx1=xo-[(exp(-xo)-xo)]/[(-exp(-xo)-1)];
vsal=[xo;x1];
er=[[abs((xo-x1)/xo)]]*100; % error relativo porcentual
ea=[[abs((x1-xo)/x1)]]*100; % error
xo=x1;

salida(i,1)=i;salida(i,2)=x1;
salida(i,3)=er;
salida(i,4)=ea;
end
disp('ite raiz er ea');
disp(num2str(salida));
V=['sin(x1)+2^x2+log(x3)-7';'3*x1+2*x2-x3^3+1 ';'x1+x2+x3-5 '];
%se calcula eljacobiano:
DV(1,:)=[diff(V(1,:),x1), diff(V(1,:),x2),diff(V(1,:),x3)];
DV(2,:)=[diff(V(2,:),x1), diff(V(2,:),x2),diff(V(2,:),x3)];
DV(3,:)=[diff(V(3,:),x1), diff(V(3,:),x2),diff(V(3,:),x3)];
%se da elvalor de partida:
x1=0;
x2=4;
x3=2;
x_1o=[x1;x2;x3];
%se calcula H en ese punto
Vo(1,:)=eval(V(1,:));
Vo(2,:)=eval(V(2,:));
Vo(3,:)=eval(V(3,:));
%Se calcula el Jacobiano en ese puntoDV1=eval(DV);
%se calcula la Inversa del JAcobiano en ese punto
DV_1=DV1^-1;
%se calcula el siguiente valor de iteración
x_1=[x1;x2;x3]-DV_1*Vo;
%cantidad de iteraciones maxima:
n=8;
%se define a =n, si se cumple condicion de error antes, cambia
a=n;

for i=1:n
%error relativo entre aproximaciones sucecivas
er=norm(x_1-x_1o)/norm(x_1);
if er<.0001
a=i;break; end

x1=x_1(1);
x2=x_1(2);
x3=x_1(3);
x_1o=[x1;x2;x3];
Vo(1,:)=eval(V(1,:));
Vo(2,:)=eval(V(2,:));
Vo(3,:)=eval(V(3,:));
DV1=eval(DV);
DV_1=DV1^-1;x_1=[x1;x2;x3]-DV_1*Vo;

end
a
x_1

CORRIDA EN MATLAB
>> NEWTON
NEWTON-RAPHSON
Valor inicial =5
numero de iteraciones=8
ite raiz er ea
1 0.040157105599.1968579 12351.0966
2 0.509637531 1169.10923 92.1204576
3 0.566534509 11.1642048 10.0429854
4 0.567143223 0.107445228 0.107329907
5 0.56714329...
tracking img