Está en la página 1de 23

Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr.

Martn Rivera Toledo 2013-1 1/23


Contenido
1. Especificacin de grados de libertad de diseo
2. Especificacin de variables de diseo para un proceso
3. Enfoque modular secuencial para la simulacin de procesos
4. Cdigos MATLAB

1. Especificacin de variables de diseo


En el diseo de procesos para la separacin fsica de componentes por mecanismos en los que intervienen
transferencias de calor y materia, la primera etapa consiste generalmente en la especificacin de las condiciones
del proceso o variables independientes [Kwauk, Mooson (1956 ) AIChE J., 2, 240-248]

NGL = NV - Nec

NGL: Nmero de Grados de libertad de diseo
NV: Nmero de Variables
Nec: Nmero de Ecuaciones independientes

Ejemplo1:

Se tiene una separacin sbita (Flash) de una mezcla multicomponente en un tanque que tiene como
producto dos fases en equilibrio fsico, sin reaccin qumica.

Escriba
a. El modelo matemtico correspondiente para la operacin mencionada en estado estacionario
b. El nmero de grados de libertad de diseo
c. La especificacin de variables
d. El algoritmo de solucin para el caso isotrmico
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 2/23
Solucin

1. Representacin esquemtica




Figura 1. Tanque flash de dos fases

2. Definicin de variables

Flujo molares: F, V, L [ =] lbmol/h
Fracciones molares del componente i: Zi, Yi, Xi, i =1, 2, ... C componentes
Temperaturas: T
F
, T
V
, T
L
[ =] R
Presiones: P
F
, P
V
, P
L
[ =] Psia
Calor: Q [ =] BTU / h
Entalpas: H
F
, H
V
, H
L
[ =] BTU / lbmol



Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 3/23
3. Aplicacin de las ecuaciones de
conservacin de masa, energa y
condiciones de equilibrio fsico

F = V + L (1 Ec)

F Zi = V Yi + L Xi (C-1 Ec)
i =1, 2, ... C componentes

F H
F
+ Q = V H
V
+ L H
L
(1 Ec)


Yi = K
i
Xi (C Ec)

T
V
= T
L
(1 Ec)

P
V
= P
L
(1 Ec)




4. Declaracin de las restricciones

=
=
C
1 i
1 Zi (1 Ec),

=
=
C
1 i
1 Yi (1 Ec),

=
=
C
1 i
1 Xi (1 Ec)

El nmero total de ecuaciones
independientes es Nec = 2 C + 6


5. Listado del conjunto de variables


F V L 3
Zi, Yi Xi 3 C
T
F
T
V
T
L
3
P
F
P
V
P
L
3
Q 1

Nmero de variables NV = 3 C + 10

Como NGL = NV - Nec

Entonces se tiene NGL = 3 C + 10 - (2 C + 6)

NGL = C + 4
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 4/23

6. Especificacin de variables

Para la corriente de alimentacin de especifican C +2 variables como son:

F, Z
1
, Z
2
, ... Z
C-1
, T
F
& P
F
y las otras dos variables faltantes estarn dadas segn los casos siguientes

Tabla 1. Casos de estudio para el tanque flash de dos fases
CASO TIPO FLASH VARIABLES POR
ESPECIFICAR
VARIABLES A
CALCULAR
1 Isotrmico T
V
o T
L
&

P
V
o P
L

L, V, Yi, Xi, Q
2 Adiabtico


3 Temperatura de roco para F


4 Temperatura de burbuja para F


5 Presin de roco para F


6 Presin de burbuja para F


7 Recuperacin de un componente i en L


8 Recuperacin de un componente i en V



Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 5/23
7. Algoritmo de solucin

7.1 Caso isotrmico

1. Una vez especificadas F, Z
1
, Z
2
, ...
Z
C-1
, T
F
& P
F
y T
V
o T
L
&

P
V
o P
L
,
se podr calcular el coeficiente de
reparto Ki para cada uno de los
componentes de la mezcla de
alimentacin

2. Fijar la tolerancia c para el error y el
nmero mximo de iteraciones t

3. Especificar un valor inicial para (V/F)
0

= 0.5

4. Especificar valores iniciales para el
error, un contador k y el nmero de
iteraciones (iter)

5. Si error < c o iter > t entonces se
termina el proceso de calculo y se
reportan los valores calculados para
(V/F)
k
, L, V, Yi & Xi , de lo contrario
continuar con el proceso de calculo

6. Calcular los valores para la funcin y
primera derivada de la funcin

( )
( )

=
+

=
C
i
k
Ki k F V
Ki Zi
F V f
1
1 ) / ( 1
1
) / (


( )
( ) | |

=
+

=
C
i
k
Ki k F V
Ki Zi
F V d
df
1
2
2
1 ) / ( 1
1
) / (


7. Calcular el nuevo valor para
(V/F)
k+1
con
(V/F)
k+1
= (V/F)
k
-
) / ( F V d
df
f
k
k


8. Calcular el error como

1
1
) / (
) / ( ) / (
+
+

=
k
k k
F V
F V F V
error

9. Asignar k = k+1
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 6/23
8. Prueba y evaluacin del algoritmo (Ejemplo 2)

Para una mezcla ternaria que se alimenta a razn de 500, 600 y 900 lbmol/h para los
componentes A, B Y C, respectivamente, tiene los coeficientes de reparto para la operacin a
temperatura y presin constantes:

K=[ 2.5230 1.57 0.032915]

Calcule los flujos de producto para las corrientes de vapor y lquido

Solucin:
Aplicando el algoritmo sugerido en el punto 7 se obtuvieron los resultados siguientes a partir de
la codificacin en MATLAB de la seccin 4 que se encuentra al final de este documento

V/F
solucion
= 0.110031102 V = 220.062204 lbmol/h

L = 1779.937796 lbmol/h F = 2000.000000 lbmol/h

Xi(1) = 0.214118573 Yi(1) = 0.540221160

Zi(1) = 0.250000000 Xi(2) = 0.282295093

Yi(2) = 0.443203296 Zi(2)= 0.300000000

Xi(3) = 0.503586334 Yi(3) = 0.016575544

Zi(3) = 0.450000000 Numero de iteraciones = 5 Error =2.333332e-014
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 7/23
Grados de Libertad para otras operaciones









a. y cules son los grados de libertad
para un reactor qumico?
b. Cmo se calculan los grados de
libertad para un conjunto de mdulos
interconectados?
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 8/23
2. Especificacin de variables de diseo para un esquema de proceso


Para calcular el nmero de grados de libertad de diseo de un esquema de proceso, se puede
aplicar un algoritmo para la enumeracin de variables, ecuaciones y grados de libertad para
combinaciones de elementos con el fin de formar unidades, lo cual se puede representar como



A
unidades de
total Numero
1 i
i
N 2) (C NCR - NGL NGLU + + =

=




NGLU : Nmero de Grados de Libertad de una Unidad Compleja
NGL
i
: Nmero de Grados de Libertad de diseo para la unidad i
NCR : Nmero de Corrientes de Interconexin
N
A
: Nmero de Grados de Libertad Adicionales








Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 9/23
Ejemplo 3:

Reporte el NGLU para el esquema que representa el problema de Cavett

Tabla 2. Grados de libertad para el problema de
Cavett
Unidad Operacin NGL
i
Variables a
especificar
I Flash2 C + 4

II Flash2 C + 4

III Flash2 C + 4

IV Flash2 C + 4

V Mix3 3 C + 8

VI Mix2 2 C + 6


=
=
6
1
i
NGL
i
9 C + 30

NCR = 8 & N
A
= 0 por lo tanto
0 2) (C 8 - ) 30 C 9 ( NGLU + + + =


NGLU = C + 14 Figura 2. Problema de Cavett
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 10/23
Problema 1

a. Reporte el NGLU para la columna de destilacin de la figura 3
b. Calcule el nmero mnimo de etapas
c. Trace los perfiles de temperatura, composicin y flujos Inter-etapas por medio del uso del
simulador de procesos ASPEN-PLUS



Figura 3. Columna de separacin de xilenos

Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 11/23
5. Enfoque modular secuencial para la simulacin de procesos



El enfoque modular secuencial es una tcnica de
simulacin aplicada a esquemas de proceso que
operan en rgimen permanente, el orden de
solucin de cada mdulo que conforma el
sistema se determina a partir del conjunto de
corrientes de corte, que a su vez se especifica
por medio de la matriz de ciclos, por ejemplo,
para el problema de Cavett la matriz de ciclos
correspondiente est definida en la tabla 3.

Figura 4. Problema de Cavett

Tabla 3. Matriz de ciclos para el problema de Cavett
Ciclo\Corriente S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11
A 0 1 1 0 1 0 0 0 0 0 0
B 0 1 0 0 0 1 1 1 0 0 0
C 0 0 0 0 0 0 1 0 1 1 0


Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 12/23
Si el conjunto de corrientes de corte seleccionado esta dado por { S2, S9} con entonces la
secuencia de calculo ser II, I, IV, VI III & V, el cual se obtuvo a partir de la figura siguiente:
























Figura 5. Secuencia de clculo para el problema de Cavett
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 13/23
Que tambin puedes ser representado de la forma siguiente



Figura 6: Programa principal


Figura 7: Rutina del proceso qumico


Figura 8: Rutina del algoritmo de convergencia

El mdulo solver (Figura C) es un algoritmo
para corregir el valor del conjunto de
corrientes de corte. Los algoritmos
comnmente empleados son:
1. Sustitucin sucesiva,
2. Wegstein,
3. Newton,
4. Quasi-Newton
4.1 Secante,
4.2 Secante generalizada,
4.3 Broyden, etc.
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 14/23
Aplicacin del enfoque modular secuencial para la simulacin de procesos a travs del
empleo de matlab y aspen-plus

Caso 1 El problema de Cavett

Tabla 4. Datos para el proceso de Cavett
COMPONENTE ALIMENTACIN
[lbmol/h]
FLASH 1 FLASH 2 FLASH 3 FLASH 4
Ki Ki Ki Ki
N2
358.2 15.0000 35.0000 180.0000 630.0000
CO2
4965.6 2.2700 6.6000 29.1000 89.0000
H2S
389.4 0.8400 2.0300 8.4000 29.5000
C1
2995.5 3.5000 11.5000 56.0000 204.0000
C2
2395.5 1.0200 2.5000 11.2000 42.0000
C3
2291 0.4150 0.9200 3.3000 10.5000
iC4
604.1 0.2150 0.4400 1.1600 4.1500
nC4
1539.9 0.1680 0.3350 1.0100 2.9800
iC5
790.4 0.0930 0.1560 0.4050 1.1200
nC5
1129.9 0.0820 0.1250 0.3200 0.8800
nC6
1764.7 0.0390 0.0480 0.1050 0.2750
nC7
2606.7 0.0193 0.0180 0.0350 0.0900
nC8
1844.5 0.0104 0.0069 0.0125 0.0285
nC9
1669 0.0059 0.0028 0.0044 0.0095
nC10
831.7 0.0035 0.0012 0.0017 0.0035
nC12 1214.5 0.0001 0.0001 0.0001 0.0001
T [F] 120.0 100 120 96 85
P[Psia] 284.7 817.7 284.7 63.7 27.7



Para el esquema de la figura 4,
aplique el enfoque modular
secuencia considerando como
corrientes de corte y
s
= [S2,S9] y
una tolerancia de 1x10
-6
.
Compare los resultados
obtenidos una la simulacin en
Aspen-plus, justifique las
desviaciones encontradas
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 15/23
Caso 2 Proceso de separacin de monoclorobenceno (MCB)

Desarrolle el esquema de simulacin en Aspen-Plus y responda el cuestionario siguiente


Figura 9. Proceso de separacin de Monoclorobenceno

a. Cules son los valores de los consumos de servicios de calentamiento y enfriamiento?
b. qu temperatura tienen las etapas 7, 9 y 13 del absorbedor y la 2,15 y 25 de la columna de
destilacin?
c. Cmo ser la respuesta de variacin de potencia para la bomba si 0 o 1?

Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 16/23
Caso 3 Proceso de sntesis de cumeno




Figura 10. Proceso de sntesis de cumeno


a. Cules son las temperaturas de operacin del reactor y tanque flash?
b. Cul es la carga trmica del cambiador de calor?



Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 17/23
Caso 4. Problema de Liu

Aplique el enfoque modular secuencia para el esquema mostrado y reporte

a. El conjunto de corrientes de corte
b. La secuencia de calculo
c. El algoritmo de solucin
d. La composicin de todas las corrientes empleando los mtodos de Broyden y Wegstein
e. La grfica de convergencia para el conjunto de corte

Figura 11. Problema de Liu
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 18/23
Especificaciones de los mdulos

1. Divisor de corrientes:
La relacin de divisin es del 25% en la purga


2. Flash:
Los coeficientes de reparto valen K
A
= 5.533, K
B
= 1.57 & K
C
= 0.032915

3. CSTR con la reaccin consecutiva A BC

I II
k
1
[ h
-1
] 0.211 0.440
k
2
[ h
-1
] 0.101 0.219
u [ h]
1.5 2.0

4. Separadores las fracciones de separacin estn referidas a la alimentacin de la unidad
correspondiente

Separador I Separador II
S10 S11 S12 S13 S9
A 0.1 0.9 0.8 0.1 0.1
B 0.5 0.5 0.6 0.4 0
C 0.2 0.8 0.2 0.4 0.4

La corriente de alimentacin (S1) contiene 970 lbmol A/h, 30 lbmol B/h y 0 lbmol C/h

Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 19/23
Resultados obtenidos al aplicar el mtodo de sustitucin sucesiva

Flujos molares para las corrientes del
proceso [lbmol/h]

A B C
S1 970.0 30.0 0.0
S2 1348.9 189.7 12.5
S3 1024.6 411.1 74.8
S4 545.0 540.9 311.8
S5 946.8 869.0 2473.4
S6 505.2 212.9 16.7
S7 378.9 159.7 12.5
S8 441.6 656.0 2456.4
S9 4.4 0.0 196.5
S10 397.4 328.0 1965.1
S11 44.1 328.0 491.3
S12 35.3 196.8 98.3
S13 4.4 131.2 196.5
S14 126.3 53.2 4.2

No_iteraciones = 49






Figura 5. Rapidez de disminucin del error




Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 20/23

6. Cdigos en MATLAB

A. Cdigo Flash ejemplo 1

% inicio del archivo flowsheet.m
% aplicacion del enfoque modular secuencial para el
% problema de Cavett
% martin rivera toledo marzo de 2009
%=======================
function cavett206
%=======================
clc; clear all; format compact;
global K1 K2 K3 K4 s1
% declaracion de los parametros del sistema
%comp = ['N2H2' 'CO2' 'H2S' 'CH4' 'C2H6' 'C3H8' 'iC4H10'
'nC3H10' 'iC5H12' 'nC5H12' 'C6H14' 'C7H16' 'C8H18' 'C9H20'
'C10H22' 'C11H24'];
comp=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16];
% coeficientes de reparto para el tanque flash
K1 = [15 2.27 0.84 3.5 1.02 0.415 0.215 0.168 0.093 0.082 0.039
0.0193 0.0104 0.0059 0.0035 0.0001];
K2 = [35 6.6 2.03 11.5 2.5 0.92 0.44 0.335 0.156 0.125 0.048 0.018
0.0069 0.0028 0.0012 0.0001];
K3 = [180 29.1 8.4 56 11.2 3.3 1.16 1.01 0.405 0.32 0.105 0.035
0.0125 0.0044 0.00172 0.0001];
K4 = [630 89 29.5 204 42 10.5 4.15 2.98 1.12 0.88 0.275 0.09
0.0285 0.0095 0.0035 0.0001];
s1 = [358.2 4965.6 389.4 2995.5 2395.5 2291.0 604.1 1539.9 790.4
1129.9 1764.7 2606.7 1844.5 1669.0 831.7 1214.5];% composicion
de la alimentacion [ lbmol/h ]
s2 = s1;%*1.2; %corriente de corte
s9 = s1;%[s1(1:8)*.2 s1(9:16)*1.2]; %corriente de corte
y0=[s2,s9]; %
delta=1e-6;max1=300;
options=optimset('display','iter');
[y,iter,relerr]=sucesiva(@cavett2,y0,delta,max1)
%[y,iter,error]= sucesiva2(@cavett2,y0,delta,max1)
%[y,fun,flag]=fsolve(@cavett2,y0,options)
%[y,iter,error]=broyden2(@cavett2,y0,delta,max1)
%[y,iter,error] = wegstein(@cavett2,y0,delta,max1)
s2=y(1:length(s1));s9=y(length(s1)+1:end);
%
[s3,s6]=flash2(s2,K2);
[s4,s5]=flash2(s3,K1);
[s10,s11]=flash2(s9,K4);
s7 = mix2(s6,s10); %calculo del mezclador II
[s8,s9]=flash2(s7,K3);
%resultados
ss = [s1', s2', s3', s4', s5', s6', s7', s8', s9', s10', s11'];
save cavett.dat ss -ascii
%No_iteraciones = iter
fprintf('---------------------------------------------------------------------------------
-------------------------------------------\n')
fprintf(' s1 s2 s3 s4 s5 s6 s7
s8 s9 s10 s11 \n')
fprintf('---------------------------------------------------------------------------------
-------------------------------------------\n')
for i=1:length(s1)
fprintf('%3i %10.4f %10.4f %10.4f %10.4f %10.4f %10.4f %10.4f
%10.4f %10.4f %10.4f %10.4f \n',...
comp(i), s1(i), s2(i), s3(i), s4(i), s5(i), s6(i), s7(i), s8(i), s9(i),
s10(i), s11(i))
end
fprintf('---------------------------------------------------------------------------------
-------------------------------------------\n')
fprintf('1:N2H2 2:CO2 3:H2S 4:CH4 5:C2H6 6:C3H8 7:iC4H10
8:nC3H10 9:iC5H12 10:nC5H12 11:C6H14 12:C7H16 13:C8H18
14:C9H20 15:C10H22 16:C11H24\n')
fprintf('---------------------------------------------------------------------------------
-------------------------------------------\n')


% inicio del archivo cavett2.m
%
function y =cavett2(ys)
%
global K1 K2 K3 K4 s1
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 21/23
s2=ys(1:length(s1));s9=ys(length(s1)+1:end);
%
[s3,s6]=flash2(s2,K2);
[s4,s5]=flash2(s3,K1);
[s10,s11]=flash2(s9,K4);
s7 =mix2(s6,s10); %calculo del mezclador II
[s8,s9s]=flash2(s7,K3);
s2s =mix3(s1,s5,s8);
y =[s2s,s9s];
%y =y-ys;
% fin del archivo cavett2.m


% inicio del archivo sucesiva2.m
function [x,k,error]=sucesiva2(G,x0,tol,maxiter)
error =100; k=0;
while(error>=tol && k<maxiter)
x =feval(G,x0);
% error =abs((norm(x)-norm(x0))/norm(x));
error =abs((norm(x - x0))/norm(x));
k=k+1;
x0=x;
fprintf('iter: %3i error: %8.4e \n',k,error)
end

% fin del archivo sucesiva2.m



% Cdigo para calcular la separacin de una mezcla ternaria.

% Para una mezcla ternaria que se alimenta a razn de 500, 600
y 900 lbmol/h para
% los componentes A, B y C, respectivamente, tiene los
coeficientes de reparto para la
% operacin a temperatura y presin constantes:
% K=[ 2.5230 1.57 0.032915]
% Calcule los flujos de producto para las corrientes de vapor y
lquido.

% K=[2.5230 1.57 0.032915];f=[500 600
900];[s1,s2,vf]=flash2(f,K)

%function [vi,li,vfk]=flash2(fi,Ki)
function [vi,li]=flash2(fi,Ki)

tol=1e-6; % tolerancia
tau=200; % Nmero mximo de iteraciones
error=100; % Error inicial (Valor arbitrario)
vfk=0.5;
k=0;

zi=fi./sum(fi); % Fraccin del componente i en la alimentacin

while (error>tol && k<tau)
g=sum(zi.*(1-Ki)./(1+vfk*(Ki-1)));
dg=sum(zi.*(1-Ki).^2./(1+vfk*(Ki-1)).^2);
vfk1=vfk-g/dg;
error=abs((vfk1-vfk)/vfk1);
vfk=vfk1;
k=k+1;
end

v=vfk*sum(fi);
l=sum(fi)-v;
xi=zi./(1+vfk*(Ki-1));
yi=Ki.*xi;
li=l*xi;
vi=v*yi;

%

Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 22/23
%Inicio del archivo mix1.m
%Modulo para el mezclador de dos corrientes
%------------------------------
function[p] =mix2(s1,s2)
%------------------------------
p =s1 +s2;
%Fin del archivo mix1.m

%Inicio del archivo mix1.m
%Modulo para el mezclador de dos corrientes
%---------------------------
function [p] =mix3(s1,s2,s3)
%---------------------------
p =s1+s2+s3;
%Fin del archivo mix1.m


% inicio del archivo broyden2.m
% martin rivera toledo
% Septiembre de 2007
% codigo para obtener las raices de un conjunto de ecuaciones
% algebraicas no lineales a traves del metodo de broyden
% descrito en el libro de Westerberg, Winter, Motard &
Hutchison(1979)
% process flowsheeting, cambridge university press, pp. 64-65
% function [xk,it,error]=broyden2(fun,xk,tol,max1)
% input - fun rutina donde se encuentran declaradas las
variables
% - xk estimado inicial para la raiz
% - tolerancia
% - maximo numero de iteraciones
% output - xk raiz solucion si error <=tol
% - it numero total de iteraciones
% - error relativo para xk & xk1
%----------------------------------------------------
function [xk,it,relerr]=broyden2(fun,xk,tol,max1)
%----------------------------------------------------
n=length(xk); % numero de elementos del vector xk
ek=zeros(n,1); it=0; % inicializacion de vector de funciones e
Hk1=eye(n); % iteraciones y matriz identidad
ek=feval(fun,xk); ek=ek'; xk=xk';
error =norm(ek'*ek);
for i=1:max1
if (error>tol)|(relerr>tol)
dxk1 =-Hk1*ek;
xk1 =xk +dxk1;
ek1 =feval(fun,xk1'); ek1=ek1';
dek1 =ek1 - ek;
vk1 =xk1 - xk;
denH =vk1'*Hk1*dek1;
Hk2 =Hk1 - ( Hk1*dek1-dxk1 )*(vk1'*Hk1)/denH;
error =abs(norm(xk1)-norm(xk));
relerr=abs((norm(xk1)-norm(xk))/norm(xk1));
it =it +1; fprintf('iteracion:%3i error=%10.5e\n',it,relerr)
Hk1 =Hk2;
xk =xk1;
ek =ek1;
else
break
end
end
xk=xk';
% fin del archivo broyden2.m


% start of wegstein.m file
% this function was written by w. fred ramirez
% and it was modified by martin rivera toledo
% universidad iberoamericana ciudad de mexico
% september 2007
%
%
Facultad de Qumica UNAM Diseo de Procesos (Qumicos) Dr. Martn Rivera Toledo 2013-1 23/23
%WEGSTEIN Find a zero of a nonlinear equation of one
variable
% using the wegstein algorithm. Func is the name of an
% M-file that contains a real-valued function of a
% single real variable, and x is the initial guess.
% Note that a bad formulation of the problem may cause
% divergence.
% An optional third argument sets the tolerance for the
% convergence. The presence of an optional fourth
% argument specifies the maximum iteration number.
function [x3,iter,relerr] =wegstein(Func,x,tol,max)
%
% pre-processing, set default tolerance and maximum iteration
% number.
%
if nargin<3, tol=1e-7; max=1000; end
if nargin==3, max=1000; end
t=[1:max+1]';
%
% initialization
%
x1 =x;
x2 =feval(Func,x1);
%
% start wegstein algorithm
%
for i=1:max
g2=feval(Func,x2); g1=feval(Func,x1);
for j=1:length(x)
x3(j) =(x1(j)*g2(j)-x2(j)*g1(j))...
/(x1(j)-x2(j)-g1(j)+g2(j));
end
error =abs(norm(x3)-norm(x2));
relerr=error/(norm(x3)+eps);
if(error<tol)|(relerr<tol)
break;
end
iter =i;
t =[1:iter+1]';
fprintf('iteracion:%3i error=%10.5e\n',iter,relerr)
x1 =x2;
x2 =x3;
end
% end of wegstein.m file

También podría gustarte