Métodos Numericos con App Designer
Aplicación de Newton Raphson en un problema de Química
Newton Raphson
En análisis numérico, el método de Newton es un algoritmo para encontrar aproximaciones de los ceros o raíces de una función real. También puede ser usado para encontrar el máximo o mínimo de una función, encontrando los ceros de su primera derivada.
Descripción del Método
El método de Newton es un método abierto, en el sentido de que no está garantizada su convergencia global. La única manera de alcanzar la convergencia es seleccionar un valor inicial lo suficientemente cercano a la raíz buscada. Aunque no sea siempre el mejor método para un problema dado, su simplicidad formal y su rapidez de convergencia hacen que, con frecuencia, sea el primer algoritmo a considerar para esta tarea.
Para ultilizar el método debemos acondicionar la ecuación a resolver a la forma $f(x)=0$ y aplicaremos la formula:
$$ \tag{1} f(x)=0 $$
$$ \tag{2} f'(x_o)=\frac{f(x_o+h)-f(x_o-h)} {2 \cdot h} $$
$$ \tag{3} x_1=x_o - \frac {f(x_o)} {f'(x_o)} $$
Criterio de paro:
$$ \tag{4} error=|x_1-x_o| $$
$$ \tag{5} x_o=x_1 $$
Aplicación del Método
- Definir: $x_o$ , $error$, $h$ (valor del orden $10^{-5}$ o menor) , $tol$ (valor del orden $10^{-3}$ o menor)
- Definir la ecuación a resolver: $f(x)=0$
- Hallar $f(x_o)$ remplazando $x_o$ en la ecuación (1)
- Hallar $f'(x_o)$ remplazando $h$ y $x_o$ en la ecuación (2)
- Hallar $x_1$ remplazando $x_o$ , $f(x_o)$ , $f'(x_o)$ en la ecuación (3)
- Hallar el $error$, con la ecuación (4)
- Comparar $error$ contra $tol$
- Si $error$>$tol$, entonces aplicar la ecuación (5), y volver al paso (3)
- Si $error$<$tol$, entonces terminan las iteraciones, $x_1$ es solución final.
Estudio de caso
En un proceso de ingeniería química el vapor de agua $(H_{2}O)$ se calienta a temperaturas lo suficientemente altas para que una porción significativa del agua se disocie, o se rompa, para formar oxígeno $(O_2)$ e hidrógeno $(H_2)$:
$$ H_{2}O \leftrightarrow H_2 + \frac 1 2 O_2 $$
Si se asume que ésta es la única reacción que se lleva a cabo, la fracción molar x de $H_{2}O$ que se disocia se representa por:
$$ K=\frac x {1-x} \sqrt{\frac {2\cdot p_t} {2+x}} $$
Donde:
K = la constante de equilibrio de la reacción, K=0.04
$P_t$= la presión total de la mezcla, $P_t$= 3.5 atm
Determine el valor de x que satisfaga la ecuación.
Solución
Comenzaremos por realizar la suiguiente interfaz gráfica para nuesdtra aplicación, se ha cambiado los nombres de los objetos utilizados en el Component Browser y tambien los textos que muestran en en la interfaz mediante el Component Properties.
Figura 1: Diseño de la interfaz gráfica de nuestra Aplicación
Luego debemos programar todo el método de Newton Raphson en el boton CALCULAR:
Figura 2: añadiendo un evento Add ButtonPushedFcn Callback al boton CALCULAR
Una vez dentro de la vista de código, insertar el siguiente código:
1%Obteniendo datos iniciales de los Edit Field
2xo=str2num(app.edt_vinicial.Value)
3tol=str2num(app.edt_tol.Value)
4Pt=str2num(app.edt_Pt.Value)
5K=str2num(app.edt_K.Value)
6
7%Definiendo la función a resolverse
8f=@(x) x/(1-x)*sqrt(2*Pt/(2+x))-K
9
10%Definiendo el valor de h, error
11error=10
12h=0.00005
13i=1
14
15%Programando el método numérico Newton Raphson
16while error>tol
17 fx=f(xo);
18 dfx=(f(xo+h)-f(xo-h))/(2*h);
19 x1=xo-fx/dfx;
20 error=abs(x1-xo);
21 xov(i)=xo;
22 fxv(i)=fx;
23 dfxv(i)=dfx;
24 x1v(i)=x1;
25 errorv(i)=error;
26 xo=x1;
27 i=i+1;
28end
29
30%Guardando los valores de xo, x1, fx, dfx, error en una matriz
31tabla=[xov' fxv' dfxv' x1v' errorv']
32
33%Imprimiendo la matriz en la UITable
34app.UITable.ColumnName={'xo','f(xo)','df(xo)','x1','error'}
35app.UITable.Data=tabla
36
37%Imprimiendo el valor de x1 encontrado en una Edit Field
38app.edt_valX.Value=num2str(x1)
El resultado obtenido es el siguiente:
Figura 3: Resultados obtenido del valor de x por el método de Newton Raphson
Referencia
- Nieves & Dominguez (2014). Metodos Numéricos Aplicados a la Ingeniería (4ta Edición). Grupo Editorial Patria. ISBN 978-607-438-926-5.