Академический Документы
Профессиональный Документы
Культура Документы
Huaman Huaman
1
INDICE
Solucin numrica
CAPITULO I
SOLUCION NUMERICA
---------------------------------------------------------------------------------------------------------Objetivos: Desarrollar ejercicios de soluciones numricas para funciones matemticas
generales y aplicaciones a la ingeniera de alimentos.
----------------------------------------------------------------------------------------------------------
1.1
SOLUCION NUMERICA
Identificar
Cuantificar
Minimizar
Clculo Numrico es una materia de Clculo o Matemticas Aplicada, que muestra cmo
a travs de frmulas e iteraciones podemos obtener resultados bastante aproximados para
diversos problemas que se pueden plantear.
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
1
Solucin numrica
(1.1)
(1.2)
Donde Et se usa para denotar el valor exacto del error. El subndice t indica que se trata
del error verdadero (true).
El error relativo tambin se puede multiplicar por 100% para expresarlo como
Error verdadero
* 100%
Valor verdadero
(1.3)
Error aproximado
* 100%
Valor aproximado
(1.4)
Solucin numrica
(1.5)
Los signos pueden se positivos o negativos, Por lo tanto, es til emplear el valor absoluto.
s Fijado previamente.
a s
(1.6)
Errores de redendeo
Los nmeros tales como pi, e 7 no pueden exspresarse con un nmero fijo de cifras
significativas. Por lo tanto, no pueden ser representados exactamente por la computadora.
Adems, debido a que las computadoras usan una representacin en base 2, no pueden
representar exactamente algunos nmeros en base 10. Esta discrepancia por la omisin
de cifras significativas se llama error de redondeo.
Errores de truncamiento
Los errores de truncamiento son aquellos que resultan al usar una aproximacin en lugar
de un procedimiento matemtico exacto. Por ejemplo, en el captulo 1 aproximamos la
derivada de la velocidad de cada de un paracaidista mediante una ecuacin en diferencia
finita dividida de la forma
a s
(1.7)
Metodos cerrados
En los mtodos cerrados, la raz se encuentra dentro de un intervalo predeterminado por
un lmite inferior y otro superior. La aplicacin repetida de estos mtodos siempre genera
aproximaciones cada vez ms cercanas a la raz. Se dice que tales mtodos son
convergentes porque se acercan progresivamente a la raz a medida que se avanza en el
clculo.
Metodos abiertos
Los mtodos abiertos se basan en frmulas que requieren nicamente de un solo valor de
inicio x o que empiecen con un par de ellos, pero que no necesariamente encierran la raz.
stos, algunas veces divergen o se alejan de la raz verdadera a medida que se avanza en
el clculo. Sin embargo, cuando los mtodos abiertos convergen, en general lo hacen
mucho ms rpido que los mtodos cerrados.
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
3
Solucin numrica
function caratula
%Autor: Ing. Alberto Luis HUAMANI HUAMANI
%***************************************************************
% presentacin: funcin que presenta la pantalla de presentacin
%***************************************************************
clear,clc,cla,close all
%Creamos figura
figdiag=figure('Units','Pixels',...
'Position',[0.06 0.06 0.9 0.9],... %Tamao de la presentacin
'Number','off',...
'Name','UNSCH/FIQM/EFP Ingenieria en Industrias Alimentarias', ...
'Menubar','none', ...
'color',[0 0 0]);
%Ubicamos ejes en figura
axes('Units','Normalized',...
'Position',[0 0 1 1]);
%-----Centramos la figura--------scrsz = get(0, 'ScreenSize');
pos_act=get(gcf,'Position');
xr=scrsz(3) - pos_act(3);
xp=round(xr/2);
yr=scrsz(4) - pos_act(4);
yp=round(yr/2);
set(gcf,'Position',[xp yp pos_act(3) pos_act(4)]);
%--------------------------------------%Incluir imagen
%Importamos imagen *.jpg,junto con su mapa de colores
[x,map]=imread('caratula.jpg','jpg');
%Representamos imagen en figura, con su mapa de colores
image(x),colormap(map),axis off,hold on
%Ttulos sobre imagen
%Ttulo
text(150,90,'E.F.P.Ingenieria en Industrias
Alimentarias','Fontname','Arial','Fontsize',30,'Fontangle','Italic', ...
'Fontweight','Bold','color',[1 0 0]);
text(780,1070,'Ing. Alberto HUAMANI HUAMANI','Fontname', ...
'Comic Sans MS','Fontangle','Italic','Fontweight','Bold', ...
'Fontsize',18,'color',[0 0 1]);
%Botn Continuar
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
4
Solucin numrica
botok=uicontrol('Style','pushbutton', ...
'Units','normalized', ...
'Position',[.84 .03 .12 .05], ...
'String','CONTINUAR',...
'Callback','clear all; close all;clc; METODOS_NUMERICOS;'); %GUI es el nombre del
siguiente programa.
6.
7.
1.
Solucin numrica
2.
3.
Solucin numrica
4.
Confeccionamos el siguiente formulario
Hacer click en una de los comandos (Push Button) y arrastrar a la parte del formulario
5.
6.
Solucin numrica
Metodo Biseccin
Prctica 1-1
METODO DE
BISECCION
1.1
MTODO DE BISECCIN
f x1 f x2 0 .
xr
x1 x2
2
(1.8)
Metodo Biseccin
Metodo Biseccin
Edit text: para salida de valores: hacer doble click en la tabla de cdigo y llenar:
String: nombre a poner
Style:edit
Tag: edit2 o nombre de la variable
Table: insertar un table y hacer anticlick y en table property poner el nombre de las
variables de salida que se desea mostrar.
En propiedades poner en Tag: tabla
Paso 2: Completado el formulario, guardar el formulario como, guardar archivo como:
METODO_BISECCION.fig
1) Inmediatamente se autogenera el archivo.m,
2) En el archivo generado buscar Pushbutton1. Digitar el cdigo del programa en
el Push button1, despus de la lnea siguiente para el caso y as sucesivamente.
Paso 2: Digitar el Programa
function pushbutton1_Callback(hObject, eventdata, handles)
f=get(handles.edit1,'string');
f=inline(f);
xai=str2double(get(handles.edit2,'string')); % valor de x1
xbi=str2double(get(handles.edit3,'string')); % valor de x2
tol=str2double(get(handles.edit4,'string')); % error
i=1;
ea(1)=100;
%%%%% Metodo Biseccin %%%%%%
if f(xai)*f(xbi)<0; % Comprobando que la raiz se encuentra en este intervalo
xa(1)=xai;
xb(1)=xbi;
xr(1)=(xa(1)+xb(1))/2;
%Limpiar tabla antes de mostrar resultado
set(handles.tabla,'Data',{})
% Limpiar tabla, grafico en caso de que antes se haya graficado una funcion
hold off
cla
set(handles.tabla,'Data',{})
set(handles.respuesta,'string','No hay raiz');
while abs(ea(i))>=tol
if f(xa(i))*f(xr(i))<0 % Condicion de cumplimiento
xa(i+1)=xa(i);
xb(i+1)=xr(i); % Es la raiz(xr) si se cumple condicion
end
if f(xa(i))*f(xr(i))>0 % Condicion de cumplimiento
xa(i+1)=xr(i); % Es la raiz(xr) si se cumple condicion
xb(i+1)=xb(i);
end
xr(i+1)=(xa(i+1)+xb(i+1))/2; % Valor intermedio para 2 iteracion
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
11
Metodo Biseccin
Metodo Biseccin
c
*t
mg
v
* 1 e m
mg
c
* 1 exp * t v
c
m
667,38
f ( x)
* 1 exp 0,146843* x 40
x
f ( x)
f(x)= (667.38/x)*(1-exp(-0.146843*x))-40
Resultados
Metodo Biseccin
Metodo Biseccin
Resultado
>> FALSA_POSICIO_2016
METODO DE LA BISECCION
Metodos matemticos en industrias alimentarias
INGRESE LA FUNCION en x :(667.38/x)*(1-exp(-0.146843*x))-40
INGRESE LIMITE INFERIOR DEL INTERVALO: 12
INGRESE LIMITE SUPERIOR DEL INTERVALO: 16
INGRESE EL PORCENTAJE DE ERROR: 0.001
Resultado
it
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>
xa
12.0000000
14.0000000
14.0000000
14.5000000
14.7500000
14.7500000
14.7500000
14.7500000
14.7656250
14.7734375
14.7773438
14.7792969
14.7792969
14.7797852
14.7800293
xr
14.0000000
15.0000000
14.5000000
14.7500000
14.8750000
14.8125000
14.7812500
14.7656250
14.7734375
14.7773438
14.7792969
14.7802734
14.7797852
14.7800293
14.7801514
xb
error aprox
16.0000000
16.0000000
, 6.667
15.0000000
, 3.448
15.0000000
, 1.695
15.0000000
, 0.840
14.8750000
, 0.422
14.8125000
, 0.211
14.7812500
, 0.106
14.7812500
, 0.053
14.7812500
, 0.026
14.7812500
, 0.013
14.7812500
, 0.007
14.7802734
, 0.003
14.7802734
, 0.002
14.7802734
, 0.001
Metodo Biseccin
Prctica 1-2
f x1
f x2
x f x1 x f x2
(1.9)
Despejando xr
x f x2
f x2 x1 x2
f ( x1 ) f ( x2 )
(1.10)
Programa
function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)
f=get(handles.edit1,'string');
f=inline(f);
xai=str2double(get(handles.edit2,'string')); % valor de x1
xbi=str2double(get(handles.edit3,'string')); % valor de x2
tol=str2double(get(handles.edit4,'string')); % error
i=1;
ea(1)=100;
%%%%% Metodo Biseccin %%%%%%
if f(xai)*f(xbi)<0; % Comprobando que la raiz se encuentra en este intervalo
xa(1)=xai;
xb(1)=xbi;
xf(1)= xb(1)-f(xb(1))*(xa(1) - xb(1))/(f(xa(1))-f(xb(1)));
%Limpiar tabla antes de mostrar resultado
set(handles.tabla,'Data',{})
% Limpiar tabla, grafico en caso de que antes se haya graficado una funcion
hold off
cla
set(handles.tabla,'Data',{})
set(handles.respuesta,'string','No hay raiz');
while abs(ea(i))>=tol
if f(xa(i))*f(xf(i))<0 % Condicion de cumplimiento
xa(i+1)=xa(i);
xb(i+1)=xf(i); % Es la raiz(xr) si se cumple condicion
end
if f(xa(i))*f(xf(i))>0 % Condicion de cumplimiento
xa(i+1)=xf(i); % Es la raiz(xr) si se cumple condicion
xb(i+1)=xb(i);
end
xf(i+1)= xb(i+1)-f(xb(i+1))*(xa(i+1) - xb(i+1))/(f(xa(i+1))-f(xb(i+1)));
ea(i+1)=abs((xf(i+1)-xf(i))/(xf(i+1))*100);% error absoluto
% Mostrara datos en tabla
valores = {i xa(i+1) xb(i+1) xf(i+1) ea(i+1)};
temp=get(handles.tabla,'data');
valoresNuevos=[valores;temp];
set(handles.tabla,'Data',valoresNuevos)
i=i+1;
end % Cerramos while
% Mostrando respuesta en textbox con formato coma flotante a 6 cifras decimales
respuesta=sprintf('%0.6f',xf(i));
set(handles.respuesta,'string',respuesta);
%Grafica de la funcion
fplot(handles.axes1,f,[xai xbi]);
grid on;
hold on;
handles.axes1=plot(xf(i),subs(f,respuesta),'r*');
else
set(handles.respuesta,'string','No existe la raiz en el intervalo');
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
18
zoom on
end
function varargout = pushbutton2_Callback(h, eventdata, handles, varargin)
cla %limpiar tabla
set(handles.tabla,'Data',{})
%limpiar textboxs
set(handles.edit1,'string','');
set(handles.edit2,'string','');
set(handles.edit3,'string','');
set(handles.edit4,'string','');
set(handles.respuesta,'string','');
function varargout = pushbutton3_Callback(h, eventdata, handles, varargin)
SOLUCION_NUMERICA
Ejecutar: hacer click en la flecha verde
Paso 5: Ingresamos la funcin matemtica o los valores numricos segn sea el caso,
ingresar los limites inferior y superior y el error; y se tiene el resultado
Ingrese la funcin: f ( x)
667,38
* 1 exp 0,146843* x 40
x
f(x)= (667.38/x)*(1-exp(-0.146843*x))-40
xa1= 12 xb1=16
tol: 0.05;
Prctica 1-3
NEWTON-RAPHSON
1.3
Si el valor inicial para la raz es xi, entonces se puede trazar una tangente desde el punto
[xi, f(xi)] de la curva. Por lo comn, el punto donde esta tangente cruza al eje x representa
una aproximacin mejorada de la raz.
f ' xi
f xi 0
xi xi 1
(1.11)
xi 1 xi
f ( xi )
f ' xi
(1.12)
f ' ' ( xi ) xi 1 xi
f ( xi 1 ) f xi f ' xi xi 1 xi
...
2!
2
(1.13)
Truncando la serie de Taylor despus del trmino de la primera derivada, se obtiene una
versin aproximada:
f ( xi 1 ) f xi f ' xi xi 1 xi
(1.14)
0 f xi f ' xi xi1 xi
(1.15)
f ( xi )
f ' xi
(1.16)
xi 1 xi
Una de las condiciones para garantizar la convergencia del mtodo de Newton es que
f(x) tiene que ser diferente de cero . Si al ejecutar el mtodo de Newton se observa que
f(xn) se aproxima a cero, la rapidez del mtodo disminuye y hay una posible raz
mltiple.
El mtodo de raz mltiple tambin es conocido como el mtodo de Newton mejorado,
y bsicamente su estructura es muy similar excepto de que se debe hallar la segunda
derivada.
Si en lugar de considerar los dos primeros trminos de la serie de Taylor se consideran
los tres primeros trminos, se representa con xi a la diferencia entre x i+1 y xi y se iguala
a cero, se tiene:
f xi xi f ' xi
y sustituyendo xi por
xi 2
2
f ' ' xi 0
(1.17)
f xi
(a partir de la frmula de Newton-Raphson) queda:
f ' xi
1 f xi
f xi xi f ' xi
f ' ' xi 0
2 f ' xi
(1.18)
Despejando Xi se obtiene:
xi
f xi
f xi
f ' xi
f ' ' xi
2 f ' xi
(1.19)
f xi
f xi
f ' xi
f ' ' xi
2 f ' xi
(1.20)
Para Pop Up Menu, En string hacer doble click y escribir despus de Seleccionar:
Programa
function pushbutton1_Callback(hObject, eventdata, handles)
f=get(handles.edit1,'string');
x0=str2double(get(handles.edit2,'string'));
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
23
tol=str2double(get(handles.edit3,'string'));
i=1;
fx(i)=x0; % valor inicial de fx(i)
syms x; % syms declarar la variable x
ea(1)=100;
f1=subs(f,x,fx(i)); % Evaluacion numerica de f en funcion de x para fx
z=diff(f); % derivada de f
d=subs(z,x,fx(i)); % evaluacion de z
z2=diff(f,2); % calculo de la segunda derivada de f
d2=subs(z,x,fx(i)); % evaluacion de z
% Opciones de calculo
v=get(handles.seleccionar,'value');
switch v
case 2
%Limpiar tabla antes de mostrar resultado
set(handles.tabla,'Data',{})
while abs(ea(i))>=tol;
fx(i+1)=fx(i)-f1/d; % Expresion de Newton
f1=subs(f,x,fx(i+1)); % Evalua f1
d=subs(z,x,fx(i+1)); % Evalua z
ea(i+1)=abs((fx(i+1)-fx(i))/fx(i+1)*100);% Error absoluto
i=i+1;
end
for j=1:i;
%mostrara datos en tabla
valores = {j-1,fx(j),ea(j)};
temp=get(handles.tabla,'data');
valoresNuevos=[valores;temp];
set(handles.tabla,'Data',valoresNuevos)
end
% Mostrando de raiz en textbox con formato coma flotante a 6 cifras decimales
raiz=sprintf('%0.6f',fx(j));
set(handles.raiz,'string',raiz);
%end
%Grafica de la funcion
hold off
fplot(handles.axes1,f,[0 fx(j)+1]);
grid on;
hold on;
handles.axes1=plot(fx(j),subs(f,raiz),'r*');
zoom on
case 3
%Limpiar tabla antes de mostrar resultado
set(handles.tabla,'Data',{})
while abs(ea(i))>=tol;
fx(i+1)=fx(i)-(f1*d)/(d^2-(f1*d2)); % Expresion de Newton
f1=subs(f,x,fx(i+1)); % Evaluacion numerica de f en funcion de x para fx
d=subs(z,x,fx(i+1)); % Evalua z
d2=subs(z,x,fx(i+1)); % evaluacion de z
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
24
667,38
* 1 exp 0,146843* x 40
x
f(x)= (667.38/x)*(1-exp(-0.146843*x))-40
xi= 12; tol: 0.05
a)
Newton Rapson
b)
Metodo Secante
Prctica 1-4
METODO SECANTE
1.5 MTODO DE LA SECANTE
Surge como una variacin del mtodo de Newton-Raphson, en lugar de tomar la tangente
se toma la secante. De manera que la derivada se aproxima por una diferencia finita
dividida hacia atras, basada en las estimaciones sucesivas es decir, como en (figura 1.8)
f ' xi
f xi 1 f xi
xi 1 xi
(1.21)
xi 1 xi
f xi xi 1 xi
f xi 1 f xi
(1.22)
El mtodo requiere de dos valores iniciales pero como no se requiere que f(x) cambie de
signo en el intervalo considerado, no se lo incluye dentro de los mtodos que utilizan
intervalos, este mtodo no se clasifica como un mtodo cerrado.
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
27
Metodo Secante
Observe la similitud entre los mtodos de la secante y de la falsa posicin. Por ejemplo,
las ecuaciones son idnticas en todos los trminos. Ambas usan dos valores iniciales para
calcular una aproximacin de la pendiente de la funcin que se utiliza para proyectar hacia
el eje x una nueva aproximacin de la raz. Sin embargo, existe una diferencia crtica
entre ambos mtodos. Tal diferencia estriba en la forma en que uno de los valores iniciales
se reemplaza por la nueva aproximacin.
1.5.1 Procedimiento de Programa en GUIDE de Matlab
Formulario
Programa
function pushbutton1_Callback(hObject, eventdata, handles)
f=get(handles.edit1,'string');
x0=str2double(get(handles.edit2,'string'));%
x1=str2double(get(handles.edit3,'string'));
tol=str2double(get(handles.edit4,'string'));
syms x;
ea(1)=100;
%Limpiar tabla antes de mostrar resultado
set(handles.tabla,'Data',{})
%Limpiar tabla, grafico en caso de que antes se haya graficado una funcion
hold off
cla
set(handles.tabla,'Data',{})
set(handles.respuesta,'string','No hay raiz');
i=1;
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
28
Metodo Secante
while abs(ea)>tol;
x=x0;
g=eval(f);
x=x1;
gg=eval(f);
xi=x1-((gg*(x0-x1))/(g-gg));
ea=abs((xi-x1)/xi)*100;
x0=x1;
x1=xi;
% Mostrara datos en tabla
valores = {i,x xi,ea};
temp=get(handles.tabla,'data');
valoresNuevos=[valores;temp];
set(handles.tabla,'Data',valoresNuevos)
i=i+1;
end
%Mostrando respuesta en textbox con formato coma flotante a 6 cifras decimales
respuesta=sprintf('%0.6f',xi);
set(handles.respuesta,'string',respuesta);
%Grafica de la funcion
hold off
fplot(handles.axes1,f,[0 xi+1]);
grid on;
hold on;
handles.axes1=plot(xi,subs(f,respuesta),'r*');
zoom on
function pushbutton2_Callback(hObject, eventdata, handles)
cla %limpiar tabla
set(handles.tabla,'Data',{})
%limpiar textboxs
set(handles.edit1,'string','');
set(handles.edit2,'string','');
set(handles.edit3,'string','');
set(handles.edit4,'string','');
set(handles.respuesta,'string','');
function pushbutton3_Callback(hObject, eventdata, handles)
SOLUCION_NUMERICA
Resultado
Metodo Secante
Prctica 1-5
APLICACIONES EN
INGENIERIA DE ALIMENTOS
1. Ejercicio 1: Aplicacin coeficiente de friccion
La siguiente relacin entre el factor de friccin f y el nmero de Reynolds (Re) se cumple
cuando hay flujo turbulento de un fluido en un tubo liso.
1
0.4 1.74Ln (Re f )
f
Construya una tabla de valores de f correspondientes a nmeros de Reynolds de 104 hasta
106.
Solucin
La funcin transformada es:
1
0.4 1.74Ln (Re f )
f
Programa
Para incorporar imagen
function Problema_1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
axes(handles.axes1)
background=imread('friccion.jpg');
axis off
imshow(background)
function pushbutton2_Callback(hObject, eventdata, handles)
x0=str2double(get(handles.edit1,'string'));%
x1=str2double(get(handles.edit2,'string'));
tol=str2double(get(handles.edit3,'string'));
set(handles.tabla,'Data',{})
%Limpiar tabla, grafico en caso de que antes se haya graficado una funcion
hold off
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Re = [10000; 50000;100000; 200000; 300000; 400000; 500000; 700000;900000;10^6];
n=length(Re);
for k=1:n
i=0;% iteracion del metodo numerico
fxs=1;
while abs(fxs)>tol &(i<10);
fx0 = -1-(0.4*x0) + 1.74*x0*log(Re(k)*(x0^0.5));
fx1 = -1-(0.4*x1) + 1.74*x1*log(Re(k)*(x1^0.5));
xs=x1-((fx1*(x0-x1))/(fx0-fx1)); % algoritmo de metodo secante
fxs = -1-(0.4*xs) + 1.74*xs*log(Re(k)*(xs^0.5));
ea=abs((xs-x1)/xs)*100;
x0=x1;
x1=xs;
i=i+1;
end
% CALCULOS
X(k) = xs;
f=X(k);
% Mostrara datos en tabla
valores = {Re(k) f};
temp=get(handles.tabla,'data');
valoresNuevos=[valores;temp];
set(handles.tabla,'Data',valoresNuevos)
k=k+1;
%Grafica de la funcion
hold on;
axes(handles.axes2)
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
32
plot(Re(k),f,'b*')
legend ( 'Factor de friccion en funcion del Re' )
ylabel( 'Valor de f' )
xlabel( 'Re' )
grid on;
end
function pushbutton2_Callback(hObject, eventdata, handles)
cla %limpiar tabla
set(handles.tabla,'Data',{})
%limpiar textboxs
set(handles.edit1,'string','');
set(handles.edit2,'string','');
set(handles.edit3,'string','');
set(handles.edit4,'string','');
set(handles.edit5,'string','');
function pushbutton2_Callback(hObject, eventdata, handles)
close
Solucionario
1
2
3
4
10
54
30
6
25
14,7
4
0,5
200
60
14,7
5
Ln pi Ai
0
Bi
T1
(1)
PT Pi
(2)
PT pi * xi
0
(3)
B
0
pi exp Ai i
T1
i 1,2,3,4
PT xi * exp Ai i
T
f T PT xi * exp Ai i
T
(4)
i 1,2,3,4
(5)
i 1,2,3,4
(6)
Bi
T1
B
0
Ln pi , i Ai i
T2
Ln pi , i Ai
p10 , i
1 1
Ln 0 Bi
T1 T2
p2 , i
De donde
p10 , i
Ln 0
p ,i
Bi 2
1 1
T1 T2
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
35
Ln PT A2
B2
T
De donde
B2
A2
Ln PT
xi 1 xi
f xi
f ' xi
Y f T PT xi * exp Ai i 0
T
B B
Algoritmo Utilizado
Para encontrar una raz de la ecuacin f (xi+1) = 0, proporcionar la funcin f (xi) y su
derivada df(xi) y los datos:
Datos: Valor inicial x0, criterio de convergencia (ea) o error absoluto, criterio de exactitud
(ea1) y nmero mximo de iteraciones i.
Resultados: La raz aproximada x o un mensaje de falla.
PASO 1: Hacer i = 1
PASO 2: Mientras i< MAXIT, repetir los pasos 3 a 7.
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
36
Solucion
METODOS NUMERICOS APLICADOS A INGENIERIA
CALCULO DE TEMPERATURAS DE EQUILIBRIO
INGENIERIA EN INDUSTRIAS ALIMENTARIAS
T
f(T)
211.17 8.29e-01
211.67 -2.86e-03
211.67 -3.35e-08
y(j)
0.3761
0.5451
0.0729
0.0059
200
60
14.7
5
0.1
0.54
0.3
0.06
f(T)
211.17 8.29e-001
211.67 -2.86e-003
211.67 -3.35e-008
y(j)
0.3761
0.5451
0.0729
0.0059
Programa
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
Y=xlsread('DESTILADO','Hoja1');% importacin de datos de tabla libro1 de excel
T1=str2double(get(handles.edit1,'string'));
T2=str2double(get(handles.edit2,'string'));
PT=str2double(get(handles.edit3,'string'));
tol=str2double(get(handles.edit4,'string'));
P1=Y(:,1);
P2=Y(:,2);
X=Y(:,3);
B = log(P1./P2)/(1/T1-1/T2); % calculo de la constante B
A = log(P1)-B/T1 ; % Calculo de la constante A
%Limpiar tabla antes de mostrar resultado
set(handles.tabla,'Data',{})
%METODO NEWTON RAPSON
i = 0;% iteracion cero
f =1;
tol = 0.000001;
T = B(2)/(log(PT)- A(2));
while (abs(f)>tol)&(i<10);% maxima iteracion menor de 10 (I<10)
f = PT-sum(X.*exp(A + B/T));% Funcion a resolver
df = sum(X.*exp(A+B/T).*(B/T^2));% derivada de la funcion
T1 = T-f/df; % Algoritmo de Newton
T = T1; % Valor de la raiz o temperatura
i = i+1;
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
40
end
for j = 1:i+1
y(j) = (X(j)*exp(A(j) + B(j)/T))/PT;
% Mostrara datos en tabla
valores = {T y(j)};
temp=get(handles.tabla,'data');
valoresNuevos=[valores;temp];
set(handles.tabla,'Data',valoresNuevos)
end
Segundo ingresamos los valores y obtenemos los resultados
w 2163KJ / Kg
Pa.s T(K)
g/cm3 T en C
Tanque:
Dimetro = 1m
N = 120 rpm
Dimetro paleta = 30 cm
Serpentn:
Dimetro interno = 12 mm
Dimetro externo = 14 mm
Longitud = 15 m
Vapor saturado:
Presin = 3 atm
a)
b) Clculo del coeficiente he para tanque agitado con calentamiento de vapor sistema
serpentn es:
D p 2 N .
he DT
0,87
k
0 , 62
D p 2 N .
k
he
* 0,87 *
DT
Cp.
1/ 3
0, 62
0.14
Cp.
*
1/ 3
*
w
0.14
Calculo de Re, Pr
Re
Dp N .
2
12,4
k
0,814x103 KJ / s.m. C
Reemplazando Re, Pr y otros en la ecuacin general
0,814W / m C
he
* 0,87 5,98x104
1m
12,4
0 , 62
1/ 3
3,53x10 3 Pa.s
0.14
he 680,6 w
0,14
W / m 2 C
2850
(
273
tw
)
Para obtener he es preciso conocer tw, la temperatura en la pared del serpentn, para
calcular w, viscosidad de la disolucin a la temperatura de la pared.
tm
he
tw
Tw
hi
T
Q hi Ai T Tw he Ae t w t m
Como se supone que la pared no ofrece resistencia a la transmisin de calor: Tw tw
Por tanto, de la ecuacin anterior queda:
h A T he Ae t w
tw i i
hi Ai he Ae
hi d i T d e Tm he
2
tw
hi d i d e he
2
Reemplazando valores
tw
0,14
0 ,14
0 ,14
2850
tw
0 ,14
2850
2850
he 5411,824* exp(
(273 tw)
c)
0 ,14
1
1
1
U e he hi (d i / d e )
d) Del balance energtico en el sistema
dt
d
Trmino de acumulacin
A mCp
Trmino de entrada
E U e Ae (T t )
mCp
dt
U e Ae (T t )
d
T t 0 U e Ae
Ln
T t mCp
Expresin que permite calcular, el tiempo de calentamiento para una determinada
temperatura o viceversa:
Tiempo:
m Cp T t0
Ln
U e Ae T t
U e Ae
m Cp
Temperatura: t T (T t0 ) exp
Ae d e L
e)
wv w
Cp (t t 0 )
Masa de vapor
M v wv
f)
dt U e Ae
(T t )
d mCp
kJ 3600s
3
2
1931x10
0,6597m
2
dt
s m C h
(132,9 50)
d
kJ
1000kg 2,85
kg C
dt
133,4 C / h
d
g) Temperatura a los 50 min
s m2 C
t 132,9 (132,9 16) exp
kJ
1
000kg
2
,
85
kg
t 102,3 C
Como se supone que se trabaja a presin atmosfrica, si fuese agua no se tendra la
solucin acuosa, sino que podra pasar a vapor. Sin embargo, al tratarse de una solucin
azucarada, es posible que hierva a ms de 100C, debido al aumento ebulloscopio que
producen los slidos solubles.
a) Usando GUIDE
Crear una carpeta
Dentro de la carpeta debe estar la imagen en jpg
Formulario
Programa
Para la imagen
guidata(hObject, handles);
axes(handles.axes1)
background=imread('tanque.jpg');
axis off
imshow(background)
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% PROGRAMA DE SERPENTIN
m=str2double(get(handles.edit1,'string'));
Ti=str2double(get(handles.edit2,'string'));
Tf=str2double(get(handles.edit3,'string'));
k=str2double(get(handles.edit4,'string'));
Cp=str2double(get(handles.edit5,'string'));
Dt=str2double(get(handles.edit6,'string'));
N=str2double(get(handles.edit7,'string'));
Dp=str2double(get(handles.edit8,'string'));
di=str2double(get(handles.edit9,'string'));
de=str2double(get(handles.edit10,'string'));
L=str2double(get(handles.edit11,'string'));
P=str2double(get(handles.edit12,'string'));
T=str2double(get(handles.edit13,'string'));
Hw=str2double(get(handles.edit14,'string'));
hw=str2double(get(handles.edit15,'string'));
landa=str2double(get(handles.edit16,'string'));
hi=str2double(get(handles.edit17,'string'));
% Calculos previos
tm = (Ti + Tf) / 2;
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
47
set(handles.edit18,'string',visc);
set(handles.edit19,'string',den);
set(handles.edit20,'string',xr);
set(handles.edit21,'string',Re);
set(handles.edit22,'string',Pr);
set(handles.edit23,'string',he);
set(handles.edit24,'string',Ue);
set(handles.edit25,'string',tiem);
set(handles.edit26,'string',wv);
set(handles.edit27,'string',mv);
Solucin
Ingresamos las variables de ingreso y obtenemos como resultado las variables esperadas
X Xe
8
2
X0 Xe
x1
(2n 1) 2 2
1
exp
Def .t
2
2
4L
n 0 ( 2n 1)
n 2 2
1
x x 2 * 2 exp 2 D.t
n
r
n 2 2
1
x x x1 * 2 exp 2 D.t
n
r
Donde:
X = humedad de la muestra (g);
Def = difusividade efectiva del gua (m2/s);
t = tempo (s);
n = nmero de terminos de la srie;
L = dimensin caracterstica (m).
Para ello los valores experimentales de humedad (%) y tiempo de secado se ingresar
internamente en el programa, en la ventana se ingresar el valor inicial de la difusividad
por el tiempo (Dt), tolerancia, espesor del alimento a secar (L), humedad inicial del
alimento (Xo) y humedad de equilibrio (Xe).
Datos experimentales de secado:
Tiempo (min):0 5 10 15 20 25 30 35 40 45 50
Humedad (%):72 69,54 66,77 63,69 59,38 55,69 51,38 48 44,92 40,92 37,23
Elaboracin del programa
Formulario
Programa
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
t=str2num(get(handles.edit1,'string'));% valores de t
M=str2num(get(handles.edit2,'string'));% valores de M
M0=str2double(get(handles.edit3,'string'));% Humedad inicial
Meq=str2double(get(handles.edit4,'string'));% Humedad de equilibrio
L=str2double(get(handles.edit5,'string')); % Espesor del alimento a secar
tol=str2double(get(handles.edit6,'string')); % Error
n=length(t);
%Limpiar tabla antes de mostrar resultado
set(handles.tabla,'Data',{})
%Limpiar tabla, grafico en caso de que antes se haya graficado
hold on
%Lectura de datos de tiempo t
for k=1:n
MR = (M(k) - Meq) / (M0 - Meq);
tiempo=t(k);
% METODOS NUMERICOS DE NEWTON RAPSON
x1 = 0.0000001;
it=0;
fxp=1;
while abs(fxp)>tol
fx1 = 0.810566 * exp(-9.869651 * x1 / L ^ 2) + 0.090063 * exp(-88.826855 *x1 / L ^
2) + 0.032423 * exp(-246.741264 * x1 / L ^ 2) + 0.016542 * exp(-483.612877 * x1 / L
^ 2) + 0.010007 * exp(-799.441695 * x1 / L ^ 2) + 0.006699 * exp(-1194.227718 * x1 /
L ^ 2) + 0.004796 * exp(-1667.970945 * x1 / L ^ 2) + 0.003603 * exp(-2220.671376 *
x1 / L ^ 2) + 0.002805 * exp(-2852.329012 * x1 / L ^ 2) + 0.002245 * exp(3562.943852 * x1 / L ^ 2)-MR;
gx1 = -(8 * exp(-9.869651 * x1 / L ^ 2)) / L ^ 2 - (8 * exp(-88.826855 *x1 / L ^ 2)) /
L ^ 2 - (8 * exp(-246.741264 * x1 / L ^ 2)) / L ^ 2 - (8 * exp(-483.612877 * x1 / L ^ 2))
/ L ^ 2 - (8 * exp(-799.441695 * x1 / L ^ 2)) / L ^ 2 - (8 * exp(-1194.227718 * x1 / L ^
2)) / L ^ 2 - (8 * exp(-1667.970945 * x1 / L ^ 2)) / L ^ 2 - (8 * exp(-2220.671376 * x1 /
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
51
5.
(1 / 4 r 2 )( dM / dt ) kc ( dC / dr ) cte.
(1)
Ci
Rc
Cs
(2)
De donde:
( dM / dt )
4 RcRkc ( Cs Ci )
( R Rc )
(3)
(4)
(5)
4 R 2 ( Cs Cg )
( dM / dt )
(6)
(1 / hc) ( R / kc) ( R Rc ) / Rc
Rearreglando esta ecuacin se obtiene una ecuacin similar a las usadas en la cintica de
reacciones qumicas heterogneas slido-fluido:
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
54
( dM / dt )
4 R 2 hc( Cs Cg )
1 ( Rhc / kc) ( R Rc ) / Rc
(7)
Por otro lado la cantidad de agua a eliminar por unidad de volumen es:
Ch ( Mo Me ) / Vo
(8)
(9)
(10)
y dado que:
(11)
( dR / dt )
R 2 ( Cs Cg )
Ch ( Rc 2 / hc) ( R / kc)( R( R Rc ))
(12)
1/ 3
(13)
(14)
( Cs Cg ) t
Ro R
Ro 2 Rc 2
Ro 2 R 2
Ch
2 kc
hc 1 (Re/ Ro ) 3
2 kc 1 (Re/ Ro ) 3
(15)
Cs Cg
Ch
Ro
( Cs Cg ) 1 (Re/ Ro ) 3 t
R 2 Rc 2 ( Ro 2 Rc 2 )(Re/ Ro ) 3
(1 / hc) (1 / kc )
(16)
Ch ( Ro R )
2( Ro R )
La cual es la expresin matemtica del modelo propuesto y que adopta la forma de una
recta. Donde:
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
55
( Cs Cg ) 1 (Re/ Ro ) 3 t
es la variable dependiente
(17)
R 2 Rc 2 ( Ro 2 Rc 2 )(Re/ Ro ) 3
2( Ro R )
es la variable independiente
(18)
(1 / kc)
es la pendiente
(19)
(1 / hc)
es la ordenada al origen
(20)
Ch ( Ro R )
(21)
(22)
Una vez estimados los valores de hc y kc se puede usar la ecuacin (15) para predecir el
radio del centro hmedo Rc a cualquier tiempo t. Para despejar Rc de dicha ecuacin se
utiliza el mtodo numrico de aproximaciones sucesivas de Newton de primer orden
(Luthe y col., 1988):
Rcactual Rcanterior
F ( Rc ) anterior
F '( Rc ) anterior
(23)
Donde:
3
Re
1
1 2
2
R RC RO 2 Rc 2
f ( RC ) Ro R
hc
2kc
Ro
C s C g Re 3
1 * t
C h Ro
C Cg
2
f ( x) H Ro R K R 2 x 2 B * RO x 2 s
* A*t
Ch
Y
R 3 1 R 2 1
Rc 2
e
C
f ' ( x) 1 2
Rc
R
hc
kc
R
R
o
Datos de entrada
El programa requiere la siguiente informacin:
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
57
Programa
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% "PROGRAMA DE SIMULACION DEL PROCESO DE SECADO"
% SOLO PUEDE SER APLICADO A CUBOS DE PAPA, SECADO EN LECHO
FLUIDIZADO,
% "======================================================"
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
58
% "CINETICAS DE SECADO"
% "======================================================"
t=str2num(get(handles.edit17,'string'));
DO =str2double(get(handles.edit1,'string'));%Densidad inicial (g/cm3) 1.06
DSS =str2double(get(handles.edit2,'string'));% Densidad del solido seco (g/cm3) 1.245
RO =str2double(get(handles.edit3,'string')); %Radio equivalente inicial (cm) 0.4
RE =str2double(get(handles.edit4,'string')); %Radio equivalente en el equilibrio (cm)
0.216
MO =str2double(get(handles.edit5,'string')); %Peso inicial (g) 301.3
ME =str2double(get(handles.edit6,'string')); %Peso en el equilibrio (g) 61.7
MSS =str2double(get(handles.edit7,'string')); %Peso del solido seco (g) 57.254
XO =str2double(get(handles.edit8,'string')); %Humedad inicial (g de agua/g s.s.) 4.26
CAM =str2double(get(handles.edit9,'string')); %Altura de la cama del lecho (m) 0.07
TEMP=str2double(get(handles.edit10,'string')); %Temperatura del aire de secado (C) 50
VEL =str2double(get(handles.edit11,'string')); %Velocidad del aire de secado (m/s) 4
n=length(t);
%n=19;
% CALCULO DE LOS COEFICIENTES DE TRANSFERENCIA INTERNO Y
EXTERNO
RAD=RO/100;
TEMP=TEMP+273;
HC=.0002946*exp(-1954.87/TEMP)*(VEL*RAD/CAM)^1.051 ;
KC = 1.884*(10^-6)*exp(-3610/TEMP);
% CONVERSION DE UNIDADES DE LOS COEFICIENTES
HC=HC*6000;
KC=KC*360000;
% VARIABLES AUXILIARES PARA SIMPLIFICAR EXPRESIONES
CS=XO*DSS;
CH=DO*(MO-ME)/MO;
H=1/HC;
K=1/(2*KC);
J=CS/CH;
B=(RE/RO)^3;
A=1-B;
C=RE^3;
D=RE^2;
%Lectura de datos de tiempo t
%Limpiar tabla antes de mostrar resultado
set(handles.tabla,'Data',{})
%Limpiar tabla, grafico en caso de que antes se haya graficado
hold on
for k=1:n
tiempo=t(k);
% METODOS NUMERICOS DE NEWTON RAPSON
x1=0.20;
it=0;
fxp=1;
error=0.0001;
while abs(fxp)>error
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
59
fx1= H*(RO-((C+A*x1^3)^(1/3)))+K*(((C+A*x1^3)^(1/3))^2-(C/RO)-A*x1^2)(CS/CH)*A*tiempo;
gx1=-A*(H*((x1^2)/((C+A*(x1)^3)^(1/3))^2)+2*K*(x1(x1^2/((C+A*(x1)^3)^(1/3)))));
xp = x1 -(fx1 / gx1);
fxp= H*(RO-((C+A*xp^3)^(1/3)))+K*(((C+A*xp^3)^(1/3))^2-(C/RO)-A*xp^2)(CS/CH)*A*tiempo;
x1 = xp;
it= it+1;
end
% CALCULOS
XR(k)=xp;
RR= XR(k);
% CALCULO DEL RADIO DE LA PARTICULA"
R=((C+A*(RR)^3)^(1/3));
% CALCULO DEL PESO
M=ME+(MO-ME)*((RR)/RO)^3;
%"CALCULO DE LA HUMEDAD BASE SECA
X=(M-MSS)/MSS;
% MOSTRARA DATOS EN TABLA
valores ={tiempo xp R M X};
temp=get(handles.tabla,'data');
valoresNuevos=[valores;temp];
set(handles.tabla,'Data',valoresNuevos)
hold on
%Grafico de humedad en funcion del tiempo
axes(handles.axes1)
plot(tiempo,X,'r*')
title('CINETICA DE SECADO');
xlabel('Tiempo (min)'),ylabel('Humedad base seca (g agua/100g ms)')
grid on;
hold on
%Grafico de peso en funcion del tiempo
axes(handles.axes2)
plot(tiempo,M,'b*')
title('CINETICA DE SECADO');
xlabel('Tiempo (min)'),ylabel('Peso (g)')
grid on;
hold on
%Grafico de radio de particula en funcion del tiempo
axes(handles.axes3)
plot(tiempo,R,'k*')
title('CINETICA DE SECADO');
xlabel('Tiempo (min)'),ylabel('Radio de particula (m)')
grid on;
k=k+1;
end
function pushbutton2_Callback(hObject, eventdata, handles)
close
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
60
Resultado
BIBLIOGRAFIA
Alamilla, B. L. 1990. Simulacin de la operacin de secado de vegetales basada en un
estudio de deshidratacin por lecho fluidizado. Tesis de Maestra en Ciencias
(Alimentos). Escuela Nacional de Ciencias Biolgicas, IPN, Mxico, D. F.
Alamilla, L., Gutirrez, G., Hernndez, H. y Santiago, P. 1991. Estudio semifundamental
del secado de papa en lecho fluidizado. Tec. Aliment. 25(4):24-29.
Brown, G. G., Foust, A. S., Katz, D. V., Schneidewind, R., White, R. R., Wood, W. P.,
Brownell, L. E., Martin, J. J., Williams, G. B., banchero, J. T., and York, J. L.,
1965. Fluidizacin de slidos. Cap. 20, En Operaciones Bsicas de la Ingeniera
Qumica. p. 285-288. Ed. Marn, Barcelona.
De Baun, R. M. 1959. Response surface design for three factors at three levels.
Technometrics. 1(1):1-8.
Flix, A. B., Robles, R. R. y Santiago, P. T. 1989. Estudio de Ingeniera para la
deshidratacin de papa por lecho fluidizado. Memorias de AMIDIQ.,Mxico
Levenspiel, O., 1976. Solid-fluid reactions. Ch. 12, In Chemical Reaction Engineering.
2da. ed., p. 357-377. Wiley International Edition, N. Y.
6.
L *v2
hf f
2* D* g
Dnde:
hf: prdida de carga
F: Factor de friccin(s/u)
L: longitud de la tubera
D; dimetro de la tubera
v: velocidad promedio del fluido dentro de la tubera
g: aceleracin de la gravedad
Por otro lado, el factor de friccinf puede ser estimado mediante la ecuacin de
Colebrook:
1
1
2.51
2 log
4f
3.7( D / e) Re g 4 f
n 2 n
4n D v
Re g
n 1
3n 1 8 k
n
f
Q
m
A .A
Q
1.
fm
Q
A
n 2 n
4n D v
Re g
n 1
3
n
1
8
k
2.
n
3.
1
1
2.51
2 log
4f
3.7( D / e) Re g 4 f
L*v2
4. hf f
2* D * g
(a)
Primero creamos el programa, introduciendo los datos del ejercicio, luego los clculos
previos que debe hacer el programa para el clculo de las constantes, luego aplicaremos
la solucin por el mtodo de falsa posicin.
fxr=-1-2*(4*xr)^0.5*log(b1+b2*(4*xr)^-0.5);
if(fxr*fx2)>0;
x2=xr;
else
x1=xr;
end
it=it+1;
hf = (xr * lon * (vel^2))/(2 * Diam * 9.81);
end
fprintf('\n El coeficiente de friccin f es: %8.6f \n',xr);
fprintf('\n El nmero de iteraciones es: %4.0f \n',it);
fprintf('\n El caudal Q (m3/h) es: %8.4f \n',Q);
fprintf('\n La velocidad v(m/s) es: %8.6f \n',vel);
fprintf('\n El reynolds generalizado Reg es: %8.6f \n',Reg);
fprintf('\n La perdida de carga (m agua) es: %8.6f \n',hf);
Compilacin: ejecutamos el programa realizado
Alberto HUAMANI HUAMANI
Ingeniera en Industrias Alimentarias
Metodos matemticos en industrias alimentarias
El coeficiente de friccin f es: 0.010160
El nmero de iteraciones es: 8
El caudal Q (m3/h) es: 0.0019
La velocidad v(m/s) es: 2.062281
El reynolds generalizado Reg es: 148.820555
La prdida de carga (m agua) es: 12.841765
7.
1 dma
K g C s C g
A dt
Dnde:
A
ma
t
kg
Cs
Cg
(1)
=
=
=
=
=
=
La ecuacin que describe el movimiento del agua desde el ncleo hmedo hacia la
superficie de la placa, a travs de la capa de slido seco, es:
1 dma
dC
Di
A dt
dz
(2)
Donde:
A
ma
t
Di
C
=
=
=
=
=
Si el secado es controlado por condiciones externas, la ecuacin (1) ser la que describa
el proceso. Si el slido representa la mayor resistencia, la ecuacin (2) tendr un
significado ms alto. En realidad el modelo del ncleo hmedo presenta como
caracterstica ventajosa, desde el punto de vista fenomenolgico, que considera una
sucesin gradual de resistencia. En un principio la fase gaseosa tendr mayor importancia
y posteriormente el slido ser el factor controlante. Esto es un reflejo cercano a lo que
sucede durante el proceso de secado de muchos alimentos y materiales biolgicos en
general.
Se seleccion el modelo exponencial para describir la difusividad efectiva en funcin del
tiempo debido a que es altamente significativo y a que su manejo dentro del simulador es
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
66
Di ae bt
(3)
1 dm
kg C
A dt
(4)
kgCc
t
Ch
(5)
Lc L 0
Que es el modelo que explica la disminucin del espesor de la placa cuando la difusin
de agua a travs de la pelcula gaseosa controla la velocidad de secado.
1 dm Di Cc
A dt L Lc
Lc L0
(6)
2L0Cc ebt 1
LeCh
b
(7)
Donde:
Lo : el espesor inicial
Le :el espesor de la placa en equilibrio
Cc: la concentracin de agua en el ncleo hmedo
Ch : la cantidad de agua a evaporar por unidad de volumen
Que es el modelo que explica la disminucin del espesor de la placa cuando la difusin
de agua a travs de la capa de slido seco controla la velocidad de secado.
En las expresiones anteriores, aparece una resistencia combinada: capa de slido seco y
de la pelcula gaseosa cuya importancia relativa vara a medida que se realiza el secado,
controlando as el proceso global de deshidratacin de la placa.
Debe tomarse en cuenta que ambas resistencias actan en serie y que ambas son lineales
respecto a la concentracin de agua y slidos. Por consiguiente, se pueden combinar
directamente las resistencias individuales de ambas etapas de acuerdo a:
A kg Cc
dm
dt 1 kg L Lc
Di
(8)
Da
kg ( L L c )
Di
(9)
bCh
( Lc L0 )
kgCc
bt
Lekg
kgCc
Lekg 2 Cc
L
0
L
c
L0
bCh
bChL 0
(10)
me m0 me lc
l0
(11)
m mss
mss
(12)
INICIO
Parmetros de
simulacin
(propuestos)
kg, a, b
Dimensiones y
masas de la placa
A, Lo, mo
me, De, mss
Clculo de
Ch, Le y Cc
i = 1 , 100
S
t = -1
Fn
No
Di = a exp (bt)
Obtencin de la raz lc ,
del modelo (ecuacin 10)
Mtodo de
Newton de
2 orden
m = me + (mo - me)lc/Lo
X = (m - mss)/mss
t,X
Se requiere calcular:
Ch : la cantidad de agua a evaporar por unidad de volumen
Le :el espesor de la placa en equilibrio
Cc: la concentracin de agua en el ncleo hmedo
Para calcular el espesor del ncleo hmedo (Lc) a cualquier tiempo (k), se despeja de la
ecuacin el valor de Lc utilizando el mtodo numrico de aproximaciones sucesivas de
Newton de segundo orden (James y col., 1979; Luthe y col., 1988) cuya ecuacin de
recurrencia es:
lc lco
f ' (lco )
f Lc e
bCh Lc L0
k g Cc
f (lco )
f (lco )
2 f ' (lco )
(13)
2
bt Le k g
k g Cc
Le k g Cc
L0 Lc
a
ae
L
bC
bCh L0
0
h
Lk C
f Lc p Di L0 Lc a e g c
bCh L0
f Lc p * q a
bCh
k g Cc
: funcin matemtica
p exp * x L0
f Lc p * q a
Le k g
L0
Di a expb * 60 * t
q Di * L0 x
Dnde:
F(lc) y F(lc) son la primera y segunda derivadas de F(lc), respectivamente.
Formulario
(14)
Programa
function pushbutton1_Callback(hObject, eventdata, handles)
kg=str2double(get(handles.edit1,'string'));
a=str2double(get(handles.edit2,'string'));
b=str2double(get(handles.edit3,'string'));
Ar=str2double(get(handles.edit4,'string'));
Lo=str2double(get(handles.edit5,'string'));
mo=str2double(get(handles.edit6,'string'));
me=str2double(get(handles.edit7,'string'));
mss=str2double(get(handles.edit8,'string'));
de=str2double(get(handles.edit9,'string'));
t=str2num(get(handles.edit10,'string')); % para varios valores
n=length(t);
%Calculus: Ch, Le, Cc, alfa y beta
Din = mo/(Ar*Lo);
Ch = Din*(mo-me)/mo;
Le = me/(de*Ar);
Dss = mss/(Ar * Le);
xo = (mo - mss)/mss;
Cc = Dss*xo;
alfa = b*Ch/(kg * Cc);
beta = Le*kg / Lo;
%Clculo del contenido de humedad en funcin del tiempo
for k=1:n
% t(k)*60; % conversin de tiempo de min a s
Di = a*exp(b*t(k)*60);% Calculo de Di y conversin min a s
tiempo = t(k);
%METODO DE NEWTON RAPHSON DE SEGUNDO ORDEN
lcv = Lo; %Aproximacin inicial de la raz
e=0.000001;
ea=1000;
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
71
it=0; % iteracion
while ea>e
p = exp(alfa*(lcv-Lo));
q = Di + beta*(Lo-lcv+1/alfa);
f = p*q-a-beta/alfa; % funcion
DF = p*(alfa*q-beta); % derivada de funcion
DDF = p*(alfa^2*q-2*alfa*beta); % segunda derivada de funcion
% lcn = lcv-f/(DF-f*DDF/(2*DF));
lcn=lcv-(f*DF)/((DF^2)-(f*DDF)); % algoritmo de Newton
ea= abs(((lcn-lcv)/lcv)*100);
lcv = lcn;
it=it+1;
end
%CALCULO DE HUMEDAD EN CADA TIEMPO
lc(k)=lcn;
Lc=lc(k);
m = me+(mo-me)*Lc/Lo;% Calculo de masa seca en cada tiempo
X= (m-mss)/mss; % Humedad en cada tiempo
% CALCULO DEL ENCOGIMIENTO DEL ESPESOR EN CADA TIEMPO
lc(k) = lcn;
L(k) = Le+(1-Le/Lo)*lc(k);
Dam = kg*(L(k)-lcn)/Di;
rpg(k) = 1/(1+Dam);
rcss(k) = Dam/(1+Dam);
% MOSTRARA DATOS EN TABLA
valores ={tiempo m X L(k) };
temp=get(handles.tabla,'data');
valoresNuevos=[valores;temp];
set(handles.tabla,'Data',valoresNuevos)
hold on
%Grafico de humedad en funcion del tiempo
axes(handles.axes1)
plot(tiempo,X,'r*')
title('CINETICA DE SECADO');
xlabel('Tiempo (min)'),ylabel('Humedad (g agua/ 100g ms)')
grid on;
hold on
% Variacion de masa de agua
axes(handles.axes2)
plot(tiempo,m,'b*')
title('CINETICA DE SECADO');
xlabel('Tiempo (min)'),ylabel('Masa de agua (g)')
grid on;
hold on
% Grafico de variacion de espesor
axes(handles.axes3)
plot(tiempo,L(k),'g*')
title('CINETICA DE SECADO');
xlabel('Tiempo (min)'),ylabel('espesor de nucleo (m)')
grid on;
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
72
k=k+1;
end
function pushbutton2_Callback(hObject, eventdata, handles)
close
Ejecucion del programa
Bibliografa
1. Zazueta, N.J.A. 1994. Estudio del secado a baja presin y baja temperatura y su
comparacin con el secado en tnel experimental. Tesis de Maestra, Universidad
Autnoma de Sinaloa, Mxico. Programa elaborado en lenguaje Visual Basic.
Ejercicios propuestos
Prctica 1-7
EJERCICIOS PROPUESTOS
1.
Suponiendo que no hay forma constante y geomtrica de una placa infinita con espesor
2L, donde la transferencia de humedad durante la deshidratacin osmtica es
predominantemente unidireccional y considerando Def constante, la ecuacin 2.1 se
reduce a:
X
2 X
Def
t
y 2
Para la situacin de humedad inicial X0 uniforme, despreciando las resistencias externas
a la transferencia de materia y considerando la contraccin del producto durante la
deshidratacin despreciable, las condiciones de contorno para la humedad X son:
X Xo
en el
t=0
0<y<L
(2.2a)
Ejercicios propuestos
X Xe
en el
y=L
t>0
(2.2b)
X
0
y
en el
y=0
t>0
(2.2c)
La solucin de la ecuacin 2.2 con las condiciones de contorno 2.2a, 2.2b e 2.2c es:
X Xe
8
2
X0 Xe
(2n 1) 2 2
1
exp
Def .t
2
2
4L
n 0 ( 2n 1)
Para el soluto
M Me
8
2
M0 Me
(2n 1) 2 2
1
exp
Def .t
2
2
4L
n 0 ( 2n 1)
Donde:
X = humedad de la muestra (g);
M = masa de slidos (sacarosa) en la muestra (g);
Def1 = difusividade efectiva del agua (m2/s);
Def2 = difusividad efetiva del soluto (m2/s);
t = tiempo (s);
n = nmero de terminos de la srie;
L = dimensin caracterstica (m). caso placa
Realizar un programa con dos tablas de resultado y dos graficos de cintica de difusividad
efectiva para el soluto y para el agua del producto.
Tabla: Valores de la Perdida de gua (PA), Ganancia de Slidos (GS) y del
Adimensional GS/PA durante la cintica de desidratacin osmtica con solucin de
sacarosa (40, 50 y 60Brix) a 30C.
2.
Ejercicios propuestos
Solucin
El nmero de Reynold crtico correspondiente a este flujo se obtiene de la ecuacin:
6464n
Re Crtico
2 n
1 n
1 3n 1
2n
2
Las prdidas de energa mecnica se obtienen al aplicar la ecuacin de Bernoulli entre los
puntos de entrada y salida es:
Ef
Se asume una velocidad a partir del cual se evala el valor del mdulo de Reynolds
generalizado
d n 4n 2n
v
8n1 k 1 3n
n
Re G
d n 4n
C n1
8 k 1 3n
Re G C * v 2 n
16
Re G
16
C * v 2 n
2 d Ef
vm
4fL
1/ 2
vm
2 d
vm
Ejercicios propuestos
Ef
16
4*L*
C * v 2n
2 d
E f * C * v 2n
4 * L *16
f ( v ) v 2
2 d
E f * C
4 * L *16
v 2n 0
3.
Ejercicios propuestos
De las Tablas de vapor saturado de agua para tv=105C, calor latente de vaporizacin es:
v105C 2242kJ / kg
El calor de condensacin de vapor es cedido al tomate para aumentar su temperatura
desde 18C hasta 75C.
wc v w f Cp f t s t e
kJ
wc 2242 1200kg / h 3,98kJ / kg C 75 18 C
kg
wc 1214,2kg / h
UT mtc U 2 T1 U 1T2
U T
Ln 2 1
U 1 T2
U1 h1
T1 Tv tc 105 18 87 C
U 2 h2
T2 Tv t s 105 75 30 C
0,027k
Re 0,8 Pr0,33
h
d
w
0 ,14
Ejercicios propuestos
w1
4
G
d2
4 *12000kg / h
* 5,25 *10
2 2
1h
kg
1539,8 2
m .s
m 2 3600s
1,75x104 exp(4000/ T )
En la tabla siguiente se hallan recogidos los valores de Re, Pr y calculados a partir de
las ecuaciones anteriores:
Puede observarse que la entrada Re1=496, por lo que para el clculo de h1 se debe utilizar
una expresin para flujo laminar:
d
Nu 1,86Re Pr
L
1/ 3
0 ,14
Luego,
1,86k
Re Prdi 1/ 3
h1
di
w
0 ,14
L1/ 3
Para el clculo de h1 es preciso conocer la longitud del intercambiador, lo que hace que
el problema deba resolverse por iteracin o tanteo.
Al sustituir los valores de las variables, se obtiene:
h1 892L1/ 3 W/m 2 C
Q
d i UT mtc
Siendo:
Q wc v 756,18kW
Ejercicios propuestos
di 5,25*102 m
160,62 * ln(3,91L1/ 3 )
3,91 L1/ 3
160,62 * ln(3,91L1/ 3 )
0
3,91 L1/ 3
4.
Ejercicios propuestos
d i 2
Si
3,1416* (0,22m) 2
0,0380m 2
4
Seccin anular:
Sa
d 0 2 d e2
4
3,1416* (0,30m)
0,02694m 2
d 0 2 d e2
De 4 * rH
4
de
d e2
0,302 0,2362
0,1454m
de
0,236
2
0
wc 10000kg / h 1h
kg
103,1 2
Sa
0,02694 3600s
m s
hDe
0,023Re 0,8 Pr 0,3
k
Mdulo de Prand
kJ 3
4,185
10 Pa.s
kg C
Cp
Pr
7,2
kJ
k
3
0,58x10
s.m. C
Mdulo de Reynolds
Re
v De Gc De
103,1
kg
0,1454m
m 2 .s
1,5 x104
3
10 Pa.s
Ejercicios propuestos
k Cp P N
hi 2
1/ 2
W
kg
J 1 min
3
0,52
4 6
1100 3 3,35x10
m C
kg C min 60s
m
hi 2
W
hi 988 2
m C
1/ 2
Ui
d e d i 0,236 0,22
0,228m
de
0,236
ln
ln
0,22
di
1
988
W
m2 C
8 x103
1
W 0,228m
W 0,236m
23
363 2
m C 0,22m
m C 0,22m
Al operar se obtiene:
U i 255
W
m2 C
kg
kJ
98 TS C 3000 kg 3,35 kJ 40 15C
4,185
h
kgC
h
kgC
TS 92C
De la ecuacin de velocidad
.
Q U i Ai Tm L U i diLTm L
Q w f Cp f t S t e 3000
.
a)
kg
kJ
40 15C 251250kJ
3,35
h
kgC
h
Tm Lc
Ejercicios propuestos
Te t S TS t e 98 40 92 15
67C
Te t S
98 40
ln
ln
92 15
TS t e
kJ
1h / 3600s
h
Ai
4,085m 2
kJ
3
255 *10
* 67C
2
sm C
251250
4,085m 2
L
5,91m
0,22m
b) Si los fluidos circulan en forma paralelo
Tm Lp
Te t e TS t S 98 15 92 40
66,3C
Te t E
98 15
ln
ln
92 40
TS t S
kJ
1h / 3600s
h
Ai
4,128m 2
kJ
3
255 *10
* 66,3C
sm 2 C
251250
4,128m 2
5,97m
0,22m
k
v
0 ,17
di
L
0 , 37
Mdulo de Reynolds
Re
G f di
w f di
Si
kg
1h / 3600s 0,22m
h
3
0,038 * m 2 * 1,6 Pa.s
3000
Mdulo de Prand
Ejercicios propuestos
kJ
3,35
1,6 Pa.s
kg C
Cp
Pr
10,308
kJ
k
0,52x10 3
s.m. C
wf
*S
3000kg / s
1h
0,020m / s
kg
2 3600s
1100 3 0,038m
m
d i N 0,22m 6mi 1 1h
1,104
v
0,02m / s 60s
0,22m
L
L 968L0,37
0, 37
W / m 2 C
Como
Q
1
d i Tm L U i
Q
d i TmL
Q
1
2,904 *103
0 , 37
d i TmL 968L
2,904 *103
hi
Contracorriente:
L
Q
1
2,904 * 103
0 , 37
d i Tm LC 968L
Q
d i Tm LC
L0,37
2,904*103
968
Ejercicios propuestos
Paralelo:
L
Q
d i TmLP
Q
L
d i Tm LP
2,904 *103
0 , 37
968
L
L0,37
2,904*103
968
1
1
2.51
2 log
D
4f
Re g 4 f
3.7
e
n 2 n
4n D v
Re g
n 1
3n 1 8 k
n
f
Q
m
A .A
Ejercicios propuestos
Lv 2
hf f
D2 g
Donde:
hf: prdida de carga
f: Factor de friccin(s/u)
L: longitud de la tubera
D: dimetro de la tubera
v: velocidad promedio del fluido dentro de la tubera
g: aceleracin de la gravedad
Por otro lado, el factor de friccin f puede ser estimado mediante la ecuacin de
Colebrook:
1
1
2.51
2 log
4f
3.7( D / e) Re g 4 f
n 2 n
4n D v
Re g
n 1
3n 1 8 k
n
Ejercicios propuestos
6464n
Re g crtico
2 n
1 n
1 3n 1
2n
2
Ef
gz
Se supone una velocidad a partir de la cual se evala el valor del mdulo de Reynold
generalizado.
n 2 n
4n D v
Re g
n 1
3n 1 8 k
n
16
Re g
2 D.E f
A partir de f y v m
4 fL
1/ 2
SOLUCION
CAPITULO II
SISTEMA DE ECUACIONES
LINEALES
---------------------------------------------------------------------------------------------------------Objetivos: Desarrollar ejercicios de ecuaciones lineales aplicados a la ingeniera de
alimentos.
----------------------------------------------------------------------------------------------------------
2.1
INTRODUCCIN
a n1 X 1 a n 2 X 2 a n 3 X 3 .........a nn X n bn
(2.1)
Donde:
aij : coeficientes 1 i m, 1 j n
xj : incgnitas j = 1, 2, ..., n
bi : Termino independiente i = 1, 2, ..., m
A resolucin de un sistema lineal consiste en calcular os valores de xj, j = 1, 2, ..., n,
caso en los que existan, que satisfagan las m ecuaciones simultneamente.
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
89
Usando notacin matricial, el sistema linear pode ser representado por AX = B, donde
a11
a
21
.
A
.
.
am1
a12
a22
.
.
.
am 2
a1n
... a2 n
.
.
.
.
.
.
... amn
...
x1
x
2
.
X
.
.
xm
b1
b
2
.
B
.
.
bm
Si r(A) = r(Aa) = k,
Consistente, existe solucin
Si K = n, la solucin es nica
Cuando todos los termos independientes fueren nulos, esto es, si bi = 0, i = 0, 1, ..., m, o
sistema es homogneo. Todo sistema homogneo compatible, pues admitir por lo
menos la solucin trivial (xj = 0, j = 0, 1, 2, ..., n).
2.3
D B C
5 9 3 2 8 11
7 2 1 0 6 2
Producto de Matrices
Para multiplicar una matriz [A] por un escalar g, se multiplica cada elemento de [A] por
g.
3 1
22 29
5 9
D B* C 8 6 * 82 84
7 2
0 4
28 8
3*5+1*7=22
8*5+6*7=82
A* x b
(2.3)
a x
j 1
ij
bi
(2.4)
1
xi bi aij x j
aii
j 1
i 0
2.4
(2.5)
Un mtodo es dicho directo cuando la solucin exacta x del sistema lineal es obtenida
realizando un numero finito de operaciones aritmticas. Son ejemplos conocidos la regla
de Cramer, el mtodo de eliminacin de Gauss (la triangulacin) y el mtodo de Jordan.
2.4.1 Regla de Cramer
Sea un sistema lineal con nmero de ecuaciones igual al nmero de incgnitas (un sistema
n x n), siendo D el determinante de la matriz A, y Dx1, Dx2, Dx3, ..xn los determinantes
de las matrices obtenidas intercambiando en M, respectivamente, la columna de los
coeficientes x1, x2, x3, xn por la columna de los trminos independientes tenemos
que: El sistema S ser compatible y ser solucin nica si, es solamente si, D 0. En este
caso la solucin de S es dada por:
x1
Dx1
D
x2
Dx2
D
x3
Dx3
D
xn
Dxn
D
La aplicacin de Regla de Cramer exige el clculo de n+1 determinantes (det A e det Ai,
1 i n); para n = 20 el nmero total de operaciones efectuadas ser 21 * 20! * 19
multiplicaciones ms un nmero semejante de adiciones. Asimismo, un computador que
efecte cerca de 100 millones de multiplicaciones por segundo llevara 3 x 10^5 aos
para efectuar las operaciones necesarias. Como eso, la regla de Cramer es inviable en
funcin del tiempo de computacin para sistemas muy grandes.
2.5
MTODOS ITERATIVOS
Practica 2-1
MTODO DE ELIMINACIN
DE GAUSS
2.1 MTODO DE ELIMINACIN DE GAUSS
El mtodo de eliminacin de Gauss es transformar el sistema lineal original en otro
sistema lineal equivalente a los coeficientes de matriz triangular superior, que son de la
resolucin inmediata. Decimos que dos sistemas lineales son equivalentes cuando tienen
la misma solucin. El determinante de los sistemas lineales equivalentes es igual.
Con (n - 1) pasos el sistema lineal Ax = B se transforma en un sistema triangular
equivalente: UX = C, que puede ser resuelto fcilmente por sustituciones.
Vamos a calcular la solucin AX = B en tres pasos:
1 etapa: Matriz Completa
Consiste en escribir la matriz completa o aumentada del sistema linear original.
2 etapa: Triangulacin
Consiste en transformar la matriz A una matriz triangular superior, mediante una
secuencia de operaciones elementales en las lneas de la matriz.
3 etapa: Retro-substitucin
Consiste en el clculo de los componentes x1, x2, ..., xn, solucin de AX = B, a partir
de la solucin del ltimo componente (xn), y en tanto sustituimos regresivamente
en las ecuaciones anteriores.
Teorema: Sea AX = B un sistema linear. Aplicando sobre las ecuaciones de este sistema
una secuencia de operaciones elementales escogidas entre:
i) Cambiar el orden de las dos ecuaciones del sistema;
ii) Multiplicar una ecuacin del sistema por una constante diferente de cero;
iii) Aadir un mltiplo de una ecuacin a una otra ecuacin;
obtenemos un nuevo sistema UX = C y los sistemas AX = B e UX = C son equivalentes.
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
93
xn
bn
a nm
xn1
bn1 an1,n xn
an1,n1
x1
mik
aik
a kk
cada paso del proceso k. Puesto que el coeficiente akk llamado pivote.
Qu pasa si el pivote es nulo? Y si el pivote est cerca de cero?
Estos dos casos merecen una atencin especial, ya que es imposible trabajar con un pivote
cero. Y trabajar con un pivote cerca de cero puede dar lugar a resultados totalmente
inexactos. Esto es porque en ningn clculo de la calculadora o de ordenador se llevan a
cabo con precisin finita y cerca de cero pivotes son ms grandes y la altura de la unidad
multiplicadora, a su vez, provoca un ensanchamiento de errores de redondeo.
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
94
Para evitar estos problemas deben adoptar una estrategia de pivoteamiento, o adoptar un
proceso de seleccin de la fila y/o columna pivote.
Esta estrategia consiste en:
i) En el inicio da etapa k da fase de escalonamiento, escoger para pivote y
elemento de mayor mdulo entre los coeficientes: aik, i = k, k + 1, ..., n;
ii) Intercambiar las lneas k y i si fuera necesario.
2.1.3 Clasificacin del sistema triangular
U es un sistema triangular superior escala de m ecuaciones y n incgnitas, tenemos las
siguientes posibilidades:
i) m = n sistema compatible y determinado;
ii) m < n sistema compatible y indeterminado.
Si durante o escalonamiento surgir ecuaciones do tipo: 0x1 + 0x2 + ... + 0xn = bm, en
tanto:
i) Se bm = 0, en tanto eliminaremos la ecuacin y continuamos el
escalonamiento;
ii) Se bm 0, en tanto concluirse que el sistema es incompatible.
Ejemplo:
sese la Eliminacin Gaussiana para resolver:
3 x1
0,1x 2
0,2 x3
7,85
0,1x1
0,3 x1
7 x2
0,2 x 2
0,3 x3
10x3
19,3
71,4
3 x1
0,1x2
0,2 x3
7,85
7,0033x2
0,2933x3
10,012x3
19,5617
70,084
Respuesta
x3= 7,00003
x2 = -2,500
x1= 3,000
Desventajas:
Divisin entre cero
Errores de redondeo
Sistemas mal condicionados
El procedimiento para resolver este sistema consta de dos pasos:
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
95
aij
aii
Cn
(Sustitucin hacia atrs)
ann
n
bii1 aiji1 x j
i 1
aiji1
Programa
function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)
f=str2num(get(handles.edit1,'string'));
[m,n] =size(f);
salidaa ='';
salida='';
i=1;
k=2;
for s=1:n
sal=sprintf('%10.3f ',f(1,s));
salida=[salida,sal];
end
while i<=m
sal=sprintf('\n');
salida=[salida,sal];
divisor=f(i,i);
aux=k;
while k<=m
j=1;
numerador=f(k,i);
while j<=n
f(k,j)=f(k,j)-(f(i,j)*(numerador/divisor));
if aux==k
sal=sprintf('%10.3f ',f(k,j));
salida=[salida,sal];
end
j=j+1;
end
k=k+1;
end
i=i+1;
k=i+1;
end
set(handles.edit2,'string',salida);
% sustitucion hacia atras
i=m;
j=n;
f(i,j)=f(i,j)/f(i,j-1);
i=i-1;
while i>=1
j=n-1;
while j>i
f(i,j)=f(i,j)*f(j,n);
if f(i,j)>0
f(i,n)=f(i,n)-f(i,j);
else
f(i,n)=f(i,n)-f(i,j);
end
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
97
j=j-1;
end
f(i,n)=f(i,n)/f(i,j);
i=i-1;
end
i=1;
while i<=m
sal=sprintf('X%d = %10.3f \n',i,f(i,n));
salidaa=[salidaa,sal];
i=i+1;
end
set(handles.edit3,'string',salidaa);
function varargout = pushbutton2_Callback(h, eventdata, handles, varargin)
close
Ejecucin del programa
Ejemplo tenemos sistema matricial o sistema de ecuaciones simples
X1 X 2 2X 3 3
3 X 1 X 2 X 3 1
2 X 3 X 4 X 8
2
3
1
Ingresamos los coeficientes del sistema de ecuaciones: 1 1 2 3;3 -1 1 1;2 3 -4 8 los
coeficientes de la matriz
El resultado es:
Practica 2-2
METODO DE
GAUSS-JORDAN
2.2 MTODO DE GAUSS JORDAN
Consiste en aplicar operaciones elementares sobre as ecuaciones del sistema linear dado
hasta que se abstenga un sistema diagonal equivalente.
INICIO
LEER
n , aij
i=0,n,1
divisor = aii
j = i , n + 1, 1
aij = aij /divisor
k=1,n,1
i~=k
pivote=a(k,i)
j = i, n, 1
akj = akj - pivote* aij
ESCRIBIR
ai,n+1
Fin
Programa
function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)
a=str2num(get(handles.edit1,'string'));
[m,n]=size(a);
for i=1:m
divisor=a(i,i);
for j=i:n
a(i,j)=a(i,j)/divisor;
end
for k=1:m
if i~=k
pivote=a(k,i);
for j=i:n
a(k,j)=a(k,j)-pivote*a(i,j);
end
end
end
end
for i=1:m
x(i)=a(i,n);
end
x=x';
t=1:m;
t=t';
cadena='';
for t=1:m
cad=sprintf('x%d=%6.2f',t,x(t));
cadena=[cadena;cad];
end
set(handles.edit2,'string',cadena)
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
100
4 X1 2 X 2 5 X 3 4
X 1 3 X 2 2 X 3 2
2 X 1 X 2 7 X 3 11
prctica 2-3
METODO DE
JACOBI
2.3
METODO JACOBI
Este mtodo es muy poco utilizado debido a que el mtodo de Gauss-Seidel converge
ms rpidamente a la solucin y adems lo hace cuando no se logra que el mtodo de
Jacobi converja.
La condicin suficiente para que el mtodo de Jacobi converja es que la matriz de
coeficientes sea diagonal dominante, es decir que cada elemento de la diagonal principal
es mayor en valor absoluto que la suma del resto de los elementos de la misma fila en la
que se encuentra el elemento en cuestin.
El mtodo de Jacobi consiste en hacer una suposicin inicial de la solucin e iterar con
los valores previos utilizando la ecuacin (2.5). La ecuacin que describe la iteracin de
Jacobi es:
k 1
i
n
1
k
bi aij x j
aii
j 1
i 0
(2.10)
1
X i Ci aij X 0 j
aii
j 1
j i
err1=100;
err2=100;
err3=100;
[m,n]=size(f);
salida='';
i=1;
j=1;
x1=0;
x2=0;
x3=0;
x1ant=0;
x2ant=0;
x3ant=0;
while err1>error|err2>error|err3>error
sal=sprintf('Iteracion %d\n',j);
salida=[salida,sal];
%calculo de x1
x1=(f(i,n)-f(i,2)*x2ant-f(i,3)*x3ant)/f(i,i);
err1=((x1-x1ant)/x1)*100;
if err1<0
err1=err1*-1;
end
sal=sprintf('x1= %5.3f error = %5.3f\n',x1,err1);
salida=[salida,sal];
i=i+1;
%calculo de x2
x2=(f(i,n)-f(i,1)*x1ant-f(i,3)*x3ant)/f(i,i);
err2=((x2-x2ant)/x2)*100;
if err2<0
err2=err2*-1;
end
sal=sprintf('x2= %5.3f error = %5.3f\n',x2,err2);
salida=[salida,sal];
i=i+1;
%calculo de x3
x3=(f(i,n)-f(i,1)*x1ant-f(i,2)*x2ant)/f(i,i);
err3=((x3-x3ant)/x3)*100;
if err3<0
err3=err3*-1;
end
sal=sprintf('x3= %5.3f error = %5.3f\n\n\n',x3,err3);
salida=[salida,sal];
i=1;
j=j+1;
x1ant=x1;
x2ant=x2;
x3ant=x3;
end
set(handles.edit2,'string',salida);
sal=sprintf('x1= %5.3f\nx2= %5.3f\nx3= %5.3f',x1,x2,x3);
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
105
set(handles.edit3,'string',sal);
function varargout = pushbutton2_Callback(h, eventdata, handles, varargin)
set(handles.edit1,'string','');
set(handles.edit2,'string','');
function varargout = pushbutton3_Callback(h, eventdata, handles, varargin)
close
Resolver la matriz
2 X 1 1X 2 0,1X 3 3
0,1X 1 7 X 2 0,3 X 3 20
3 X 1 2 X 2 100X 3 450
2 -1 0.1 3; 0.1 7 -0.3 20; 3 -2 100 450
y el error de 0.001
Resultado
Practica 2-4
METODO DE
GAUSSSEIDEL
2.4
MTODO DE GAUSSSEIDEL
k 1
i
i 1
n
1
k 1
k
bi aij x j aij x j
aii
j 1
j i 1
i 0
(2.11)
1
Xi
aii
i 1
Ci aij X j
j 1
a
X
ij 0 j
j i 1
Programa
function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)
f=str2num(get(handles.edit1,'string'));
error=str2num(get(handles.edit4,'string'));
err1=100;
err2=100;
err3=100;
[m,n]=size(f);
salida='';
i=1;
j=1;
x1=0;
x2=0;
x3=0;
x1ant=0;
x2ant=0;
x3ant=0;
while err1>error|err2>error|err3>error
sal=sprintf('Iteracion %d\n',j);
salida=[salida,sal];
%calculo de x1
x1=(f(i,n)-f(i,2)*x2-f(i,3)*x3)/f(i,i);
err1=((x1-x1ant)/x1)*100;
if err1<0
err1=err1*-1;
end
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
109
x1ant=x1;
sal=sprintf('x1= %5.3f error = %5.3f\n',x1,err1);
salida=[salida,sal];
i=i+1;
%calculo de x2
x2=(f(i,n)-f(i,1)*x1-f(i,3)*x3)/f(i,i);
err2=((x2-x2ant)/x2)*100;
if err2<0
err2=err2*-1;
end
x2ant=x2;
sal=sprintf('x2= %5.3f error = %5.3f\n',x2,err2);
salida=[salida,sal];
i=i+1;
%calculo de x3
x3=(f(i,n)-f(i,1)*x1-f(i,2)*x2)/f(i,i);
err3=((x3-x3ant)/x3)*100;
if err3<0
err3=err3*-1;
end
x3ant=x3;
sal=sprintf('x3= %5.3f error = %5.3f\n\n\n',x3,err3);
salida=[salida,sal];
i=1;
j=j+1;
end
set(handles.edit2,'string',salida);
sal=sprintf('x1= %5.3f\nx2= %5.3f\nx3= %5.3f',x1,x2,x3);
set(handles.edit3,'string',sal);
function varargout = pushbutton2_Callback(h, eventdata, handles, varargin)
set(handles.edit1,'string','');
set(handles.edit2,'string','');
function varargout = pushbutton3_Callback(h, eventdata, handles, varargin)
close (gcbf)
Resolver la matriz
2 X 1 1X 2 0,1X 3 3
0,1X 1 7 X 2 0,3 X 3 20
3 X 1 2 X 2 100X 3 450
2 -1 0.1 3; 0.1 7 -0.3 20; 3 -2 100 450
y el error de 0.0001
Resultado
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
110
Practica 2-5
SISTEMA DE ECUACIONES
NO LINEALES
Mtodo de Newton-Raphson
Este mtodo se basa en utilizar el desarrollo de Taylor para aproximar una funcin
derivable en las proximidades de un punto. Partimos de un sistema de la forma
f1 x1 ,......... ., xn 0
f 2 x1 ,......... ., xn 0
f n x1 ,......... ., xn 0
Del que se pretende obtener una solucin. Se supone que la solucin buscada, (x1, . . . ,
xn), se escribe de la forma
x1 x10 x1
.
..
xn xn0 xn
y, por tanto, se tiene que
f
1 x
0 n
f1 x xi 0
i 1 xi
.
f
1 x
0 n
f n x xi 0
i1 xi
0
Donde
F = (f1, . . . , fn) y
f1
f1
.......
x
xn
1
DF .......... .......
f n ....... f n
x1
xn
Queda
0
0 0
F x DF x x x 0
Entonces
0 0
1
DF
F x
x
x
DF
x F x
x x
Dado que calcular explcitamente la matriz inversa de la matriz Jacobiana no es, en
general, un proceso muy eficiente desde el punto de vista numrico, a la hora de
implementar el mtodo se hace en dos pasos:
k 1
1. Se resuelve el sistema
k
k k 1
DF x x F x
2. Se calcula
k 1
k 1
Las siguientes funciones muestran una posible implementacin en Matlab del mtodo de
Newton, para resolver el sistema
1. Programa en archivo.m
Crear una carpeta y guardar los siguientes programas
function y=f(x)
% funcion para utilizar con newtonsi.m
y(1)=x(1)^2-10*x(1)+x(2)^2+8;
y(2)=x(1)*x(2)^2+x(1)-10*x(2)+8;
function df=jac(x)
% matriz jacobiana para usar con newtonsi.m
df(1,1)=2*x(1)-10;
df(1,2)=2*x(2);
df(2,1)=x(2)^2+1;
df(2,2)=2*x(1)*x(2)-10;
function [xr,k]=newtonsi(x,tol,imax)
% Metodo de Newton para sistemas de ecuaciones
% Uso: [xr,k]=newtonsi(x,tol,imax)
% Input:
%x = vector x1,x2,...,xn inicial,
%tol=tolerancia
% Se ha de disponer de las funciones:
% f.m funcion y=f(x) donde se define el sistema
% jac.m funcion df=jac(x) donde se define la matriz
% derivada del sistema.
% Output: xr= raiz, k= numero de iteraciones.
k=1;
epi=1;
x1=x;
while norm(epi)>tol
x=x1;
fxn=f(x);
axn=jac(x);
epi=axn\fxn';
x1=x-epi';
k=k+1;
if k>imax
disp('no converge')
break
end
end
xr=x1;
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
115
2.
Otro programa
Practica 2-6
APLICACIONES A LA
INGENIERIA DE INDUSTRIAS
ALIMENTARIAS
1. Ejercicio aplicado. Una formulacin de salchicha ser hecha de los siguientes
ingredientes:
Carne de vacuno (magra)- 14% de grasa, 67% de agua, 19% de protena. Grasa de
cerdo - 89% de grasa, 8% de agua, 3% de protena Protena aislada de soya - 90%
de protenas, 8% de agua. Se necesita agua para ser aadida (usualmente en forma
de hielo) para conseguir la humedad deseada del contenido. La protena aislada
adicionada es el 3% del peso total de la mezcla. Cunta carne de vacuno magra,
grasa de cerdo, agua y soya aislada se necesitar para obtener 100 kg de una
formulacin teniendo la siguiente composicin? : Protena:15% ; Humedad: 65%
; Grasa: 20%
Solucin
Carne Vacuno
Grasa=14%
Protena=19%
Agua=67%
Grasa Cerdo
Grasa=89%
Protena=3%
Agua=8%
Protena Soya
Salchicha
MEZCLADO
Grasa=20%
Protena=15%
Agua=65%
Grasa=2%
Protena=90%
Agua=8%
Agua
Agua=100%
X1 +
X2 +
X3 + X4 =100
0,19X1 + 0,03X2 + 0,90X3 + 0X4 = 15
0,14X1 + 0,89X2 + 0,02X3 + 0X4 = 20
0,67X1 + 0,08X2 + 0,08X3 + X4 = 65
Total
Protena
Grasa
Agua
X1 +
X2 +
3 + X4 =100
0,19X1 + 0,03X2 + 2,7 + 0X4 = 15
0,14X1 + 0,89X2 + 0,06 + 0X4 = 20
0,67X1 + 0,08X2 + 0,24+ X4 = 65
X1 +
X2 + X4 =97
0,19X1 + 0,03X2 + 0X4 = 12,3
0,14X1 + 0,89X2 + 0X4 = 19,94
0,67X1 + 0,08X2 + X4 = 64,76
Total
Protena
Grasa
Agua
Total
Protena
Grasa
Agua
Solucion
Realizamos el balance de materia respectivo en el sistema.
Entra Sale lo.que.reaciona Acumulado
(1)
Primer Reactor
Segundo reactor
Tercer reactor
dCA1
, entonces cero (0) el valor para cada caso.
dt
Reemplazando los valores tenemos:
Como no cambia con el tiempo
Primer Reactor
(1)
(2)
(3)
3. Formulacin de helado: Preparar 100 kg de una mezcla de helado con las siguientes
caractersticas: 11 % de grasa, 12% de protena, 3% de gelatina y 15 % de azcar. A
partir de los siguientes ingredientes disponibles: M = mantequilla (80% grasa,0,5%
SNG), LD = leche descremada (93 % SNG, 0,5% grasa, 2% lactosa), G = gelatina
(95% gelatina, 2% azcar), A = azcar (94 % sacarosa, 3% gelatina)
Tenemos el sistema matricial
Mantequilla Leche
X1
descr X2
BM general
1
1
BM Grasa
0,8
+0,005
BM SNG
0,05
+0,93
BM gelatina
0
+0
BM Azcar
0
+0,02
Gelatina Azcar
Agua X5
X3
X4
1
1
1
+0
+0
+0
+0
+0
+0
+0,95
+0,03
+0
+0,02
+0,94
+0
Helado
=100
= 11
= 12
=3
= 15
Maz
Carbohidratos
Protenas
Vitaminas
Celulosa
Costo $/kg
80
28
20
50
18
Desperdicio
15
72
20
10
5
Alfalfa
Cebada
35
57
12
20
7
60
25
20
60
20
Requerimiento
Diario
Unidades/kg
230
180
80
160
--------
Carbohidratos
80
28
20
50
15 35 60
72 57 25
20 12 20
10 20 60
x1
x 2
x3
x 4
Protena
Vitaminas
Celulosa
230
180
=
80
160
Solucin
Balance de materia para el benceno en cada plato
Plato
5
Balance de benceno
L( x 0 x5 ) V ( y 4 y 5 ) 0
L( x5 x 4 ) V ( y 3 y 4 ) 0
L( x 4 x3 ) V ( y 2 y 3 ) 0
L( x3 x2 ) V ( y1 y 2 ) 0
L( x2 x1 ) V ( y 0 y1 ) 9
4
3
512x5
12x4
500x5
512x4
12x3
500x4
512x3
500x3
12x2
512x2
12x1
500x2
512x1
Practica 2-6
EJERCICIOS PROPUESTOS
1.
2.
Hgado
3
1
3
Carne
1
3
2
Tocino
2
2
4
F=0.1 pies3/min
h1
(1)
h2
L=2"
D=4"
3.
(2)
h3
L=2"
D=4"
(3)
L=8"
D=4"
Una cadena de supermercados vende carne molida del tipo popular y selecta. Un lote
de molida popular contiene 3 kg de grasa y 17 kg de carne roja, un lote de molida
selecta contiene 2 kg de grasa y 18 kg de carne roja. Si en un momento dado cuenta
Una granja avcola incluye en la dieta de sus aves vitaminas B, C y D, para evitar
enfermedades, as como un desarrollo ms rpido. En cierto mes compraron 20 cajas
de vitamina B, 40 cajas de vitamina C y 50 cajas de vitamina D pagando $70000, al
mes siguiente compraron 30 cajas de vitamina B, 20 de vitamina C y 50 cajas de
vitamina D por un total de $51520, un mes despus compraron 40 de vitamina B, 10
de vitamina C y 70 de vitamina D con un costo de 45000, s el precio por caja no ha
variado en todo ese tiempo que precio tiene cada caja de vitaminas.
5.
Un granjero prepara una mezcla de avena y maz para alimentar a su ganado. Cada
kilogramo de avena contiene 0.15 kilogramos (kg) de protena y 0.6 kg de
carbohidratos, mientras que cada kilogramo de maz contiene 0.1 kg de protena y
0.75 kg de carbohidratos. Cuntos kilogramos de cada uno pueden usarse para
cumplir con los requerimientos nutricionales de 7,5 kg de proteinas y 50 kg de
carbohidratos por comida?
6.
7.
X1 X 2 2 X 3 3
3X1 X 2 X 3 1
2 X1 3X 2 4 X 3 8
Aplicando el mtodo de eliminacin gaussiana.
a) Eliminacin hacia adelante
-------------------------------------------------------------------------------------------------------------------------------------------------------Alberto L.Huaman Huaman
124
Se procede ahora a eliminar la segunda incgnita de la tercera ecuacin, para ello se divide
la segunda ecuacin por -4 y se multiplica por el coeficiente de la tercera ecuacin que
5
en este caso es 1, quedando la segunda como: X 2 X 3 2 y se resta este resultado
4
de la tercera ecuacin. El sistema es ahora:
X1 X 2 2 X 3 3
4 X 2 5 X 3 8
37
X3 0
4