Solucionario Segundo consolidado
1.
Newton Rapson
clear, clc;
syms k K Co;
f1=log(Co/5.45)+K*(Co^2-5.45^2)-(k*K*10*(Co+5.45))/(Co-5.45);
f2=log(Co/1.06)+K*(Co^2-1.06^2)-(k*K*20*(Co+1.06))/(Co-1.06);
f3=log(Co/0.35)+K*(Co^2-0.35^2)-(k*K*30*(Co+0.35))/(Co-0.35);
%direfenciales parciales de cada función
%funcion f1
df1k=diff(f1,k);
df1K=diff(f1,K);
df1Co=diff(f1,Co);
%funcion f2
df2k=diff(f2,k);
df2K=diff(f2,K);
df2Co=diff(f2,Co);
%fucnion f3
df3k=diff(f3,k);
df3K=diff(f3,K);
df3Co=diff(f3,Co)
Aj=[df1k df1K df1Co;df2k df2K df2Co;df3k df3K df3Co];
Bj=[-f1;-f2;-f3];
fprintf('i k K Co d\n')
e=0.0001;
ks=1;
k0=0;
K0=0;
Co0=0;
mk0=[k0;K0;Co0];
k=k0; K=K0; Co=Co0
fprintf('%2d %10.6f %10.6f\n',0,k0,K0,Co0)
ks=1;
A=eval(Aj);
B=eval(Bj);
hj=inv(A)*B;
k1=k0+hj(1); K1=K0+hj(2); Co1=Co0+hj(3);
d=norm([k1,K1,Co1]-[k0,K0,Co0]);
fprintf('%2d %10.6f %10.6f %10.5e\n',ks,k1,K1,Co1,d)
while e<d
ks=ks+1;
k=k1; K=K1; Co=Co1;
A=eval(Aj);
B=eval(Bj);
hj=inv(A)*B;
k2=k1+hj(1); K2=K1+hj(2); Co2=Co1+hj(3);
d=norm([k2,K2,Co2]-[k1,K1,Co1]);
fprintf('%2d %10.6f %10.6f %10.5e\n',ks,k2,K2,Co2,d)
if d<e
break
end
ks=ks+1;
k=k2; K=K2; Co=Co2;
A=eval(Aj);
B=eval(Bj);
hj=inv(A)*B;
k3=k2+hj(1); K3=K2+hj(2); Co3=Co2+hj(3);
d=norm([k3,K3,Co3]-[k2,K2,Co3]);
fprintf('%2d %10.6f %10.6f %10.5e\n',ks,k3,K3,Co3,d)
k1=k3; K1=K3;Co1=Co3;
end
1/Co + 2*Co*K - (30*K*k)/(Co - 7/20) + (30*K*k*(Co +
7/20))/(Co - 7/20)^2
i k K Co d
0 0.000000 0.000000
0
1 Inf Inf Inf
2 NaN NaN NaN
3 NaN NaN NaN
Newton Rapson modificado
clear, clc;
syms k K Co;
f1=log(Co/5.45)+K*(Co^2-5.45^2)-(k*K*10*(Co+5.45))/(Co-5.45);
f2=log(Co/1.06)+K*(Co^2-1.06^2)-(k*K*20*(Co+1.06))/(Co-1.06);
f3=log(Co/0.35)+K*(Co^2-0.35^2)-(k*K*30*(Co+0.35))/(Co-0.35);
%direfenciales parciales de cada función
%funcion f1
df1k=diff(f1,k);
df1K=diff(f1,K);
df1Co=diff(f1,Co);
%funcion f2
df2k=diff(f2,k);
df2K=diff(f2,K);
df2Co=diff(f2,Co);
%fucnion f3
df3k=diff(f3,k);
df3K=diff(f3,K);
df3Co=diff(f3,Co)
Aj=[df1k df1K df1Co;df2k df2K df2Co;df3k df3K df3Co];
Bj=[-f1;-f2;-f3];
fprintf('i k K Co d\n')
e=0.0001;
ks=1;
k0=0;
K0=0;
Co0=0;
mk0=[k0;K0;Co0];
k=k0; K=K0; Co=Co0
fprintf('%2d %10.6f %10.6f\n',0,k0,K0,Co0)
ks=1;
A=eval(Aj);
B=eval(Bj);
hj=inv(A)*B;
k1=k0+hj(1); K1=K0+hj(2); Co1=Co0+hj(3);
d=norm([k1,K1,Co1]-[k0,K0,Co0]);
fprintf('%2d %10.6f %10.6f %10.5e\n',ks,k1,K1,Co1,d)
while e<d
ks=ks+1;
k=k1; K=K1; Co=Co1;
A=eval(Aj);
B=eval(Bj);
hj=inv(A)*B;
k2=k1+hj(1); K2=K1+hj(2); Co2=Co1+hj(3);
d=norm([k2,K2,Co2]-[k1,K1,Co1]);
fprintf('%2d %10.6f %10.6f %10.5e\n',ks,k2,K2,Co2,d)
if d<e
break
end
ks=ks+1;
k=k2; K=K2; Co=Co2;
A=eval(Aj);
B=eval(Bj);
hj=inv(A)*B;
k3=k2+hj(1); K3=K2+hj(2); Co3=Co2+hj(3);
d=norm([k3,K3,Co3]-[k2,K2,Co3]);
fprintf('%2d %10.6f %10.6f %10.5e\n',ks,k3,K3,Co3,d)
k1=k3; K1=K3;Co1=Co3;
end
i k K Co d
0 -10.000000 -20.000000
0 1 -Inf -Inf
NaN NaN >>
2.
Doolitle
clc, clear all
a=[18 20 24;4 4 3;5 4 6];%matriz de coeficientes
b=[26400;4900;6200];
ab=[a,b];%matriz aumentada
n=3;
u=zeros(3);
syms l21 l31 l32 u11 u12 u13 u22 u23 u33 c1 c2 c3 x1 x2 x3
l=[1 0 0;l21 1 0;l31 l32 1];
u=[u11 u12 u13;0 u22 u23;0 0 u33];
lu=l*u
for i=1:3
for j=1:n
fprintf('%2.2f=',a(i,j)), disp(lu(i,j))
end
end
u(1,1)=a(1,1); u(1,2)=a(1,2); u(1,3)=a(1,3);
l(2,1)=a(2,1)/u(1,1); u(2,2)=a(2,2)-l(2,1)*u(1,2);
u(2,3)=a(2,3)-l(2,1)*u(1,3);
l(3,1)=a(3,1)/u(1,1);
l(3,2)=(a(3,2)-l(3,1)*u(1,2))/u(2,2);
u(3,3)=(a(3,3)-l(3,1)*u(1,3)-l(3,2)*u(2,3));
C=[c1;c2;c3];
x=[x1;x2;x3];
lc=l*C;
fprintf('%5s\t','');disp('haciendo L*C=B, obtenemos:')
fprintf('%5s\t','');disp('==========================================')
for i=1:n
fprintf('%2.3f=',b(i)), disp(lc(i))
end
fprintf('%5s\t','');disp('Resolviendo las tres ecuaciones obtenemos:')
fprintf('%5s\t','');disp('==========================================')
fprintf('\n')
c1=b(1,1);
c2=(b(2,1)-l(2,1)*c1);
c3=b(3,1)-l(3,1)*c1-l(3,2)*c2;
c=[c1;c2;c3];
fprintf('c1='), disp(c(1,1)), fprintf('\n')
fprintf('c2='), disp(c(2,1)), fprintf('\n')
fprintf('c3='), disp(c(3,1)), fprintf('\n')
ux=u*x;
fprintf('%5s\t','');disp('haciendo U*X=c, y resolviendo obtenemos:')
fprintf('%5s\t','');disp('==========================================:')
fprintf('\n')
x3=c(3)/u(3,3)
x2=(c(2)-u(2,3)*x3)/u(2,2)
x1=(c(1)-u(1,2)*x2-u(1,3)*x3)/u(1,1)
u=
[ u11, u12, u13]
[ l21*u11, u22 + l21*u12, u23 + l21*u13]
[ l31*u11, l31*u12 + l32*u22, u33 + l31*u13 + l32*u23]
18.00=u11
20.00=u12
24.00=u13
4.00=l21*u11
4.00=u22 + l21*u12
3.00=u23 + l21*u13
5.00=l31*u11
4.00=l31*u12 + l32*u22
6.00=u33 + l31*u13 + l32*u23
haciendo L*C=B, obtenemos:
==========================================
26400.000=c1
4900.000=(2*c1)/9 + c2
6200.000=(5*c1)/18 + (7*c2)/2 + c3
Resolviendo las tres ecuaciones obtenemos:
==========================================
c1=26400
c2=-2900/3
c3=2250
haciendo U*X=c, y resolviendo obtenemos:
==========================================:
x3 =
300
x2 =
600
x1 =
400
>>