6.metodo de newton
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

6.metodo de newton

on

  • 4,573 views

 

Statistics

Views

Total Views
4,573
Views on SlideShare
4,573
Embed Views
0

Actions

Likes
0
Downloads
81
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

6.metodo de newton Document Transcript

  • 1. 333.3 Método de NewtonSean f: R→R, y la ecuación f(x)=0. Sea r tal que f(r)=0, entonces r es una raíz real de laecuación.El método de Newton, o Newton-Raphson, es una fórmula eficiente para encontrar r. Es uncaso especial del método del punto fijo en el que la ecuación f(x) = 0 se re-escribe en la formax = g(x) eligiendo g de tal manera que la convergencia sea de segundo orden.3.3.1 La fórmula de NewtonSuponer que g es una función diferenciable en una región que incluye a la raíz r y al valor xi(calculado en la iteración i). Desarrollando con la serie de Taylor: 2 g(xi) = g(r) + (xi - r) g’(r) + (xi - r) g’’(r)/2! + . . .Con las definiciones del método del punto fijo: r = g(r) xi+1 = g(xi), i = 0, 1, 2, 3, . . .Se obtiene: 2 xi+1 = r + (xi - r) g’(r) + (xi - r) g’’(r)/2! + . . .Si se define el error de truncamiento de la siguiente forma: Ei = xi - r: Error en la iteración i Ei+ 1 = xi+1 - r: Error en la iteración i +1Finalmente se obtiene: Ei+ 1 = Ei g’(r) + Ei2 g’’(r)/2! + . . .Si se hace que g’(r) = 0, y si g’’(r) ≠ 0, entonces se tendrá: Ei+ 1 = O( Ei2 ),Con lo que el método tendrá convergencia cuadrática.El procedimiento para hacer que g’(r) = 0, consiste en elegir una forma apropiada para g(x): g(x) = x - f(x) h(x), en donde h es alguna función que debe especificarseEs necesario verificar que la ecuación x = g(x) se satisface con la raíz r de la ecuación f(x) = 0 g(r) = r - f(r) h(r) = r ⇒ g(r) = rSe deriva g(x) y se evalúa en r g’(x) = 1 - f’(x) h(x) - f(x) h’(x) g’(r) = 1 - f’(r) h(r) - f(r) h’(r) = 1 - f’(r) h(r)Para que la convergencia sea cuadrática se necesita que g’(r) = 0 g’(r) = 0 ⇒ 0 = 1 - f’(r) h(r) ⇒ h(r) = 1/f’(r) ⇒ h(x) = 1/f’(x), f(x)≠0Con lo que se puede especificar h(x) para que la convergencia sea cuadrática.Al sustituir en la fórmula propuesta se obtiene x = g(x) = x - f(x)/f’(x), y se puede escribir lafórmula iterativa de Newton:Definición: Fórmula iterativa de Newton f(xi ) xi+ 1 = f (xi ) ≠ 0 , i = 0, 1, 2, . . . xi − , f (xi )
  • 2. 343.3.2 Algoritmo del método de NewtonPara calcular una raíz r real de la ecuación f(x) = 0 con precisión E se usa la fórmula iterativa f(xi )xi+ 1 =, f (xi ) ≠ 0 y se genera una sucesión de valores xi esperando que tienda a un xi − f (xi )valor que satisfaga la ecuación. 1) Elegir el valor inicial x0 2) Generar la sucesión de valores con la fórmula iterativa: f(xi ) xi+ 1 = , f (xi ) ≠ 0 , i = 0, 1, 2, 3, ... xi − f (xi ) 3) Si el método converge, la sucesión xi tenderá hacia un valor fijo que satisface la ecuación f(x) = 0Ejemplo. Calcule una raíz real de f(x) = e - πx = 0 con la fórmula de Newton xSuponer el valor inicial: x0 = 0.5 f(x 0 ) e x0 − πx 0 e0.5 − 0.5 πx1 =− x0 =− x x0 =− 0.5 = 0.5522 f (x 0 ) e 0 −π e0.5 − π f(x1 ) e x1 − πx1 e0.5522 − 0.5522πx 2 =− x1 =− x x1 = 0.5522 − = 0.5538 f (x1 ) e 1 −π e0.5522 − π f(x 2 ) e x2 − πx 2 e0.5538 − 0.5538πx 3 =− x2 =− x x2 = 0.5538 − =0.5538 f (x 2 ) e 2 −π e0.5538 − πEn los resultados se observa la rápida convergencia. En la tercera iteración el resultado tienecuatro decimales que no cambian.3.3.3 Interpretación gráfica del método de NewtonSuponer que f es como se muestra en el siguiente gráfico y x0 es el valor inicial:Seguimos el siguiente procedimiento: Calcular f(x0) Trazar una tangente a f en el punto (x0, f(x0)) hasta intersecar al eje horizontal El punto obtenido es x1 Entonces tan(α0) = f’(x0) = f(x0)/(x0 – x1) de donde se obtiene x1 = x0 – f(x0)/f’(x0) Calcular f(x1) Trazar una tangente a f en el punto (x1, f(x1)) hasta intersecar al eje horizontal: El punto obtenido es x2 Entonces tan(α1) = f’(x1) = f(x1)/(x1 – x2) de donde se obtiene x2 = x1 – f(x1)/f’(x1)
  • 3. 35 Con estos dos resultados se puede generalizar: tan(αi) = f’(xi) = f(xi)/(xi – xi+1) de donde se obtiene xi+1 = xi – f(xi)/f’(xi) Es la fórmula de Newton.Esta interpretación gráfica permite observar que la secuencia de valores calculados con lafórmula de Newton sigue la trayectoria de las tangentes a f(x). Si hay convergencia, estasecuencia tiende a la raíz r. En la siguiente sección se analiza la propiedad de convergenciade éste método.3.3.4 Convergencia del método de NewtonSe estableció en el método del punto fijo que la ecuación recurrente x=g(x) tiene la siguientepropiedad de convergencia: | Ei+ 1 |=| g(z) || Ei | , i = 0, 1, 2, 3, . . . La convergencia se producesi se cumple que |g’(x)|<1Para el método de Newton se obtuvo la siguiente ecuación recurrente: x = g(x) = x - f(x)/f’(x), f(x)f (x)Entonces, g(x) = , f(xi ) ≠ 0 [f (x)]2Si se supone que en alguna región cercana a r en la cual se incluyen los valores calculados x,se tiene que f’(x)≠0, y si r es una raíz de f(x)=0, entonces f(r) = 0, y por lo tanto: f(r)f (r) = = 0 g(r) [f (r)]2Esto demuestra que existe algún intervalo cercano r en el que |g’(x)|<1 siempre que g seacontinua en ese intervalo La fórmula de Newton converge si los valores calculados semantienen dentro de este intervalo.Para obtener el intervalo de convergencia, no es práctico usar la definición anterior puesinvolucra resolver una ecuación no lineal complicada. Existen otros procedimientos paraanalizar la convergencia de esta fórmula como se muestra a continuación.3.3.5 Una condición de convergencia local para el método de NewtonDada la ecuación f(x)=0. Suponer que f(x), f’(x), f’’(x) son continuas y limitadas en un intervalo[a, b] que contiene a la raíz r como se muestra en el siguiente gráfico:Para este caso, f(x) tiene las siguientes propiedades a) f(x) > 0, x∈(r, b] b) f’(x) > 0, x∈(r, b] c) f’’(x) > 0, x∈(r, b]Demostrar que la fórmula de Newton converge para cualquier valor inicial x0 elegido en elintervalo (r, b].DemostraciónFórmula iterativa de Newton f(xi ) xi+ 1 = f(xi ) ≠ 0 , i=0, 1, 2,... xi − , f (xi )
  • 4. 361) Las propiedades a) y b) implican que xi+ 1 < xi : f(xi ) xi+= xi − 1 ⇒ xi + 1 < xi (1) f (xi )Al sumar a la derecha un término positivo, pues f(x), f(x) son positivos, es válido el enunciado2) La propiedad c) implica que r < xi+ 1 :Desarrollamos f(x) con tres términos de la serie de Taylor alrededor de xi f(r) f(xi ) + (r − xi )f (xi ) + (r − xi )2 f (z) / 2! =El último término representa el error de truncamiento de la serie. Este término es positivo puesf(x) es positivo, por lo tanto, al restar a la derecha un término positivo:f(r) > f(xi ) + (r − xi )f (xi ) ⇒ 0 > f(xi ) + (r − xi )f (xi ) ⇒ r < xi − f(xi ) / f (xi ) ⇒ r < xi+ 1 (2)Combinando los resultados (1) y (2) se tiene r < xi+ 1 < xi , i = 0, 1, 2,...Se define una sucesión numérica decreciente que tiende a r.Esto prueba la convergencia de la fórmula iterativa de Newton: xi →r i→∞Si se dispone del gráfico de f es fácil reconocer visualmente si se cumplen las condiciones a),b) y c) como el caso anterior y se puede definir un intervalo para la convergencia del método.Si f tiene otra forma, igualmente se pueden enunciar y demostrar las condiciones para que seproduzca la convergencia en cada caso.Ejemplo. Determine la convergencia del método de Newton si f tuviese la siguiente formaSu geometría se puede describir con: a) f(x)>0, x∈[a, r) b) f’(x)<0, x∈[a, r) c) f’’(x)>0, x∈[a, r)Con un desarrollo similar al anterior, se puede probar que el método converge para cualquiervalor inicial x0 elegido en el intervalo [a, r), (a la izquierda de la raíz r).El uso de esta propiedad es simple si se dispone de un gráfico de la ecuación. Se elige comointervalo de convergencia aquella región en la que se observa que la trayectoria de lastangentes produce la convergencia a la raíz. Si se elije un valor inicial arbitrario no se puedeasegurar que el método converge.
  • 5. 37Ejemplo.- Si un círculo de radio a rueda en el plano a lo largo del eje horizontal, un punto Pde la circunferencia trazará una curva denominada cicloide. Esta curva puede expresarsemediante las siguientes ecuaciones paramétricas x(t) = a(t – sen t), y(t) = a(1 – cos t)Suponga que el radio es 1 metro, si (x, y) se miden en metros y t representa tiempo ensegundos, determine el primer instante en el que la magnitud de la velocidad es 0.5 m/s. Useel método de Newton, E=0.0001Gráfico de la cicloideSu trayectoria: u(t) = (x(t), y(t)) = (t – sen t, 1 – cos t)Su velocidad: u’(t) = (1 – cos t, sen t)Magnitud de la velocidad: u(t) = − cos t)2 + (sent)2 (1Gráfico de la magnitud de la velocidadDato especificado: (1 − cos t)2 + (sent)2 = 0.5 ⇒ f(t) = (1 – cost)2 + (sent)2 – 0.25 = 0Método de Newton f(ti ) (1 − cos ti )2 + (senti )2 − 0.25 ti+ 1 = ti − = ti − (fórmula iterativa) f (ti ) 2(1 − cos ti )(senti ) + 2(senti )(cos ti ) t0 = 0.5 (del gráfico) t1 = ... = 0.505386 (iteraciones) t2 = ... = 0.505360 t3 = ... = 0.505360
  • 6. 383.3.6 Práctica computacionalEn esta sección se describe el uso de MATLAB para usar el método de Newton. Se lo harádirectamente en la ventana de comandos.Para calcular una raíz debe elegirse un valor inicial cercano a la respuesta esperada deacuerdo a la propiedad de convergencia estudiada para este método.Para realizar los cálculos se usa la fórmula de Newton en notación algorítmica: f(xi ) xi+= xi − 1 , i=0, 1, 2, 3, … f (xi ) x0 es el valor inicial x1, x2, x3, … son los valores calculadosEn los lenguajes computacionales como MATLAB no se requieren índices para indicar que elvalor de una variable a la izquierda es el resultado de la evaluación de una expresión a laderecha con un valor anterior de la misma variable.La ecuación se puede definir como una cadena de caracteres entre comillas simples. Laderivada se obtiene con la función diff de MATLAB y con la función eval se evalúan lasexpresiones matemáticas. Opcionalmente se puede usar el tipo syms para definir variablessimbólicas o la función sym para operar algebraicamente con expresiones matemáticas.Forma computacional de la fórmula de Newton en MATLAB: x=x-eval(f)/eval(diff(f))Presionando repetidamente la tecla del cursor ↑ se obtienen resultados sucesivos. Laconvergencia o divergencia se puede observar directamente en los resultados.Ejemplo. Calcule con MATLAB las raíces reales de f(x) = e - πx = 0 con la fórmula de Newton. xEs conveniente graficar la ecuación mediante los siguientes comandos de MATLAB. Tambiénse puede editar el dibujo directamente en la ventana de graficación:>> syms x>> f=exp(x)-pi*x;>> ezplot(f,[0,2]),grid onA continuación se utliza la fórmula de Newton en MATLAB eligiendo del gráfico un valor inicial.Reutilizando este comando se obtiene una secuencia de aproximaciones:>> format long>> x=0.5;
  • 7. 39>> x=x-eval(f)/eval(diff(f))x= 0.552198029112459>> x=x-eval(f)/eval(diff(f))x= 0.553825394773978>> x=x-eval(f)/eval(diff(f))x= 0.553827036642841>> x=x-eval(f)/eval(diff(f))x= 0.553827036644514>> x=x-eval(f)/eval(diff(f))x= 0.553827036644514El último resultado tiene quince decimales fijos.Se puede observar la rapidez con la que el método se acerca a la respuesta duplicandoaproximadamente, la precisión en cada iteración. Esto concuerda con la propiedad deconvergencia cuadrática.Finalmente, es necesario verificar que este resultado satisface a la ecuación:>> eval(f)ans = 0Ejemplo. Se propone el siguiente modelo para describir la demanda de un producto, en dondex es tiempo en meses: d(x) = 20x e −0.075xEncuentre el valor de x para el cual la demanda alcanza el valor de 80 unidades. Use elmétodo de Newton para los cálculos. Elija el valor inicial del gráfico y muestre los valoresintermedios.La ecuación a resolver es: f(x) 20x e −0.075x − 80 0 = =>> syms x>> f=20*x*exp(-0.075*x)-80; (20 x)/exp((3 x)/40) - 80>> ezplot(f,[0,50]),grid on>> x=5; 20>> x=x-eval(f)/eval(diff(f))x= 0 6.311945053556490 -20>> x=x-eval(f)/eval(diff(f))x= -40 6.520455024943885>> x=x-eval(f)/eval(diff(f)) -60x= 6.525360358429755 -80>> x=x-eval(f)/eval(diff(f)) 0 10 20 30 40 50x= x 6.525363029068742>> x=x-eval(f)/eval(diff(f))x= 6.525363029069534>> x=x-eval(f)/eval(diff(f))x= 6.525363029069534
  • 8. 40Ejemplo. Una partícula se mueve en el plano X-Y de acuerdo con las ecuaciones paramétricassiguientes, donde t es tiempo, entre 0 y 1: x(t)=t*exp(t) y(t)=1+t*exp(2t)Con la fórmula de Newton calcule el tiempo en el que la partícula está más cerca del punto(1,1)Distancia de un punto (x, y) al punto (1, 1) : = d (x(t) − 1)2 + (y(t) − 1)2Para encontrar la menor distancia, debe resolverse la ecuación: f(t) = d’(t) = 0>> t=[0:0.01:1]; Puntos para evaluar las ecuaciones paramétricas>> x=t.*exp(t);>> y=1+t.*exp(2*t);>> plot(x,y) Gráfico del recorrido 9 8 7 6 5 4 3 2 1 0 0 0.5 1 1.5 2 2.5 3>> syms t>> x=t*exp(t);>> y=1+t*exp(2*t);>> d=sqrt((x-1)^2+(y-1)^2) (para operar algebraicamente) d= (t^2*exp(4*t) + (t*exp(t) - 1)^2)^(1/2)>> f=diff(d);>> t=0.5;>> t=t-eval(f)/eval(diff(f))t= 0.278246639067713>> t=t-eval(f)/eval(diff(f))t= 0.258310527656699>> t=t-eval(f)/eval(diff(f))t= 0.256777599742604>> t=t-eval(f)/eval(diff(f))t= 0.256768238259669>> t=t-eval(f)/eval(diff(f))t= 0.256768237910400>> t=t-eval(f)/eval(diff(f))t= 0.256768237910400 (tiempo para la menor distancia)>> eval(d)ans = 0.794004939848305 (es la menor distancia)
  • 9. 41Ejemplo. Encuentre una intersección de las siguientes ecuaciones en coordenadas polares r=2+cos(3*t) t r=2- e tEcuación a resolver: f(t) = 2+cos(3*t) – (2-e )>> t=[-pi:0.01:2*pi]; Puntos para evaluar las ecuaciones>> r=2+cos(3*t);>> polar(t,r),hold on>> r=2- exp(t);>> polar(t,r) Gráfico en coordenadas polares 90 3 120 60 2 150 30 1 180 0 210 330 240 300 270>> syms t>> f=2+cos(3*t)-(2-exp(t));>> t=-1; (valor inicial)>> t=t-eval(f)/eval(diff(f))t= -0.213748703557153>> t=t-eval(f)/eval(diff(f))t= -0.832049609116596>> t=t-eval(f)/eval(diff(f))t= -0.669680711112045>> t=t-eval(f)/eval(diff(f))t= -0.696790503081824>> t=t-eval(f)/eval(diff(f))t= -0.697328890705191>> t=t-eval(f)/eval(diff(f))t= -0.697329123134159>> t=t-eval(f)/eval(diff(f))t= -0.697329123134202>> t=t-eval(f)/eval(diff(f))t= -0.697329123134202 (ángulo: -39.95…. grados)>> r=2+cos(3*t)r= 1.502086605214547 (radio)
  • 10. 423.3.7 Instrumentación computacional del método de NewtonPara evitar iterar desde la ventana de comandos, se puede instrumentar una función que recibala ecuación a resolver f, la variable independiente v definida como símbolo matemático y elvalor inicial u. Adicionalmente se puede enviar un parámetro e para controlar la precisiónrequerida y otro parámetro m para el máximo de iteraciones.La función entrega la solución calculada u y el número de iteraciones realizadas k. Si elmétodo no converge en el máximo de iteraciones previsto, u será un valor nulo y el número deiteraciones k será igual al máximo m. function [u,k]=newton(f,v,u,e,m) t=u; for k=1:m u=u-subs(f,v,u)/subs(diff(f,v),v,u); if abs(t-u)<e return end t=u; end u=[ ]; k=m;Ejemplo. Calcule las dos raíces reales de f(x) = e - πx = 0 con la función newton. Los valores xiniciales son tomados del gráfico. >> syms x >> f=exp(x)-pi*x; >> ezplot(f,[0,2]),grid on exp(x) - π x 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x >> [u,k]=newton(f, x, 0.5, 0.000001, 10) u= 0.553827036644514 Primera raíz k= 4 >> [u,k]=newton(f, x, 1.6, 0.000001, 10) u= 1.638528419970363 Segunda raíz k= 4Si no es de interés el número de iteraciones, la función puede llamarse solo con un parámetro >> u=newton(f, x, 0.5, 0.000001, 10) u= 0.553827036644514
  • 11. 433.3.8 Uso de funciones especiales de MATLABMATLAB dispone de funciones especiales para calcular raíces de ecuaciones no lineales.La función fzeroEs equivalente a usar los métodos de la bisección y de NewtonEjemplo. Resuelva la ecuación f(x) = e - πx = 0 usando fzero x>> f=exp(x)-pi*x;>> r=fzero(f, [0.4, 0.8]) (Para usar como el método de la bisección r= se especifica el intervalo que contiene a la raíz) 0.55382703664451>> f=exp(x)-pi*x;>> r=fzero(f, 0.4) (Para usar como el método de Newton r= se especifica un valor cercano a la raíz) 0.553827036644514>> r=fzero(f, 1.6) r= 1.638528419970363La función solveSe usa resolver ecuaciones en forma simbólica exacta. En algunos casos la solución quedaexpresada mediante símbolos predefinidos en MATLAB. Con la función eval se convierten lassoluciones al formato numérico decimal. Esta función no entrega todas las soluciones de unaecuación.Ejemplo. Resuelva la ecuación f(x) = e - πx = 0 usando solve x>> f=exp(x)-pi*x;>> r=eval(solve(f)) r= 0.553827036644514 (Raíz real en forma numérica decimal)La función rootsSirve para calcular todas las raíces de ecuaciones polinómicas. Los coeficientes delpolinomio deben almacenarse en un vector. 3 2Ejemplo. Encuentre todas las raíces del polinomio 2x - 5x - 4x - 7 = 0 usando roots>> a=[2, -5, -4, -7]; (Coeficientes del polinomio)>> r=roots(a)r= 3.39334562071304 (Una raíz real y dos raíces complejas) -0.44667281035652 + 0.91209311493838i -0.44667281035652 - 0.91209311493838i