- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
PROBLEMA: Para determinar la constante de
nacimientos de una población se necesita calcular l en la siguiente
ecuación:
$$1.546\times {
10 }^{ 6 }={ 10 }^{ 6 }{ e }^{ \lambda
}+\frac { 0.435\times { 10 }^{ 6 } }{ \lambda } \left( { e }^{ \lambda }-1 \right)$$
Use el método de
Newton-Raphson para determinar l con una aproximación de
10-8.
(Ejercicio 2.50, tomado del
libro Métodos Numéricos Aplicados a la Ingeniería. 2ed. De Antonio Nieves y
Federico C. Domínguez. Editorial CECSA. México 2006. Página 127.)
SOLUCIÓN
Análisis de la situación
En
primer lugar, por comodidad cambiare a l por x.
Podemos
notar que en la ecuación dada cada termino posee un factor de 106, esto nos permite poderla
dividir en 106 a ambos lados de la igualdad, con lo cual se obtiene
una ecuación equivalente, es decir
$$1.546={ e }^{ x }+\frac { 0.435 }{ x }
\left( { e }^{ x }-1 \right)$$
Para
determinar la constante de natalidad usando el método de Newton-Raphson
necesitamos tener una función de una variable, esto indica que necesitamos
crear una función a partir de nuestra ecuación equivalente, una forma de
hacerlo sería pasar la información del lado derecho de la ecuación al lado
izquierdo así
$$1.546-{ e }^{ x }-\frac { 0.435 }{ x }
\left( { e }^{ x }-1 \right)=0$$
De donde f(x) sería
$$f(x)=1.546-{ e }^{ x }-\frac { 0.435 }{
x } \left( { e }^{ x }-1 \right)$$
Listo ya
tenemos la función.
Hablemos ahora
un poco de la constante que queremos determinar.
Esta constante
debe satisfacer nuestra ecuación equivalente, es decir, se debe cumplir la
igualdad
$$1.546={ e }^{ x }+\frac { 0.435 }{ x }
\left( { e }^{ x }-1 \right)$$
Dicho de otro
modo, si la evaluamos en f(x)
debería resultar cero. Por lo tanto, si graficáramos a f(x), los valores para
la constate de nacimientos serian todos aquellos que sean interpectos con el
eje horizontal.
Ahora sí, ya tenemos la
función que usaremos en la aplicación del método de Newton-Raphson.
Aplicación del Método de Newton-Raphson
Para
aplicar el método de Newton-Raphson es necesario que tengamos a la mano la
función y un valor inicial. La función la tenemos y ¿el valor inicial?
Una
forma de obtener el valor inicial seria apoyándonos en la gráfica de f(x).
Veamos la gráfica de f(x):
Gráfica 1
Al observar la Grafica1 vemos que hay un intercepto
con el eje horizontal en el intervalo de [0,0.5]. Por lo tanto, un valor
inicial podría ser 0.1.
El código en
Matlab que usaremos para determinar la constante de nacimientos será:
fun=input('Ingrese
funcion: ','s');
syms x;
f=inline(fun);
df=inline(diff(sym(fun)));
xi=input('Ingrese
valor inicial: ');
e=input('Ingrese
porcentaje de error: ');
xa=xi-(f(xi)/df(xi));
ea=abs((xa-xi)/xa)*100;
while(ea>e)
xi=xa;
xa=xi-(f(xi)/df(xi));
ea=abs((xa-xi)/xa)*100;
end
fprintf('La
raiz aproximada es: %12.10f\n',xa);
El cual he
llamado NewtonRaphson.m.
Bueno, ya
tenemos todo lo que necesitamos para determinar la constante de nacimientos.
Ejecutemos el
código e ingresemos la información pedida:
>>
NewtonRaphson
Ingrese
funcion: 1.546-exp(x)-(0.435/x)*(exp(x)-1)
Ingrese valor
inicial: 0.1
Ingrese
porcentaje de error: 10^(-8)
La raiz
aproximada es: 0.0874690247
Por lo tanto,
la constante de nacimientos es 0.0874690247.
Para todos los
amantes de Python, dejare a continuación el código del Método de Newton-Raphson
escrito en este lenguaje:
from sympy
import *
fun =
input('Ingrese la funcion f(x): ')
x0 =
float(input('Ingrese el valor inicial: '))
tol =
float(input('Ingrese la tolerancia: '))
x=Symbol('x')
fx =
sympify(fun)
df = diff(fx,x)
newRoot =
lambda x:x-fx.subs('x',x)/df.subs('x',x)
f = lambda
x:fx.subs('x',x)
x1 =
newRoot(x0)
e =
abs((x1-x0)/x1)*100
while tol<e:
if(f(x1)==0):
e = 0
else:
x0 = x1
x1 = newRoot(x0)
e = abs((x1-x0)/x1)*100
print('La raiz
aproximada es: ',x1)
Bien, hemos
llegado al final de esta entrada, espero les sirva de ayuda a todos los
interesados en el Método de Newton-Raphson.
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Comentarios

disculpa, como se logra graficar la ecuación, es decir, como despejas la original para hacerla función?
ResponderEliminar