- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
PROBLEMA: Use el Método de Bisección para calcular el área
de la región sombreada que muestra la Grafica
1.
Gráfica 1
SOLUCIÓN
Análisis de la situación
Al ver la Gráfica 1, se puede apreciar, que el
área está limitada por dos funciones, una mayor $$y=x\sqrt { sen(x) }$$ y otra menor $$y=ln\left(
{ x }^{ \frac { 2 }{ 3 } } \right)$$.
Si nos apoyamos en el Cálculo Integral, vemos
que una forma de calcular el área entre dos curvas o funciones es $$ A=\int _{
a }^{ b }{ \left[ g(x)-f(x) \right] dx } $$, donde $$f(x)$$ es la
función menor y $$g(x)$$ es la función mayor, definidas en el intervalo $$[a,b].$$
Ahora, para poder
calcular el valor de nuestra región sombreada, en primer lugar, es necesario que conozcamos
los puntos de corte entre las funciones $$y=ln\left( { x }^{ \frac { 2 }{ 3
} } \right)$$ y $$y=x\sqrt { sen(x) },$$ luego de estos puntos
de corte, obtendremos el valor inicial (a) y el valor final (b), con los cuales podremos plantear y resolver la
integral de modo que obtengamos el área de la región.
Pasos para determinar los puntos de corte
1. Igualamos las
funciones $$y=ln\left( { x }^{ \frac { 2 }{ 3 }
} \right)$$ y $$y=x\sqrt { sen(x) }$$ del
siguiente modo: $$ln\left( { x }^{ \frac
{ 2 }{ 3 } } \right)= x\sqrt { sen(x) }.$$
2. Creamos una nueva
función a partir de esta, es decir, $$f(x)=ln\left( { x }^{ \frac { 2 }{ 3
} } \right)-x\sqrt { sen(x) }.$$
3. Graficamos la función
f(x) para ver los interceptos con el eje x, de estos saldrán los valores de a y
b. Evidentemente, como muestra la Gráfica
1, los valores de los interceptos deben estar entre 5 y 10.
Gráfica de f(x):
Gráfica 2
Al ver la gráfica, es
claro que los valores que los interceptos que nos interesan son los que se
encuentran en los intervalos [6,7] y [9,10].
4. Usar el método de
bisección para determinar los interceptos, estos serán el valor inicial (a) y
el valor final (b). Sabemos que el método de bisección requiere de un intervalo
cerrado en donde la función sea continua y además, que éste contenga la raíz de
la función (esto es, el intercepto con el eje x). Como mencionamos en el ítem 3,
los intervalos que nos interesan son [6,7] y [9,10].
Para determinar estos
interceptos, usaremos el siguiente código, creado para Matlab, al que llame bisección.m:
f=inline(input('Ingrese funcion: ','s'));
a=input('Ingrese extremo inferior del intervalo cerrado: ');
b=input('Ingrese extremo superior del intervalo cerrado: ');
E=input('Ingrese porcentaje de error: ');
if f(a)*f(b)<0
Pm=(a+b)/2;
Ea=abs((Pm-a)/Pm)*100;
while E<Ea
if f(a)*f(Pm)<0
b=Pm;
elseif f(Pm)*f(b)<0
a=Pm;
else
Ea=0;
end
if Ea~=0
Pm=(a+b)/2;
Ea=abs((Pm-a)/Pm)*100;
end
end
Raiz_Aprox=Pm;
fprintf('La raiz aproximada es: %12.10f \n',Raiz_Aprox);
else
disp('No Hay Raiz en el Intervalo.');
end
a=input('Ingrese extremo inferior del intervalo cerrado: ');
b=input('Ingrese extremo superior del intervalo cerrado: ');
E=input('Ingrese porcentaje de error: ');
if f(a)*f(b)<0
Pm=(a+b)/2;
Ea=abs((Pm-a)/Pm)*100;
while E<Ea
if f(a)*f(Pm)<0
b=Pm;
elseif f(Pm)*f(b)<0
a=Pm;
else
Ea=0;
end
if Ea~=0
Pm=(a+b)/2;
Ea=abs((Pm-a)/Pm)*100;
end
end
Raiz_Aprox=Pm;
fprintf('La raiz aproximada es: %12.10f \n',Raiz_Aprox);
else
disp('No Hay Raiz en el Intervalo.');
end
Al ejecutarlo en la
línea de comandos de Matlab e ingresando la información correspondiente al
intervalo [6,7] obtenemos:
>> biseccion
Ingrese funcion:
log(x^(2/3))-x*sqrt(sin(x))
Ingrese extremo inferior
del intervalo cerrado: 6
Ingrese extremo superior
del intervalo cerrado: 7
Ingrese porcentaje de
error: 10^(-10)
La raiz aproximada es:
6.0000000000
Observamos que la raíz
aproximada (o intercepto) no es la que esperábamos, puesto que, según la Gráfica 2, ésta debe estar entre 6 y
6.5. Entonces, ¿qué pasó?, ¿No funciona el método? Veamos más de cerca el
asunto, si nos fijamos hay una raíz cuadrada en f(x), es la que tiene la
función sen(x). Sabemos que si sen(x) genera cantidades negativas entonces la
raíz cuadrada de estos valores generará números complejos y como consecuencia
el método de bisección fallará.
Observemos la gráfica de
sen(x) en el intervalo de [6,7]:
Gráfica 3
La Gráfica 3 muestra que en el intervalo [6,6.3] la función sen(x)
genera valores negativos, es decir, estos valores hacen que el método de
bisección no funcione correctamente, por lo tanto, debemos tomar un intervalo
en donde estemos seguros que la función seno siempre genere valores positivos.
Probemos el método de bisección nuevamente con el intervalo [6.3,7] y veamos que
tal nos va:
>> biseccion
Ingrese funcion:
log(x^(2/3))-x*sqrt(sin(x))
Ingrese extremo inferior
del intervalo cerrado: 6.3
Ingrese extremo superior
del intervalo cerrado: 7
Ingrese porcentaje de
error: 10^(-10)
La raiz aproximada es:
6.3210132516
Perfecto, ahora si
tenemos una raíz aproximada razonable, la cual concuerda con el intercepto de
la Gráfica 2.
De igual modo
calcularemos la raíz de f(x) en el intervalo [9,10] teniendo en cuenta el detalle
de la raíz cuadrada.
Observemos cómo se
comporta la función seno en el intervalo:
Gráfica 4
Es claro, según la Gráfica 4, que debemos tomar un
intervalo en donde los valores de la función seno sean positivos, por ejemplo el
intervalo [9,9.4]. Apliquemos el método de bisección sobre este intervalo:
>> biseccion
Ingrese funcion:
log(x^(2/3))-x*sqrt(sin(x))
Ingrese extremo inferior
del intervalo cerrado: 9
Ingrese extremo superior
del intervalo cerrado: 9.4
Ingrese porcentaje de
error: 10^(-10)
La raiz aproximada es:
9.3995196842
Listo, ahora sí, ya
tenemos el valor inicial (a) y valor final (b) para nuestra integral, estos
son, 6.3210132516 y 9.3995196842, respectivamente.
Calculo del área
Procedamos a calcular el
área de la región sombreada usando el comando quad de Matlab. Recordemos que la función mayor es $$y=x\sqrt { sen(x) }$$ y la función menor es $$y=ln\left(
{ x }^{ \frac { 2 }{ 3 } } \right).$$ Ejecutemos
>>
quad('x.*sqrt(sin(x))-log(x.^(2/3))',6.3210132516,9.3995196842)
ans =
14.545952137319851
Por lo tanto, el área de
la región sombreada es de 14.545952137319851 unidades cuadradas.
Sobre el comando quad en
Matlab
>> help quad
quad Numerically evaluate
integral, adaptive Simpson quadrature. Q = quad(FUN,A,B) tries to approximate
the integral of scalar-valued function FUN from A to B to within an error of
1.e-6 using recursive adaptive Simpson quadrature. FUN is a function handle.
The function Y=FUN(X) should accept a vector argument X and return a vector
result Y, the integrand evaluated at
each element of X.
Listo, hemos llegado al
final de esta entrada.
Para aquellos que les
interese el método de bisección en Python, les dejo a continuación el código:
from sympy import *
funTexto=input('Ingrese
funcion: ')
a=float(input('Ingrese
limite inferior del intervalo: '))
b=float(input('Ingrese
limite superior del intervalo: '))
E=float(input('Ingrese
porcentaje de error: '))
f=sympify(funTexto)
e=abs((b-a)/b)*100
while E<e:
r1=(a+b)/2
if(f.subs('x',r1)==0):
e=0
else:
if(f.subs('x',a)*f.subs('x',r1)<0):
b=r1
else:
a=r1
e=abs((b-a)/b)*100
print('La raiz
aproximada es: ',r1)
Espero esta entrada le
sirva de ayuda a todos aquellos que estén interesados en la aplicación del
método de bisección.
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones




Comentarios
Publicar un comentario