anderson alarcon - practica 6 matlab
DESCRIPTION
AKSDJV KSDNASD ASDA MATLAB DE 5 DMECANICA ASKDVLD ÑSDSTRANSCRIPT
UNIVERSIDAD CATOLICA DE SANTA MARIAFACULTAD DE CIENCIAS E INGENIERÍAS FISICAS Y FORMALES
PROGRAMA PROFESIONALINGENIERIA MECÁNICA, MECÁNICA-ELECTRÍCA Y MECATRÓNICA
Página:1/10
Jefes de Prácticas:Ing. Juan Carlos CuadrosIng. Henry Zegarra Gago
Ing. Sergio Mestas RamosLaboratorio de Mecánica Computacional II
Tema: Métodos Numéricos – Método de la BisecciónCódigo: 4E04022Semestre: IVGrupo: FECHA:
Apellidos y Nombres (1):_____________________________________________Apellidos y Nombres (2):_____________________________________________
Lab. Nº: 06
I. OBJETIVOS Aplicar los métodos iterativos de intervalo, específicamente el método de la bisección en la solución de ecuaciones no
lineales algebraicas y trascendentes. Implementar programas en MATLAB que solucionen las raíces de ecuaciones algebraicas y trascendentes por medio del
método de la bisección.
II. MARCO TEORICO2.1 Introducción
En estapráctica, estudiaremos uno de los métodos para la solución numérica de ecuaciones algébricas y trascendentes no lineales, esto es, ecuaciones que se puedan escribir en la forma f(x) = 0, donde f es una función real de variable real.Todos los valores s que anulan f, esto es, tales que f(s) = 0, se llaman ceros o raíces de la función f o solución de la ecuación f(x)=0.
Figura 1 Ceros de una función- Diferentes casos
Para una ecuación del tipo f(x) = 0, antes de intentar aplicar cualquier método de resolución, es importante garantizar que la ecuación tenga solución, o sea, que existe un real; s tal que f(s)=0. Muchas veces importa también determinar si la solución es única, o si existen diferentes soluciones y, en este caso, saber cual o cuales importan determinar.
2.2 Teorema de BolzanoDado un intervalo cerrado [a,b] y una función continua f(x), existe al menos una solución a la ecuación algebraica no
lineal o trascendente f(x)=0 si f(a)*f(b)¿ 0
Figura 2Aplicación del Teorema de Bolzano
Laboratorio de Mecánica Computacional II Página: 2/10
Tema: Métodos Numéricos – Método de la Bisección LAB N° 6 JCC- HZG - SMR
El teorema de Bolzano garantiza la existencia de una raíz si existe un cambio de signo en el intervalo [a,b], pero la antítesis es falsa, sino existe un cambio de signo, también puede existir una raíz en [a,b].Los métodos numéricos que están basados en el teorema de Bolzano se denominan “métodos cerrados”, ya que exigen como argumento un intervalo cerrado donde la función experimente un cambio de signo.
2.3. Método de las Bisecciones Sucesivas
En la resolución de ecuaciones no lineales se utilizan, salvo soluciones analíticas simples, métodos iterativos que generan una sucesión de valores que tienden al valor de la raíz. Este método presenta la ventaja de acotar no sólo el valor de la función, sino también el intervalo al que pertenece la raíz. Para su aplicación es necesario que verifique las condiciones del Teorema de Bolzano, esto es, la función debe ser continua y cambiar de signo en sus extremos.Por ejemplo:Resolver en los números reales las ecuaciones:
x3−1=0 , sen ( x )−x=0 ó tan (x )−x=0 (*)
Las gráficas siguientes ilustran mejor la situación. Indican que un problema con enunciado tan simple puede ser difícil de resolver:
Figura 3 Gráficas de las ecuaciones (*)
La primera gráfica sugiere que hay un único cero, precisamente donde ese cero está y las otras dos indican que hay alguno en cada caso, pero nada más. En realidad, sen(x) y x se encuentran en un único punto, x = 0; pero en cambio tan(x) y x se encuentran en un número infinito de puntos. Ciertamente se requiere disponer de herramientas teóricas (teoremas) y prácticas (algoritmos) para resolver problemas de esta clase.
El método de las bisecciones sucesivas parte del intervalo inicial [a, b] que se sabe contiene un cero de f, supuestamente único. En cada iteración se produce la reducción del intervalo a la mitad del intervalo actual. Para lo cual, se divide el intervalo actual escogiéndose el intervalo izquierdo o derecho de forma que la función tenga signo diferente en los extremos del sub-intervalo escogido. O sea,
siendo [an, bn] el intervalo de la iteración n, se calculaxn+1=12(an+bn). El valor
xn+1 sustituye a an o bn de acuerdo si se cumple que f ¿ o f ¿. De esta forma, se asegura que s [an,bn] en cualquier iteración.
2.5. Algoritmo de Bisección Figura 4 Bisecciones Sucesivas
Laboratorio de Mecánica Computacional II Página: 3/10
Tema: Métodos Numéricos – Método de la Bisección LAB N° 6 JCC- HZG - SMR
Método de las bisecciones sucesivasInicialización [a0 , b0 ]=[a ,b ]Repetir
1. xn+1=
an+bn2
2. Si f ( xn+1 ) f (an)<0
Entonces an+1=an ; bn+1=xn+1 ;
Sino an+1=xn+1 ; bn+1=bn ;Hasta que Verificar criterio de parada
2.5. Error del Algoritmo de Bisección
Figura 5 Error del Método de la Bisección
Teorema 1: Sea f una función continua en el intervalo [a,b]tal quef (a ) f (b )<0. El método de la bisección genera una sucesión {pn}que converge a p con la propiedad:
|p−pn|≤b−a2n
n≥1
Demostración: Para cada n≥1, tenemos:
bn−an=12n−1
(b−a) y p∈(an , bn)
Puesto que pn=(an+bn)/2, para cada n≥1, se tiene:
|p−pn|≤12 (bn−an )=b−a
2n
y esta desigualdad implica que limn→∞
pn=p
Si llamamos δ al valor absoluto del error, donde δ=|p−pn|, se puede entonces afirmar que el error absoluto del
estimado pn está acotado por:
Laboratorio de Mecánica Computacional II Página: 4/10
Tema: Métodos Numéricos – Método de la Bisección LAB N° 6 JCC- HZG - SMR
b−a2n
El número de iteraciones suficientes para garantizar un error absoluto no superior a se puede calcular haciendo b−a2n
≤δ obteniéndose el valor: n≥ log2( b−aδ )Otra sugerencia sería finalizar el cálculo cuando el error verdadero se encuentra por debajo de algún nivel prefijado.
Por lo tanto se requiere estimar el error de forma tal que no se necesite el conocimiento previo de la raíz de la ecuación. Se puede calcular el error relativo porcentual ε ade la siguiente manera:
ε a=|xrnuevo−xranteriorxrnuevo |100%
donde xrnuevo es la raíz en la iteración actual y xr
anteriores el valor de la raíz en la iteración anterior. Se utiliza el valor
absoluto, ya que solo importa la magnitud del error. Cuando ε a es menor que un valor previamente fijado ε s, termina el cálculo.
El siguiente ejemplo ilustra la aplicación de este método.
Ejemplo 1:
Determinar una aproximación con un error absoluto inferior a 7x10-2 de la (única) solución de la ecuación 1+x+ex=0 que se sabe esta en el intervalo [-2, -1].
Solución
Paso 1: Verificación de las condiciones de convergenciaLa función f(x)=1+x+ex es monótona, f(-2)=-1+e-2<0, y f(-1)= e-1>0.
Paso 2: Determinación del número de iteracionesComo se desea alcanzar una precisión de 7x10-2se debe escoger n tal que:
n≥log2−1−(−2 )7 x10−2 ⇒n>3.8365
Efectuando 4 iteraciones a partir de [-2, -1] se tiene un error máximo absoluto de:124
≈6 x10−2
Iteraciones:
n an f(an) bn f(bn) xn+1 f(xn+1)1
2
3
-2.000 -0.865 -1.000 0.3679 -1.500 -0.2769
Laboratorio de Mecánica Computacional II Página: 5/10
Tema: Métodos Numéricos – Método de la Bisección LAB N° 6 JCC- HZG - SMR
4
Podemos realizar una comprobación gráfica de la solución del problema, entonces, graficamos la función 1+x+ex=0 y vemos donde tiene un cruce por el eje x.
Figura 6Grafico de la Ec: f(x)=1+x+ex
La solución de la ecuación será x = , o sea, x [,]
III. MATERIAL Y EQUIPO Una PC con Sistema Operativo (S.O.) Windows XP. MATLAB 7.0 o superior
IV. PROCEDIMIENTO1. Localice gráficamente las raíces de f(x) = 0 , siendo f(x) = |x| - e x . clear all; clc; disp('METODO DE LA BISECCION'); fprintf( '\n'); f=input('Ingrese la funcion; ','s'); f=inline(f); ezplot(f) a=input('Limite inferior a= '); b=input('Limite Superior b= '); e=input('Error absoluto e= '); fprintf('\n'); fprintf('%.8s %.8s %.8s %.8s %.8s %.8s %.8s \n','A','F(a)','B','F(b)','Xn','F(xn)');y=f(a)*f(b); %Teorema de Bolszanoif y<0 n=log2( (b-a)/e); n=ceil(n); for i=1:n xn=(a+b)/2; z=f(a)*f(xn); fprintf('\n %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f \n',a,f(a),b,f(b),xn,f(xn)); if z<0 b=xn; else a=xn; end end fprintf('\n');
Laboratorio de Mecánica Computacional II Página: 6/10
Tema: Métodos Numéricos – Método de la Bisección LAB N° 6 JCC- HZG - SMR
fprintf('\n'); fprintf('La solucion es x=%.4f,F(x)=%.4f \n',xn,f(xn));else disp('La funcion no tiene solucion en ese intervalo'); fprintf('\n');end
2. Usando el método de la bisección sucesivas, determine un valor aproximado para los ceros de f(x) = |x| - e x con un error que no exceda a 0.15.
Laboratorio de Mecánica Computacional II Página: 7/10
Tema: Métodos Numéricos – Método de la Bisección LAB N° 6 JCC- HZG - SMR
3. Confeccionar en MATLAB un programa que: 3.1. Calcule la raíz de una ecuación algebraica no lineal o ecuación trascendente. 3.2. Adjunte su algoritmo y diagrama de flujo
Ingresamos la funciónCalculamos la funciónIngresamos “ezplot f” para graficar la funciónAhora establecemos los limites
Determinamos la raíz, por medio del grafico ya halladoY por último mostramos los valores deseados
clear all;clc;disp('METODO DE LA BISECCION');fprintf( '\n');f=input('Ingrese la funcion; ','s');f=inline(f);ezplot(f)a=input('Limite inferior a= ');b=input('Limite Superior b= ');e=input('Error absoluto e= ');fprintf('\n');
fprintf('%.8s %.8s %.8s %.8s %.8s %.8s %.8s \n','A','F(a)','B','F(b)','Xn','F(xn)');y=f(a)*f(b); %Teorema de Bolszanoif y<0 n=log2( (b-a)/e); n=ceil(n); for i=1:n xn=(a+b)/2; z=f(a)*f(xn); fprintf('\n %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f \n',a,f(a),b,f(b),xn,f(xn));
if z<0 b=xn; else a=xn; end end fprintf('\n'); fprintf('\n'); fprintf('La solucion es x=%.4f,F(x)=%.4f \n',xn,f(xn));else disp('La funcion no tiene solucion en ese intervalo'); fprintf('\n');end
Laboratorio de Mecánica Computacional II Página: 8/10
Tema: Métodos Numéricos – Método de la Bisección LAB N° 6 JCC- HZG - SMR
V. CUESTIONARIO FINAL
1. Use cuatro iteraciones del método del la Bisección para determinar las raíces de e2 x−6 x=0
en el intervalo [0, 0.5]. ¿Cuántas iteraciones son necesarias para obtener la aproximación a la raiz redondeada a 5 cifras decimales?
CODIGO MATLABclear all;clc;disp('METODO DE LA BISECCION');fprintf( '\n');
f=input('Ingrese la funcion; ','s');f=inline(f);ezplot(f)a=input('Limite inferior a= ');b=input('Limite Superior b= ');fprintf('\n');
fprintf('%.8s %.8s %.8s %.8s %.8s %.8s %.8s \n','A','F(a)','B','F(b)','Xn','F(xn)');y=f(a)*f(b); %Teorema de Bolszanoif y<0 n=4; for i=1:n xn=(a+b)/2; z=f(a)*f(xn); fprintf('\n %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f \n',a,f(a),b,f(b),xn,f(xn));
if z<0 b=xn; else a=xn; end end fprintf('\n'); fprintf('\n'); fprintf('La solucion es x=%.4f,F(x)=%.4f \n',xn,f(xn));else disp('La funcion no tiene solucion en ese intervalo'); fprintf('\n');
Laboratorio de Mecánica Computacional II Página: 9/10
Tema: Métodos Numéricos – Método de la Bisección LAB N° 6 JCC- HZG - SMR
end
2. Hacer una prueba de datos del programa realizado en el procedimiento con los datos de la pregunta anterior.
¿Cuántas iteraciones son necesarias para obtener la aproximación a la raiz redondeada a 5 cifras decimales?
Laboratorio de Mecánica Computacional II Página: 10/10
Tema: Métodos Numéricos – Método de la Bisección LAB N° 6 JCC- HZG - SMR
VI. OBSERVACIONES Y CONCLUSIONES
Haga sus observaciones y emita al menos cinco conclusiones en torno al trabajo realizado
Aplicamos uno de los métodos más sencillos y de fácil intuición para resolver ecuaciones en una
variable o de más.
El método de bisección basa en el teorema del valor intermedio.
El método de bisección es menos eficiente que el método de Newton, pero es mucho más seguro para
garantizar la convergencia.