La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

MÉTODOS NUMERICOS PARA SOLUCION DE ECUACIONES Parte2

Presentaciones similares


Presentación del tema: "MÉTODOS NUMERICOS PARA SOLUCION DE ECUACIONES Parte2"— Transcripción de la presentación:

1 MÉTODOS NUMERICOS PARA SOLUCION DE ECUACIONES Parte2
Jesus_Suniaga | 26 de octubre de 2016

2 CONTENIDO METODO DE LA BISECCION
Es un algoritmo de búsqueda de raíces que trabaja dividiendo el intervalo a la mitad y seleccionando el subintervalo que tiene la raíz. Este es uno de los métodos más sencillos y de fácil intuición para resolver ecuaciones en una variable. Se basa en el teorema de BOLZANO Teorema de BOLZANO Sea y = f(x) continua en un intervalo [a,b] y supongamos que f(x) tenga signos opuestos en a y b es decir f(a)*f(b)<0 Entonces debe existir r en [a,b] tal que tal que f(r)=0, es decir, debe haber por lo menos una raíz en el intervalo

3 TEOREMA DE BOLZANO

4 PROGRAMA PARA DETECTAR VLORES DE a y b tal que f(a)*f(b)<0
y<-function(x) x^3+7*x-60 for(x in -100:100) {z<-y(x)*y(x+1) if(z<0) {cat ("cambio de signo detectado entre ", x ,"y",x+1) stop()} } cambio de signo detectado entre 3 y 4 y(3)=-12, y(4)=32

5 Algoritmo i) Encontrar valores iniciales xa y xb, tales que y tienen signos opuestos ii ) La primera aproximación a la raíz se toma igual al punto medio entre xa y xb es decir Xm=(x1+x2)/2 iii) Evaluar f(xm). Forzosamente debemos caer en uno de los siguientes casos: primero: f(xm)*f(xa)>0. En este caso, f(xa) y f(xm) tienen el mismo signo. Por lo tanto, la raíz se encuentra en el intervalo [xm,xb] segundo: f(xm)*f(xa)<0 En este caso, f(xa) y f(xm) tienen signos opuestos, y por lo tanto la raíz se encuentra en el intervalo [xa,xm] . tercero: f(xm)*f(xa)=0 En este caso se tiene que f(xm)=0 y por lo tanto ya localizamos la raíz que es xm iV Repetir paso iii con el nuevo intervalo, hasta que la raiz hallada sea menor que una tolerancia especificada es decir hasta que abs(f(xm))<e

6 Ejemplo: Hallar la raiz de la ecuacion x^2-2=0 por el método de la biseccion. Estudio preliminar

7 Programa para detectar puntos de inicio
y(1) [1] -1 > y(2) [1] 2 y(1) [1] -1 > y(2) [1] 2 y(1) [1] -1 > y(2) [1] 2 Programa para detectar puntos de inicio cambio designo detectado entre 1 y 2 y<-function(x) x^2-2 for(x in 0:4) {z<-y(x)*y(x+1) if(z<0) {cat ("cambio de signo detectado entre ", x ,"y",x+1) stop()}} cambio de signo detectado entre 1 y 2 y(1)=-1, y(2)=2

8 Solución iii) Repetimos el proceso con el nuevo intervalo [1, 2].
i) Calculamos el punto medio (que es de hecho nuestra primera aproximación a la raíz) xm=(0+2)/2 =1 ii) Evaluamos f(xm) =f(1)=-1 cambiamos a, a=1, b queda igual Este grafico nos permite visualizar los cambios: signo de f(x) Por lo tanto, vemos que la raíz se encuentra en el intervalo [1, 2]. En este punto, vemos que todavía no podemos calcular ningún error aproximado, puesto que solamente tenemos la primera aproximación. iii) Repetimos el proceso con el nuevo intervalo [1, 2]. Calculamos el punto medio (que es nuestra segunda aproximación a la raíz): xm=(1+2)/2 =1.5 Evaluamos f(1.5)=0.25 cambia b, a queda igual. la raíz se encuentra en el intervalo [1, 1.5] El grafico siuiente nos permite visualizar los cambios: signo de f(x) Aquí podemos calcular el primer error aproximado, puesto que contamos ya con la aproximación actual y la aproximación previa: e1=|1.5-1| =0.5

9 Continuación del ejemplo
Iii-2)Repetimos el proceso con el nuevo intervalo [1, 1.5] xm=1.25 Evaluamos f(1.25)= ,cambia a, b queda igual.la raíz se encuentra en el intervalo [1.25, 1.5] El grafico correspondiente en esta etapa: signo de f(x) Calculam el error err=| =0.25 Iii-3 Repetimos el proceso ahora con el nuevo intervalo [1.25, 1.5] xm=1.375 Evaluamos f(1.375)= ,cambia a, b queda igual.la raíz se encuentra en el intervalo [1.375, 1.5] El grafico correspondiente es signo de f(x) Calculam el error err=| =0.125 El proceso debe seguirse hasta cumplir el objetivo

10 Página web del instructor
. Tabla Resumen: Aprox. Error aprox Así, obtenemos como aproximación a la raíz orreo electrónico Teléfono del trabajo Horario de trabajo Página web del instructor

11 # PROGRAMA EN R # Metodo de Biseccion
#valores iniciales a=0;b=2;N=20;E=0.01 #definimos la funcion f = function(x) x^2-2 #dibujo curve(f, from=-5,to=5,col="red") abline(h=0,col="blue")

12 Programa continuacion
#ciclo iteractivo xant=0 for ( i in 1:N){ xm=(a+b)/2 err=abs(xm-xant) cat("\n","iteracion",i) cat("\n","a,b,xm",a,b,xm,"imagenes",f(a),f(b),f(xm), "\n", "raiz=", xm, "error =",err) if(abs(f(xm))<E) {cat("\n","converge en",i,"iteraciones", "raiz = ", xm) stop()} else{ if (f(a)*f(xm)> 0) {a = xm; print("cambia a, b queda igual ") } if (f(a)*f(xm)< 0) {b = xm;print("cambia b, a queda igual ")} } xant=xm }

13 METODO DE LA REGLA FALSA
El método de regla falsa o falsa posición es un método iterativo de resolución numérica de ecuaciones no lineales muy similar al método de la bisección  excepto que en cada paso en   lugar de usar el punto medio se usa la intersección  de la recta que une los extremos del intervalo  con el eje X

14 ILUSTRACION GRAFICA

15 ALGORITMO Nota: Como se dijo antes la única diferencia es la formula de calculo de la raíz aproximada que en el caso del método de la bisección es el punto medio, xm=(xa+xb) en el caso del método de la regla falsa la raiz xm se calcula por la siguiente formula xm=[xb*f(xa)-xa*f(xb)]/[f(xa)-f(xb)] por lo tanto se puede reescribir el algoritmo del método de la Reglea Falsa parafreseando el Algoritmo de la Bisección

16 Algoritmo del método Regla Falsa
i) Encontrar valores iniciales xa y xb, tales que y tienen signos opuestos ii ) La primera aproximación a la raíz se toma igual al punto xm dado por xm=[xb*f(xa)-xa*f(xb)]/[f(xa)-f(xb)] iii) Evaluar f(xm). Forzosamente debemos caer en uno de los siguientes casos: primero: f(xm)*f(xa)>0 En este caso, f(xa) y f(xm) tienen el mismo signo. Por lo tanto, la raíz se encuentra en el intervalo [xm,xb] segundo: f(xm)*f(xa)<0 En este caso, f(xa) y f(xm) tienen signos opuestos, y por lo tanto la raíz se encuentra en el intervalo [xa,xm] . tercero: f(xm)*f(xa)=0 En este caso se tiene que f(xm)=0 y por lo tanto ya localizamos la raíz.

17 ALGORITMO - CONTINUACION
iv) El proceso se vuelve a repetir con el nuevo intervalo, hasta que la raiz hallada sea menor que una tolerancia especificada es decir hasta que abs(f(xm))<e Ejemplo: Sea la ecuación  f(x)=x^0.5 -cos(x) =0 . Resolver por el metodo  de la falsa posicion

18 SOLUCIÓN DE : x^0.5-cos(x) = 0
Estudio preliminar Primero Buscamos dos puntos xa y  xb donde haya cambio de signo de f(x), por el método grafico  podemos apreciar que xa=0 y x(b)=1

19 SOLUCION-ESTUDIO PRELIMINAR
 programa para detectar raices y=function(x) x^0.5-cos(x);z=0 for(x in 0:5) {z<-y(x)*y(x+1) if(z<0) {cat (“cambio de signo detectado entre “, x ,”y”,x+1) stop()} } corrida: cambio de signo detectado entre 0 y 1 => f(0)=-1 y f(1)=0.46

20 SOLUCION- PASO 1 1) Iteración inical, xa=0, xb=1 Calculamos xm
xm=[xb*f(xa)-xa*f(xb)]/[f(xa)-f(xb)] =(1*f(0)-0)/(f(0)-f(1))= 0.685 Evaluamos f(xm) => f(.685)=0.053 signo de f(x) –      +       + ———–    => La raiz se encuentra en el intervalo [0, 0.68] 0     0.68    1

21 SOLUCION – PASO 2 2)Segunda Iteración  xa=0; xb=0.68 ;  f(0)=-1    f(0.68)=0.047 xm=[xb*f(xa)-xa*f(xb)]/[f(xa)-f(xb)] =(0.68*f(0)-0)/(f(0)-f(0.68))=0.649 Evaluamos f(xm) => f(.649)= Err1=abs( )=0.036 signo de f(x) –      +           + ———– —   => La raiz se encuentra en el intervalo [0, 0.649] 0       0.68

22 SOLUCION – PASO III Tercera Iteración xa=0; xb=0.649
xm=[xb*f(xa)-xa*f(xb)]/[f(xa)-f(xb)] =(0.649*f(0)-0)/(f(0)-f(0.649))=0.643 Evaluamos f(xm) => f(.643)= Err1=abs( )=0.0015 signo de f(x) –      +           + ———– —   => La raiz se encuentra en el intervalo [0, 0.643] 0     Err2=abs( )=0.06

23 TABLA DE RESULTADOS Tabla de resultados Aprox. Error aprox. 0.685
0.649       0.036 0.643       0.0015

24 PROGRAMA METODO REGLA FALSA
## Metodo de Regla Falsa #valores iniciales a=0;b=1;N=20;E= #definimos la funcion f = function(x) x^0.5-cos(x) #dibujo curve(f, from=0,to=5,col=”red”) abline(h=0,col=”blue”) # chequeo del teorema de bolzano if (f(a)*f(b) > 0) { cat(“error: f(xmin) y f(xmax) son del mismo signo. Escoja otro par de valores”) stop()}

25 PROGRAMA-CICLO ITERATIVO
xant=0 for ( i in 1:N){ xm=(b*f(a)-a*f(b))/(f(a)-f(b)) err=abs(xm-xant) cat(“\n”,”iteracion”,i) cat(“\n”,”a,b,xm”,a,b,xm,”imagenes”,f(a),f(b),f(xm), “\n”, “raiz=”, xm, “error =”,err) if(abs(f(xm))<E) {cat(“\n”,”converge en”,i,”iteraciones”, “raiz = “, xm) stop()} else{ if (f(a)*f(xm)> 0) {a = xm; print(“cambia a, b queda igual “) } if (f(a)*f(xm)< 0) {b = xm;print(“cambia b, a queda igual “)} } xant=xm }

26 CORRIDA iteracion 1 a,b,xm imagenes raiz= error = [1] “cambia b, a queda igual ” iteracion 2 a,b,xm imagenes raiz= error = [1] “cambia b, a queda igual ” iteracion 3 a,b,xm imagenes raiz= error = [1] “cambia b, a queda igual ” iteracion 4 a,b,xm imagenes raiz= error = converge en 4 iteraciones raiz =

27 DEDUCCION DE LA FORMULA

28 Metodo de la secante Es una variación del método de Newton-Raphson donde en vez de calcular la derivada de la función en el punto de estudio, se usa una aproximación de la derivada, Este método es de especial interés cuando es difícil derivar la función de estudio, por lo que el método de Newton no resulta atractivo. La aproximación a la derivada que usamos es: Df=(f(x1)-f(x0))/(x1-x0). La que representa la pendiente de la recta secante que une los puntos (x0,f(x0)) y (x1,f(x1))

29 Método de la Secante

30 Programa de newton y de la secante
#Metodo de Newton para resolver x^2-2=0 f=function(x) x^2-2 tol=0.001; n=20 x0= 1 for(i in 1:n) { x=x0 - f(x0)/df(x0) print(c(i,x0,f(x0))) error=abs(x-x0) if (error<tol){ cat("\n", "convergencia alcanzada en iteraciones", i, "raiz", x) stop() } x0=x } print("maximo numero de iteraciones alcanzadas") #Metodo de la Secante para resolver x^2-2=0 f= function(x) x^2-2 x0=1;x1=2;tol=0.001; n=20 for(i in 1:n) { aprox.df=(f(x1)-f(x0))/(x1-x0) x=x0- f(x0)/aprox.df error=abs(x-x0); print(c(i,x,error)) if (error<tol){ cat("\n", "convergencia en",i," iteraciones", "raiz=", x) stop() } x0=x1;x1=x x0=x } print("maximo numero de iteraciones alcanzadas")

31 Corridas Corrda por el método de NEWTON
ITERACIÓN Raiz convergencia en 4 iteraciones raiz= Corrida por el método de la secante ITERACIÓN Raiz convergencia en 5 iteraciones raiz=


Descargar ppt "MÉTODOS NUMERICOS PARA SOLUCION DE ECUACIONES Parte2"

Presentaciones similares


Anuncios Google