biseccion en matlab PDF

Title biseccion en matlab
Author Gerardo Misael Tito Massi
Course cálculo numérico
Institution Anhanguera Educational
Pages 12
File Size 683.2 KB
File Type PDF
Total Downloads 9
Total Views 146

Summary

biseccion en matlab...


Description

UNIVERSIDAD PRIVADA FRANZ TAMAYO

APLICACIÓN DE ALGORITMOS EN BASE A MATLAB

ESTUDIANTE: GERARDO MISAEL TITO MASSI DOCENTE: Ing. JAIME MIGUEL FLORES MUJICA ASIGNATURA: ALGEBRA II

EL ALTO – LA PAZ BOLIVIA

1. PLANTEAMIENTO DEL PROBLEMA (Análisis del problema) El ejercicio con el que trabajaremos es el siguiente: 𝑓( 𝑥 ) = 𝑠𝑒𝑛 (3 𝑥 ) + cos ( 𝑥 ) Tal ejercicio lo resolveremos mediante 2 métodos los cuales son: -

Método de Bisección. Método de Newton Raphson.

METODO DE BISECCION El método de bisección es un método que necesita dos valores iniciales de la raíz, para reducir sistemáticamente el tamaño del intervalo y así converger a la respuesta correcta. Mediante la gráfica de la función podemos analizar los 3 aspectos necesarios para utilizar el método de bisección, esos 3 aspectos son: a, b y la raíz en donde: -

a es el límite inferior del intervalo. b es el límite superior del intervalo. raíz es la intersección en el eje x dentro del intervalo a, b.

ALGORITMO DEL METODO DE BISECCION El algoritmo consiste en los siguientes pasos. a) Escoger valores iniciales en a y b de tal manera que la función cambie de signo sobre el intervalo. b) Se halla el valor real (al trabajar con errores de tolerancia). c) La primera aproximación se determina con la fórmula: 𝑥0 =

𝑎+𝑏 2

d) Se evalúa la función en (a), es decir f(a) y luego en (b) es decir f(b). Luego se evalúa el producto de f(a)*f(b). Si

𝑓(𝑎) ∗ 𝑓(𝑏) < 0 → la raíz esta en el intervalo → 𝑥𝑟 = 𝑥0

Si

𝑓(𝑎) ∗ 𝑓(𝑏) > 0 → la raíz no esta en el intervalo.

Como se puede ver el tramo inicial se dividió en dos tramos que son:

Luego evaluamos la función en el valor encontrado de la bisección, esto es: 𝑓(𝑥0 ) = 0 Si da cero , significa que es la raíz de la ecuación dada, pero si no da 0 debeos realizar una nueva iteración.

Entonces para la nueva iteración, debemos averiguar en cuál de los dos tramos se encuentra la raíz. Para esto realizamos

𝑓(𝑎) ,

𝑓(𝑥0 ) .

𝑓(𝑏)

Luego realizamos: 𝑓(𝑎). 𝑓(𝑥0 ) < 0 , entonces la rais esta en ese tramo. Si 𝑓(𝑎). 𝑓(𝑏) > 0 , la rais no se encuentra en el tramo. Entonces debemos, evaluar el otro tramo, es decir: Si 𝑓(𝑥0 ). 𝑓(𝑏) < 0 , la rais esta en este tramo. Suponiendo que se encuentre en el tramo [a, 𝑥0 ] Entonces volvemos a realizar la bisección, es decir: 𝑥1 =

𝑎 + 𝑥0 2

Luego evaluamos la función en 𝑥1 , entonces si 𝑓(𝑥1 ) = 0 , habríamos encontrado la rais de la función. Y la iteración termina. Pero en caso de que no ocurra esta situación, volvemos a realizar una iteración, replicando lo explicado anteriormente. METODO DE BISECCION EN MATLAB PARA LA GRAFICA: Para poder graficar una función en MATLAB trabajaremos con el siguiente código: 1) Crearemos un nuevo script en donde meteremos el siguiente código.

clear clc syms x f=input('introdusca la funcion:'); ezplot(f) grid on 2) Guardamos el script con cualquier nombre (ej. graficador) 3) En el Command Window llamamos al script que creamos (ej >> graficador). 4) Luego nos pedirá meter la función a graficar, la introducimos le damos enter y graficara automáticamente. PARA SACAR LA RAIZ DE UNA FUNCION EN MATLAB(solo mostrar la raiz). 1) Creamos un nuevo script en Matlab, donde introduciremos el siguiente código.

function raiz=biseccion(fun,a,b,tol) f=inline(fun); if f(a)*f(b)tol x=(a+b)/2; if f(a)*f(x)> biseccion('fun',a,b,tol) En donde: fun= la función que deseamos saber la raíz. a= limite inferior del intervalo. b= límite superior del intervalo. tol= margen de error (tolerancia). 4) Después de introducir todo eso, le damos enter y nos imprimirá la raíz de la función directamente.

PARA SACAR LA RAIZ DE UNA FUNCION EN MATLAB(A detalle mas la gráfica al mismo tiempo). 1) Creamos un nuevo script en donde copearemos el siguiente código:

clc; Fx=input('Ingrese la funcion: ','s'); a=input('Ingrese a : '); c=input('Ingrese b : '); e=input('Tolerancia : '); x=a; Fa=eval(Fx); x=c; Fc=eval(Fx); fprintf('\n %6s %7s %8s %10s %8s %8s %8s \n ','A','B','C','F(a)','F(b)','F(c)','|c-a|'); while abs(c-a)>e b=(a+c)/2; x=b; Fb=eval(Fx);

fprintf('\n %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f \n',a,b,c,Fa,Fb,Fc,abs(c-a)); if Fa*Fberr xi=pi-(f(pi)/d(pi)); ea=abs(((xi-pi)/xi)*100); pi=xi; j=j+1; end fprintf('\n Raiz=%8.3f en %d Iteraciones',pi,j)

2) Guardamos el script y lo llamamos desde el command window. 3) Al llamarlo al script nos pedirá primero ingresar la función, después nos pedirá ingresar Xi el cual es el intermedio del limite inferior y el limite superior del intervalo donde queremos hallar la raíz, luego metemos la tolerancia, le damos enter y nos graficara la función y nos imprimirá la raíz y la cantidad de iteraciones que se realizó.

2. GRAFICACION DEL PROBLEMA Para poder graficar la función creamos un nuevo script donde introducimos el siguiente código

clear clc syms x f=input('introdusca la funcion:'); ezplot(f) grid on

Lo guardamos el script y lo llamamos desde el command Windows Depues metemos la función y mostrara lo siguiente: Es el script donde ponemos el código

Debemos seleccionar la carpeta donde guardamos los script q vayamos creando

Es el command window donde llamamos al script y metemos las funciones. La función con la q trabajaremos anteriormente dicho es: 𝑓( 𝑥 ) = 𝑠𝑒𝑛 (3 𝑥 ) + cos ( 𝑥 ) Metiendo la función sale lo siguiente: Como vemos al momento de graficar se muestra la función ingresada

3. APLICACIÓN DEL AL ALGO GO GORITMO RITMO Para poder encontrar solución al problema en Matlab haremos el uso de un script -

Para método de bisección con script.

Primero antes nos damos valores para el intervalo de la función, trabajaremos con los intervalos. Para poder entender mejor, lo haremos con geogebra la gráfica, el cual es el siguiente:

usaremos los intervalos 0 y 2 señalados para poder encontrar la intersección en el eje x q seria la raíz dentro del intervalo 0,2

a

raíz

b

Ya explicado los intervalos con los q trabajaremos sabremos mas o menos la raíz que nos debe salir. Siguiendo con el script q iniciamos anteriormente, lo guardamos y lo llamamos desde el command window, seguido de eso le metemos la función y da lo siguiente:

Como vemos la raíz nos salió 1.178222656250000 y viendo en la grafica detalladamente nos damos cuenta q se intersecta en ese punto. Eje x

Intersección en el eje x

Punto 1.178….

Como nos damos cuenta intersecta en el punto hallado en Matlab

Función ingresada

La otra forma de hacerlo, que te muestra a detalle la solución del problema es de la siguiente manera. Con los pasos que ya sabemos iremos directo a ejecutarlos.

Como vemos nos muestra a detalle todas las iteraciones como los valores que van tomando a, b las funciones de a y b de cada iteración, y que también muestra la raíz dentro del intervalo, a parte de hacer la gráfica al mismo tiempo. Con esto acabamos el método bisección mediante Matlab.

- Para método de Newton Raphson con script. Aplicando los pasos ya explicados en planteamiento del problema (método Newton Raphson) obtenemos lo siguiente.

Como vemos sale el mismo resultado encontrado por el método de bisección, lo cual indica que ambos funcionan correctamente. Y con esto acabamos con la solución del problema por el método de bisección y método de Newton Raphson usando MATLAB.

4. CONCLUSI CONCLUSION ON Pudimos ver que el paquete de MATLAB es muy útil para esta área y otras áreas mas, ya que contiene diversas funciones.

En nuestro caso trabajamos para funciones no lineales, y vimos que se puede graficar de diferentes maneras con diferentes códigos y todos trabajan correctamente, lo mismo hicimos para hallar la ra íz de la función e igualmente funciono correctamente de diferentes modos, métodos, códigos y dieron el mismo resultado. Y el código no es tan desconocido para nosotros ya que en nuestra área trata de eso y vimos y conocemos la mayoría del código y es casi lo mismo, lo cual nos da una cierta ventaja, pero aun así hay mas que aprender para poderlo manejar con mas facilidad el paquete....


Similar Free PDFs