Informatica Aplicada A La Ing. Quimica - Ucm
Informatica Aplicada A La Ing. Quimica - Ucm
Informatica Aplicada A La Ing. Quimica - Ucm
Encontrar el vector (x1,…….,xn) que hace que todas las ecuaciones sean igual a
cero Matlab tiene una sentencia para resolver esto: fsolve.m.
cero. fsolve m Utilizamos una
forma mejorada de este que es csolve.m
INFORMATICA APLICADA A LA INGENIERÍA QUIMICA: 2ª parte MATLAB
[x,rc]=csolve(‘nombrefunción’,x0,’gradfun’,crit,itmax,p1,p2,…)
•Sintáxis de ‘nombrefunción’:
function y=nombrefuncion(x)
y(1,:)=f1(x(1,:), x(2,:),…,x(n,:));
y(n :)=fn(x(1,:),…,x(n,:));
y(n,:)=f (x(1 :) x(n :));
La variable x es una matriz con n filas (n = nº de incógnitas) y con un
número variable de columnas. Cada columna es una iteración que hace
ell programa.
X10 X11 X12 ------ X1n y10 (X10 X20‐‐‐‐‐ Xn0) y11 (X11 X21‐‐‐‐‐ Xn1) y1n (X1n X2n‐‐‐‐‐ Xnn)
X20 X21 X22 ------ X2n y20 (X10 X20‐‐‐‐‐ Xn0) y21 (X11 X21‐‐‐‐‐ Xn0) y2n (X1n X2n‐‐‐‐‐ Xnn)
X30 X31 X32 ------ X3n y30 (X10 X20‐‐‐‐‐ Xn0) y31 (X11 X21‐‐‐‐‐ Xn1) y3n (X1n X2n‐‐‐‐‐ Xnn)
3
X40 X41 X42 ------ X4n y40 (X10 X20‐‐‐‐‐ Xn0) y41 (X11 X21‐‐‐‐‐ Xn1) y4n (X1n X2n‐‐‐‐‐ Xnn)
‘ ‘ ‘ ‘ ‘ ‘
‘
‘ ‘ ‘ ‘ ‘ ‘
‘
‘ ‘ ‘ ‘ ‘ ‘
‘
‘ ‘ ‘ ‘ ‘ ‘
‘
Xn0 Xn1 Xn2 - - - - - - Xnn yn0 (X10 X20‐‐‐‐‐ Xn0) yn1 (X11 X21‐‐‐‐‐ Xn1) ynn (X1n X2n‐‐‐‐‐ Xnn)
[x,rc]=csolve(‘nombrefunción’,x0,’gradfun’,crit,itmax,p1,p2,…)
[x,rc]=csolve(‘nombrefunción’,x0,’gradfun’,crit,itmax,p1,p2,…)
[x,rc]=csolve(‘nombrefunción’,x0,’gradfun’,crit,itmax,p1,p2,…)
i n
[x,rc]=csolve(‘nombrefunción’,x0,’gradfun’,crit,itmax,p1,p2,…)
[x,rc]=csolve(‘nombrefunción’,x0,’gradfun’,crit,itmax,p1,p2,…)
[x rc]=csolve(‘nombrefunción’
[x,rc]=csolve( nombrefunción ,x0,
x0 ’gradfun’
gradfun ,crit,itmax,p1,p2,…)
crit itmax p1 p2 )
X10 X11 X12 ------ X1n y10 (X10 X20‐‐‐‐‐ Xn0) y11 (X11 X21‐‐‐‐‐ Xn1) y1n (X1n X2n‐‐‐‐‐ Xnn)
X20 X21 X22 ------ X2n y20 (X10 X20‐‐‐‐‐ Xn0) y21 (X11 X21‐‐‐‐‐ Xn0) y2n (X1n X2n‐‐‐‐‐ Xnn)
X30 X31 X32 ------ X3n y30 (X10 X20‐‐‐‐‐ Xn0) y31 (X11 X21‐‐‐‐‐ Xn1) y3n (X1n X2n‐‐‐‐‐ Xnn)
X40 X41 X42 ------ X4n y40 (X10 X20‐‐‐‐‐ Xn0) y41 (X11 X21‐‐‐‐‐ Xn1) y4n (X1n X2n‐‐‐‐‐ Xnn)
‘ ‘ ‘ ‘ ‘ ‘ ‘
‘ ‘ ‘ ‘ ‘ ‘ ‘
‘ ‘ ‘ ‘ ‘ ‘ ‘
‘ ‘ ‘ ‘ ‘ ‘ ‘
Xn0 Xn1 Xn2 - - - - - - Xnn yn0 (X10 X20‐‐‐‐‐ Xn0) yn1 (X11 X21‐‐‐‐‐ Xn1) ynn (X1n X2n‐‐‐‐‐ Xnn)
INFORMATICA APLICADA A LA INGENIERÍA QUIMICA: 2ª parte MATLAB
2.1 Resolución de un sistema de ecuaciones algebraicas
El comandod size(matriz,
i ( t i número)
ú ) calcula
l l ell número
ú d filas
de fil de
d lal
matriz cuando el número es 1, y el número de columnas cuando es 2.
INFORMATICA APLICADA A LA INGENIERÍA QUIMICA: 2ª parte MATLAB
2.1 Resolución de un sistema de ecuaciones algebraicas
ffor jj=1:columnas
1 l
for i=1:filas
v(i) =x(i,j);
end
INFORMATICA APLICADA A LA INGENIERÍA QUIMICA: 2ª parte MATLAB
2 1 Resolución
2.1 R l ió de d un sistema
i de
d ecuaciones
i algebraicas
l b i
•(v
( 1,,…,v
, n) contiene ((x1,,..,x
, n) para
p calcular (y1,,…,y
,yn))’
y(1,j)=f
y(1 j)=f1(v(1),…,v(n));
(v(1) v(n));
.
.
.
y(n,j)=fn(v(1),…,v(n));
[
[x,rc]=csolve(‘nombrefuncion’,x0,[
] ( [ ],1e-7,10000)
] ) funcion.m
x %vector solución
function y=nombrefuncion(x)
rc
( , );
filas=size(x,1);
columnas=size(x,2);
for j=1:columnas
for i=1:filas
v(i)=x(i,j);
end
y(1,:)=f1(x(1,:), x(2,:),…,x(n,:));
LAS FUNCIONES
.
DE f(x1, x2….xn)
.
y(n,:)=fn(x(1,:),…,x(n,:));
end
INFORMATICA APLICADA A LA INGENIERÍA QUIMICA: 2ª parte MATLAB
3 x12 x 2 x 2 7x 3 0 funcion.m
x1 x 33 0 function y=funcion(x)
x2 x3 0 filas=size(x,1);
filas size(x,1);
columnas=size(x,2);
for j=1:columnas
f ii=1:filas
for 1 fil
v(i)=x(i,j);
end
y(1,j)=3+v(1)^2*v(2)+v(2)-7*v(3);
y(2,j)=v(1)-v(3)^3;
y(3 j)=v(2) v(3);
y(3,j)=v(2)-v(3);
end
INFORMATICA APLICADA A LA INGENIERÍA QUIMICA: 2ª parte MATLAB
principal.m
[x,rc]=csolve(‘funcion’,x0,[ ],1e-7,10000)
x %vector solución
rc
INFORMATICA APLICADA A LA INGENIERÍA QUIMICA: 2ª parte MATLAB
PROGRAMA
n=3
x0=ones(1,n)
x0=x0'
0 0'
[x,rc]=csolve('funcionparacsolve',x0,[],1e-7,10000)
FUNCION
csolve
FUNCION
function y=funcionparacsolve(x)
filas=size(x,1)
columnas=size(x 2)
columnas=size(x,2)
for j=1:columnas
for i=1:filas
v(i)=x(i,j)
end
y(1,j)=3+v(1)^2*v(2)+v(2)-7*v(3);
y(2,j)=v(1)-v(3)^3;
y(3 j)=v(2)-v(3);
y(3,j) v(2) v(3);
end
INFORMATICA APLICADA A LA INGENIERÍA QUIMICA: 2ª parte MATLAB
PROGRAMA
n=3
x0=ones(1,n)
x0=x0'
0 0'
[x,rc]=csolve('funcionparacsolve',x0,[],1e-7,10000)
FUNCION
csolve
FUNCION
function y=funcionparacsolve(x)
filas=size(x,1)
columnas=size(x 2)
columnas=size(x,2)
for j=1:columnas
for i=1:filas
v(i)=x(i,j)
end
y(1,j)=3+v(1)^2*v(2)+v(2)-7*v(3);
y(2,j)=v(1)-v(3)^3;
y(3 j)=v(2)-v(3);
y(3,j) v(2) v(3);
end