Você está na página 1de 13

% Metodo Matricial de NEWTON RAPHSON:

clear
clc
tol=0.001;
x=input('valores para x= ')
y=input('valores para y= ')
for c=1:50;
f1=x^2+x*y-10;
f2=y+3*x*y^2-57;
A(1,1)=2*x+y;
A(2,1)=3*y^2;
A(1,2)=x;
A(2,2)=1+6*x*y;
F(1,1)=-f1;
F(2,1)=-f2
B=inv(A);
H=B*F;
Nx=H(1,1)+x;
Ny=H(2,1)+y;
D=(H(1,1)^2+H(2,1)^2)^0.5;
if D<tol
Nx
Ny
break
else
x=Nx;
y=Ny;
end
end

tol=0.001
nmax=50
xi=input('ingrese numeroxi=')
xs=input('ingrese numeroxs=')
fxi=3*xi^3+2*xi^2+10*xi-20
fxs=3*xs^3+2*xs^2+10*xs-20
if fxi*fxs>0
disp('intervalo no valido')
break
end
for c=1:nmax
xn=(xi+xs)/2
fxn=3*xn^3+2*xn^2+10*xn-20
if abs(fxn)<=tol
xn;
break
else
xi=xn;
end
end
% Metodo Matricial de NEWTON RAPHSON:
clear
clc
tol=0.001;
x=input('valores para x= ');
y=input('valores para y= ');
for c=1:50;
f1=x^2+x*y-10;
f2=y+3*x*y^2-57;
dfx1=2*x+y;
dfx2=3*y^2;
dfy1=x;
dfy2=1+6*x*y;
A=[dfx1,dfy1;dfx2,dfy2];
F=[-f1;-f2];
B=inv(A);
H=B*F;

Nx=H(1)+x;
Ny=H(2)+y;
D=(H(1)^2+H(2)^2)^0.5;

if abs(D)<=tol
Nx
Ny
break
else
x=Nx;

y=Ny;
end
end

newton
clear
tol=0.001;
NMAXITE=50;
x=input('ingrese el valor inicial de x = ');
clc
for c=1:NMAXITE;
Fx=x^3+2*x^2+10*x-20;
DFx=3*x^2+4*x+10;
NUEVAx=x-Fx/DFx;
NFx=NUEVAx^3+2*NUEVAx^2+10*NUEVAx-20;
if abs(NFx)<=tol
NUEVAx;
break
end
x=NUEVAx;
end
NUEVAx
abs(NFx)
c

% calcular el vulomen del oxigeno segun "Peng Robinson" :


tol<0.001;
Mmax=50;
Vi=input('ingresar valor Vi=')
Vs=input('ingresar valor Vs=')
T=273
P=1
R=0.462
w= 0.021
Tc= 154.4
Pc= 49.7
a=0.45724*R^2*Tc^2/Pc
b=0.0778*R*Tc/Pc
Tr=T/Tc
Tet= a*(1+(0.37464+1.5422*w-0.26992*w^2)*(1+Tr^1/2))^2
FVi=Vi^3+(b-(R*T)/P)*Vi^2+(((a*Tet-2*b*R*T)/P)-3*b)*Vi+((R*T*ba*Tet*b)/P)+b^3
FVs=Vs^3+(b-(R*T)/P)*Vs^2+(((a*Tet-2*b*R*T)/P)-3*b)*Vs+((R*T*ba*Tet*b)/P)+b^3
if FVi*FVs>0
disp('mal intervalo')
break
end
subplot(1,2,0)
disp('Grafica Pres Vs Temp')
plot(Temp,Pres);
title('Grafica Presion Vs Temperatura');
xlabel('Temperatura');
ylabel('Presion');

subplot(1,2,2)
disp('Grafica volumen Vs Temperatura')
plot(Temp,Ental);
title('Grafica volumen Vs Temperatura');
xlabel('Temperatura');
ylabel('volumen');
% Metodo Matricial de NEWTON RAPHSON:
clear
clc
tol=0.001;
x=input('valores para x= ')
y=input('valores para y= ')
for c=1:50;
f1=x^2+x*y-10;
f2=y+3*x*y^2-57;
A(1,1)=2*x+y;
A(2,1)=3*y^2;
A(1,2)=x;
A(2,2)=1+6*x*y;
F(1,1)=-f1;
F(2,1)=-f2
B=inv(A);
H=B*F;
Nx=H(1,1)+x;
Ny=H(2,1)+y;
D=(H(1,1)^2+H(2,1)^2)^0.5;
if D<tol
Nx
Ny
break
else
x=Nx;
y=Ny;
end
end

newton
tol=0.00001
xi=input ('introducir valor inicial de x =
for y = 1:10;
F = xi^3+2*(xi^2)+10*xi-20
df = 3*(xi^2)+(4*xi)+10
Y = xi - (F/df)
F1=Y^3+2*(Y^2)+10*Y-20
if abs(F1)<=tol

')

Y
break
else
xi = Y
end
end
y
tol=0.00001
xi=input ('introducir valor inicial de x =
while xi >=tol
F = xi^3+2*(xi^2)+10*xi-20
df = 3*(xi^2)+(4*xi)+10
Y = xi - (F/df)
F1=Y^3+2*(Y^2)+10*Y-20
if abs (F1)<=tol
Y
break
else
xi=Y
end
end

% punto fijo multivariable:


clc
x=input('ingresar el valor de x= ');
y=input('ingresar el valor de y= ');
tol=0.001
Nmax=50;
for c=1:Nmax;
nx=(10-x^2)/y
ny=57-3*x*y^2
h1=nx-x
h2=ny-y
D=(h1^2+h2^2)^(0.5)
if D<=tol
nx
ny
break
end
if D>=tol
x=nx
y=ny
end
end
c

% punto fijo multivariable:


clc
x=input('ingresar el valor de x= ');
y=input('ingresar el valor de y= ');

')

tol=0.001
Nmax=50;
for c=1:Nmax;
nx=(10-x^2)/y
ny=57-3*x*y^2
h1=nx-x
h2=ny-y
D=(h1^2+h2^2)^(0.5)
if D<=tol
disp(nx)
disp(ny)
break
end
x=nx
y=ny
end
end
c

%newton multivariable:
clc
x=input('ingresar el valor de x= ');
y=input('ingresar el valor de y= ');
tol=0.001
Nmax=50;
for c=1:Nmax;
Fx=x^2+x*y-10;
Fy=y+3*x*y^2-57;
dFx=2*x+y;
dFy=1+6*x*y;
nx=x-Fx/dFx;
ny=y-Fy/dFy;
NFx=nx^2+nx*y-10;
NFy=ny+3*x*ny^2-57;
h1=nx-x;
h2=ny-y;
D=(h1^2+h2^2)^(0.5);
if D<=tol
disp(nx);
disp(ny);
break
end
x=nx;
y=ny;
end
end
c

%ejercicio:
tol=0.001
Nmax=50
xi=input('ingrese numeroxi=')
xs=input('ingrese numeroxs=')
fxi=3*xi^3+2*xi^2+10*xi-20
fxs=3*xs^3+2*xs^2+10*xs-20
if fxi*fxs>0
'intervalo no valido'
break
end
for c=1:Nmax
xr=(xi+xs)/2
fxr=3*xr^3+2*xr^2+10*xr-20
if abs(fxr)<=tol
xr;
break
end
if fxi*fxr>0
xi=xr
fxi=fxr
else
xs=xr
fxs=fxr
end
end

%metodo de newton:
tol=0.001;
NMAX=50
x=input('ingresar valor inicial de x= ');
for c=1:NMAX;
Fx=(x^3)+(2*x^2)+10*x-20;
DFx=(3*x^2)+4*x+10;
Nx= x-Fx/DFx
NFx=Nx^3+2*Nx^2+10*Nx-20;
if abs(NFx)<=tol
Nx;
break
end
x=Nx;
end
NFx
c
%ejercicio:
tol=0.001
nmax=50
xi=input('ingrese numeroxi=')
xs=input('ingrese numeroxs=')
fxi=3*xi^3+2*xi^2+10*xi-20
fxs=3*xs^3+2*xs^2+10*xs-20
if fxi*fxs>0

disp('intervalo no valido')
break
end
for c=1:nmax
xn=(xi+xs)/2
fxn=3*xn^3+2*xn^2+10*xn-20
if abs(fxn)<=tol
xn;
break
else
xi=xn;
end
end

biseccion
XI =input ('ingresar el valor de XI =
');
XS= input ('ingresar el valor de XS =
');
FXI = 3*(XI^3)+2*(XI^2)+10*XI-20
FXS = 3*(XS^3)+2*(XS^2)+10*XS-20
nmax=70
tol = 0.001
for c=1:nmax
Xn = (XI+XS)/2
FXn = 3*(Xn^3)+2*(Xn^2)+10*Xn-20
if abs(FXn) <= tol
Xn
break
else
if
FXn*FXI < 0
XS=Xn
else
XI = Xn
end
end
end
c
XI =input ('ingresar el valor de XI =
');
XS= input ('ingresar el valor de XS =
');
FXI = 3*(XI^3)+2*(XI^2)+10*XI-20
FXS = 3*(XS^3)+2*(XS^2)+10*XS-20
nmax=70
tol = 0.001
if FXI* FXS >0
fprintf('intervalo no valido')
break
else
for c=1:nmax
Xn = (XI+XS)/2
FXn = 3*(Xn^3)+2*(Xn^2)+10*Xn-20
if abs(FXn)<=tol
Xn

break
else
XI = Xn
end
end
c
end

XI =input ('ingresar el valor de XI =


XS= input ('ingresar el valor de XS =
y = feval ('bisec',XI);
z = feval ('bisecs',XS);
nmax=70;
tol = 0.001;
for c=1:nmax
p = feval('prom', XS,XI);
e = feval ('error',Xn);
if abs(FXn) <= tol
Xn
break
else
if
FXn*FXI < 0
XS=Xn
else
XI = Xn
end
end
end
c

');
');

punto fijo
tol=0.00001
xi=input ('introducir valor inicial de x =
for y = 1:10;
g =xi^3+2*(xi^2)+10*xi-20+xi
E= (g-xi)/g
if abs(E)<=tol
g
fprintf('converge')
break
else
xi = g
fprintf('noconverge')
end
end
y

')

%
RESOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS
%
RUNGE-KUTTA CUARTO ORDEN
%
%
Autor: Ing. Miguel Angel Crdenas Mlaga
%
Febrero 2001
%---------------------------------------------------------------------------%
INSTRUCCIONES
%
Defina ecuacin a resolver en:
%
archivo de funcin: edo.m
%
NOMENCLATURA
%
x variable independiente
%
y variable dependiente
%--------------------------------------------------------------------------clc
fprintf('INGRESE CONDICIONES INICIALES\n\n')
x = 0;
y = input('ingrese Y
para X = 0:
y = ');
xf = input('ingrese el valor final de x= ');
h = input('ingrese ancho de paso h = ');
fprintf('-----------------------------------------------------------------------------------------\n');
fprintf('
METODO DE RUNGE KUTTA DE CUARTO ORDEN: RK4\n\n')
fprintf('
x
y
k1
k2
k3
k4
ymas1\n')
fprintf('-----------------------------------------------------------------------------------------\n');
while x <= xf;
k1=feval('edo',x,y);
xk = x +h/2;
yk = y + h*k1/2;
k2=feval('edo',xk,yk);
yk = y + h*k2/2;
k3=feval('edo',xk,yk);
xk = x +h;
yk = y + h*k3;
k4=feval('edo',xk,yk);
y1 = y + h/6*(k1+2*k2+2*k3+k4);
fprintf('%5.3f%13.3f%13.2f%13.3f%13.3f%13.3f%13.3f\n',x,y,k1,k2,k3,k4,y1)
;
x = x + h;
y = y1;
end
fprintf('-------------------------------------------------------------------------------------------\n');
fprintf('
x
y
k1
k2
k3
k4
ymas1\n')
fprintf('-------------------------------------------------------------------------------------------\n');

RESOLUCION DE ECUACIONES DIFERENCIALES ORDINARIAS


%
RUNGE-KUTTA CUARTO ORDEN
%
%
Autor: Ing. Miguel Angel Crdenas Mlaga
%
Febrero 2001
%----------------------------------------------------------------------------%
INSTRUCCIONES
%
Defina ecuacin a resolver en:
%
archivo de funcin: edo.m
%
NOMENCLATURA
%
x variable independiente
% y variable dependiente
%---------------------------------------------------------------------------clc
fprintf('INGRESE CONDICIONES INICIALES\n\n')
t = 0;
% T1 = input('ingrese T1 para X = 0: y = ');
%xf = input('ingrese el valor final de t= ');
%h = input('ingrese ancho de paso h = ');
h = 1;
tf = 10;
x=88;
y = 45;
fprintf('------------------------------------------------------------------------------------------ \n');
fprintf('
METODO DE RUNGE KUTTA DE CUARTO ORDEN: RK-4\n\n')
fprintf(' x
y
k11
k12
k13
k21
k11
k13
k21
ymas1\n')
fprintf('------------------------------------------------------------------------------------------\n');

k12

while t <= tf;


[k11,k12]=feval('edomulti',x,y);
xk = x +h/2*k11;
yk = y + h*k12/2;
[k21,k22]=feval('edomulti',xk,yk);
xk = x +h/2*k21;
yk = y + h*k22/2;
[k31,k32]=feval('edomulti',xk,yk);
xk = x +h*k31;
yk = y + h*k32;
[k41,k42]=feval('edomulti',xk,yk);
x1 = x + h/6*(k11+2*k21+2*k31+k41);
y1 = y + h/6*(k12+2*k22+2*k32+k42);
fprintf('%5.3f%13.3f%13.2f%13.3f%13.3f%13.3f%13.3f%13.2f%13.3f%13.3f%13.3f%13.3
f\n',x,y,k11,k12,k21,k22,k31,k32,k41,k42, x1,y1);
t = t + h;
y = y1;
x = x1;
end
fprintf('-------------------------------------------------------------------------------------------- \n');
fprintf(' x
y
k1
k2
k3
k4
ymas1\n')
fprintf('-------------------------------------------------------------------------------------------- \n');

RESOLUCION DE ECUACIONES ALGEBRAICAS NO LINEALES


%
METODO DE PUNTO FIJO
%
%
Autor: Ing. Miguel Angel Crdenas Mlaga
%
enero 2001
%---------------------------------------------------------------------------%
INSTRUCCIONES
%
Defina la funcion gx en:
%
archivo de funcin: gx.m
%
Defina la derivada de gx en:
%
archivo de derivada: gprima.m
%
%
NOMENCLATURA
%
x: Aproximacin inicial
%
tol:
Tolerancia
%
maxite: Nmero mximo de iteraciones
%
conta: Contador de iteraciones
%
xuno:
Siguiente valor de x (xi+1)
%
ea: Error actual
%
conta: Contador de iteraciones
%--------------------------------------------------------------------------maxite = 50;
tol = 0.0001;
ea = 10;
conta = 0;
clc
x = input('ingrese el valor inicial x= ');
fprintf('----------------------------------------------------------------------------\n');
fprintf('
METODO DE PUNTO FIJO\n')
fprintf('itera
x
xuno
gprima
ea\n');
fprintf('----------------------------------------------------------------------------\n');
while ea > tol
conta = conta +1;
if conta < maxite
xuno=feval('gx',x);
gpri=feval('gprima',x);
ea=abs(x -xuno);
fprintf('%3.0f%12.4f%12.4f%12.4f%12.4f\n',conta,x,xuno,gpri,ea);
x=xuno;
else
break
end
end
fprintf('-----------------------------------------------------------------------------\n');
if (conta>=maxite)
fprintf('
EL METODO NO CONVERGE\n');

else
fprintf('
end

LA RESPUESTA ES:%12.4f\n',x);

Você também pode gostar