Ejemplos metodo newton raphson

101
METODOS NUMERICOS I Autor: Ing. William Chauca Nolasco

Transcript of Ejemplos metodo newton raphson

METODOS NUMERICOS I

• Autor: Ing. William Chauca Nolasco

ERRORES DE TRUNCAMIENTO

Y LA SERIE DE TAYLOR

Los errores de truncamiento son aquellos que resultan al usar una aproximación en lugar de un procedimiento matemático exacto.LA SERIE DE TAYLOREl teorema de Taylor (véase cuadro 4.1) y su fórmula, la serie de Taylor, es de gran valor en el estudio de los métodos numéricos. En esencia, la serie de Taylor proporciona un medio para predecir el valor de una función en un punto en términos del valor de la función y sus derivadas en otro punto. En particular, el teorema establece que cualquier función suave puede aproximarse por un polinomio.Una buena manera de comprender la serie de Taylor consiste en construirla término por término. Por ejemplo, el primer término de la serie es:

4.2

Esta relación, llamada la aproximación de orden cero, indica que el valor de f en el nuevo punto es el mismo que su valor en el punto anterior. Tal resultado tiene un sentido intuitivo, ya que si xi y xi+1 están muy próximas entre sí, entonces es muy probable que el nuevo valor sea similar al anterior.

La ecuación (4.2) ofrece una estimación perfecta si la función que se va a aproximar es, de hecho, una constante. Sin embargo, si la función cambia en el intervalo, entonces se requieren los términos adicionales de la serie de Taylor, para obtener una mejor aproximación. Por ejemplo, la aproximación de primer orden se obtiene sumando otro término para obtener: 4.3

El término adicional de primer orden consiste en una pendiente f ′(xi) multiplicada por la distancia entre xi y xi+1. Por lo tanto, la expresión representa ahora una línea recta y es posible predecir un incremento o un decremento de la función entre xi y xi+1.Aunque la ecuación (4.3) puede predecir un cambio, sólo es exacta para una línea recta o una tendencia lineal. Por lo tanto, se le agrega a la serie un término de segundo orden para obtener algo de la curvatura, que pudiera presentar la función:

4.4

De manera similar, se agregan términos adicionales para desarrollar la expansión completa de la serie de Taylor:

4.5

Observe que debido a que la ecuación (4.5) es una serie infinita, el signo igual reemplazaal signo de aproximación que se utiliza en las ecuaciones (4.2) a (4.4). Se incluye untérmino residual para considerar todos los términos desde el n + 1 hasta infinito:

4.6

donde el subíndice n indica que éste es el residuo de la aproximación de n-ésimo orden y x es un valor de x que se encuentra en algún punto entre xi y xi+1. La x es tan importanteque se dedica un estudio mas completo. Por ahora es suficiente darse cuenta de que existe este valor que da una estimación exacta del error.Con frecuencia es conveniente simplificar la serie de Taylor definiendo un tamaño de paso o incremento h = xi+1 – xi y expresando la ecuación (4.5) como:

4.7

donde el término residual es ahora

4.8

Aproximaciones de un polinomio mediante la serie de TaylorPlanteamiento del problema. Use expansiones de la serie de Taylor de los órdenescero hasta cuatro para aproximar la función

desde xi = 0 con h = 1. Esto es, prediga el valor de la función en xi+1 = 1.Ya que se trata de una función conocida, es posible calcular valores de f(x) entre 0 y 1. La función empieza en f(0) = 1.2 hasta f(1) = 0.2. Por lo tanto, el valor verdadero que se trata de predecir es 0.2.La aproximación de la serie de Taylor con n = 0 es [ecuación (4.2)]

la aproximación de orden cero es una constante. Usando esta formulación resulta un error de truncamiento

que se emplea para calcular f(1) = 0.9

De esta manera, el error de truncamiento se reduce aEt = 0.2 – 0.95 = –0.75

Entonces, de acuerdo con la ecuación (4.4)

y sustituyendo h = 1, f(1) = 0.45. Al incluirse la segunda derivada se añade una curvatura descendente que proporciona una mejor estimación. Además, el error de truncamiento se reduce a 0.2 – 0.45 = –0.25.Los términos adicionales mejoran aún más la aproximación. En efecto, la inclusión de la tercera y de la cuarta derivadas da como resultado exactamente la misma ecuacióndel principio:

En general, la expansión de la serie de Taylor de n-ésimo orden será exacta para un polinomio de n-ésimo orden. Para otras funciones continuas y diferenciables, como las exponenciales y las senoidales, no se obtiene una estimación exacta con un número finito de términos. Cada uno de los términos adicionales contribuye, aunque sea con poco, al mejoramiento de la aproximación.

Uso de la expansión de la serie de Taylor para aproximar una función con un número infinito de derivadas

Solución. el conocimiento de la función original implica que se puede determinar el valor exacto de f(p/3) = 0.5.La aproximación de orden cero es [ecuación (4.3)]

Sin embargo, observe también que la mejor aproximación se consigue con los primeros términos. En este caso, al agregar el tercer término, el error se redujo al 2.62 × 10–2%, lo cual significa que se alcanzó el 99.9738% del valor exacto. Por consiguiente, aunque se le agreguen más términos a la serie el error decrece, aunque la mejoría será mínima.

RAICES DE ECUACIONES

ECUACIONES NO LINEALES – METODO GRAFICO- METODO CERRADO -

ABIERTO

Estos puntos se grafican en la figura. La curva resultante cruza el eje c entre 12 y 16. Un vistazo a la gráfica proporciona una aproximación a la raíz de 14.75. La validez de la aproximación visual se verifica sustituyendo su valor en la ecuación para obtener

Las técnicas gráficas tienen un valor práctico limitado, ya que no son precisas. Sin embargo, los métodos gráficos se utilizan para obtener aproximaciones de la raíz. Dichas aproximaciones se pueden usar como valores iniciales en los métodos numéricosFormas generales en que

puede ocurrir una raíz en un intervalo preescrito por los límites inferior xl y superior xu. Las fi guras a) y c) muestran que si f(xl) y f(xu) tienen el mismo signo, entonces no habrá raíces dentro del intervalo o habrá un número par de ellas. Las fi guras b) y d) muestran que si la función tiene signos diferentes en los puntos extremos, entonces habrá un número impar de raices dentro del intervalo

MÉTODO DEL PUNTO FIJO

function Punto(g,x)% g es la funcion% x es el valor inicial del intervalo%raiz valor de la solucionerror=0.0001;ntol=50;k=0;fprintf('%5d %12.6f\n',k,x);while 1 x0=x; x=feval(g,x0); k=k+1; difer=x-x0; fprintf('%5d %12.6f %12.6f\n',k,x,difer) if (abs(x-x0)<=error) | (k==ntol) raiz=x; fprintf('%12.6f\n',raiz) break end end end

>> Punto(inline('log(x)+2'),3) 0 3.000000 1 3.098612 0.098612 2 3.130954 0.032342 3 3.141338 0.010384 4 3.144649 0.003311 5 3.145702 0.001053 6 3.146037 0.000335 7 3.146144 0.000106 8 3.146177 0.000034 3.146177

>> Punto(inline('exp(-x)'),0.568) 0 0.56800 1 0.56666 -0.00134 2 0.56742 0.00076 3 0.56699 -0.00043

raiz =

0.5670

Por el método de punto fijo obtener la raíz f(x)= e(-x) para x0 = 0.568

METODO DE PUNTO FIJO – AUTOR: NIEVES

MÉTODOS GRÁFICOS

Como auxiliares en la comprensión visual de los métodos numéricos tantos cerrados como abiertos, para identificar el número de posibles raíces y la identificación de casos en los que los métodos abiertos no funcionan.

MÉTODO GRÁFICO

f(x)

x

Visual

xr

MÉTODO GRÁFICO

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1

� 0.57

xe)x(f x -= -x f(x)0 1

0.05 0.901229420.1 0.804837420.15 0.710707980.2 0.618730750.25 0.528800780.3 0.440818220.35 0.354688090.4 0.270320050.45 0.187628150.5 0.106530660.55 0.026949810.6 -0.051188360.65 -0.127954220.7 -0.20341470.75 -0.277633450.8 -0.350671040.85 -0.422585070.9 -0.493430340.95 -0.563258981 -0.63212056

MÉTODO DE BISECCIÓNf(x)

x

1. Consiste en considerar un intervalo (xi, xs) en el que se garantice que la función tiene raíz.

MÉTODO DE BISECCIÓN

xi xs

f(x)

x

f(xi)

f(xs)

0<)x(f).x(f si

2.- El segmento se bisecta, tomando el

punto de bisección xr como aproximación de la raíz buscada.

2si

rxxx +

=

xi xsxr

f(x)

x

f(xi)

f(xs)

f(xr)

• Es la fórmula de recurrencia para el método de bisección que es igual al promedio de los valores inferior y superior de los extremos del intervalo.

Se identifica luego en cuál de los dos intervalos está la raíz.El proceso se repite n veces, hasta que el punto de bisección xr coincide prácticamente con el valor exacto de la raíz.

xsxi

f(x)

x

f(xs)

f(xr)

2si

rxxx +

=

xr

Problema: Calcular por el método de la biseccion la ecuacion no lineal f(x) = e-x-x, para x [0 1], Error = 0.0001Solucion: Primero calculamos los valores de f(Xi) =F(0) así como el de f(Xs)=F(1) F(0) =e-0-0 = 1 , para F(1) = e-1-1 = -0.632120559 comprobando la condición f(Xi)*f(Xs)<0 entonces (1) * ( -0.632120559) < 0 procedemos a realizar el calculo hasta obtener la raiz aproximada según la tolerancia dada. Elaboraremos una tabla de cálculos en Excel para ver como se va aproximando a la raiz de la ecuacion dada.

Raiz Aproximada

ITERA Xi Xs f(Xi) f(Xs) Xr f(Xr) Error1 2 4 0.693147181 -0.613705639 3 0.0986122892 3 4 0.098612289 -0.613705639 3.5 -0.247237032 503 3 3.5 0.098612289 -0.247237032 3.25 -0.071345004 254 3 3.25 0.098612289 -0.071345004 3.125 0.014434283 12.55 3.125 3.25 0.014434283 -0.071345004 3.1875 -0.02826309 6.256 3.125 3.1875 0.014434283 -0.02826309 3.15625 -0.006865386 3.1257 3.125 3.15625 0.014434283 -0.006865386 3.140625 0.003796825 1.56258 3.140625 3.15625 0.003796825 -0.006865386 3.1484375 -0.001531202 0.781259 3.140625 3.1484375 0.003796825 -0.001531202 3.14453125 0.001133583 0.39062510 3.14453125 3.1484375 0.001133583 -0.001531202 3.146484375 -0.000198617 0.195312511 3.14453125 3.146484375 0.001133583 -0.000198617 3.145507813 0.000467531 0.0976562512 3.145507813 3.146484375 0.000467531 -0.000198617 3.145996094 0.000134469 0.04882812513 3.145996094 3.146484375 0.000134469 -0.000198617 3.146240234 -0.000032071 0.02441406314 3.145996094 3.146240234 0.000134469 -0.0000320708 3.146118164 0.000051200 0.01220703115 3.146118164 3.146240234 0.00005120 -0.0000320708 3.146179199 0.000009565 0.00610351616 3.146179199 3.146240234 0.00000956 -0.0000320708 3.146209717 -0.000011253 0.00305175817 3.146179199 3.146209717 0.00000956 -0.0000112530 3.146194458 -0.000000844 0.00152587918 3.146179199 3.146194458 0.00000956 -0.0000008441 3.146186829 0.000004360 0.00076293919 3.146186829 3.146194458 0.00000436 -0.0000008441 3.146190643 0.000001758 0.0003814720 3.146190643 3.146194458 0.00000176 -0.0000008441 3.146192551 0.000000457 0.00019073521 3.146192551 3.146194458 0.00000046 -0.0000008441 3.146193504 -0.000000194 0.0000953674

Raiz Aproximada

Método de la BiseccionSea la ecuacion f(x)=3x2-2x-10, encuentre las posibles raices de la ecuacion, use el método grafico, y encuentre el error aproximado

Primera Raiz

Segunda Raiz

código para la función que implementa el método de bisección en Fortran – CHAPRA V-ED.

%%Programa por método de biseccion%% fortran a matlabclear allclcxl=2; % 2; %0;xu=3; %4; %1;xr=0.25; es=0.001;imax=100; iter=0;while (iter<imax)xrold = xr;xr = (xl + xu)/2;iter = iter + 1;if xr ~= 0 ea=abs((xr -xrold)/xr)*100;endtest = f(xl) * f(xr);if test<0xu = xr;elseif test>0xl = xr;elseea = 0;end

if ea<es breakendendBisect = xr

El archivo function tiene el nombre de f.mfunction bisect = f(x )%bisect=exp(-x)-x;%bisect=log(x)-x+2;bisect=3*x^2-2*x-10;end

El código de la bisección anterior es adecuado si se quiere realizar la evaluación de una sola raíz de una función que es fácil de evaluar. Sin embargo, hay muchos casos en ingeniería que no son así. Por ejemplo, suponga que se quiere desarrollar un programa computacional que localice varias raíces. En tales casos, se tendría que llamar al programa anterior miles o aun millones de veces en el transcurso de una sola ejecución.Debido a ambos factores es imperativo que los algoritmos numéricos minimicen las evaluaciones de una función. A la luz de estas consideraciones, el programa anterior es deficiente. En particular, observe que al hacer dos evaluaciones de una función por iteración, vuelve a calcular una de las funciones que se determinó en la iteración anterior.El programa siguiente proporciona un algoritmo modificado que no tiene esta deficiencia. Se han puesto un comentario en las líneas que difieren del programa anterior. En este caso, únicamente se calcula el valor de la nueva función para aproximar la raíz. Los valores calculados previamente son guardados y simplemente reasignados conforme el intervalo se reduce. Así, las 2n evaluaciones de la función se reducen a n + 1.

%%Programa mejoradoclear allclcxl=2; % 2; %0;xu=3; %4; %1;xr=0.25;es=0.001;imax=100;iter=0;fl = f(xl); %Linea adicionadawhile (iter<imax)xrold = xr;xr = (xl + xu)/2;fr = f(xr); %Linea adicionadaiter = iter + 1;if xr ~= 0 ea=abs((xr -xrold)/xr)*100;endtest = fl * fr; %Linea cambiadaif test<0xu = xr;

elseif test>0xl = xr;fl=fr; %Linea adicionadaelseea = 0;endif ea<es breakendenddisp('Nuevo cambios al anterior programa')Bisect = xr

METODO DE NEWTON RAPHSON

Algoritmo de Newton Raphson

Interpretación grafica del método de Newton Raphson

MÉTODO DE REGULA FALSISoluciona ecuaciones no lineales tipo f(x)=0Requisitos para empezar: lo mismo que en el Método de BisecciónEste método es similar al de la bisección salvo que la siguiente iteración se toma en la intersección de una recta entre el par de valores x y el eje de las abscisas en lugar de tomar el punto medio. El reemplazo de la curva por una línea recta da una “posición falsa” de la raíz, de aquí el nombre de método de la regla falsa.

Para aplicarlo se eligen los extremos xL y xU del intervalo entre los que se encuentra la raíz, verificando que se cumpla que f(xL). f(xU) < 0. Si se observa la Figura, por semejanza de triángulos, puede escribirse la siguiente igualdad:

f(xL)

f(xU)

Y despejando de la expresión el valor de xM, que es una aproximación de la raíz, se obtiene la siguiente fórmula de iteración o recurrencia:

El valor de xM, calculado con la ecuación anterior, reemplaza a uno de los dos valores, xL o xU que produzca un valor de la función que tenga el mismo signo de f(xM). De esta manera los valores xL y xU siempre encierran a la raíz.

Si f(xM)=0 el proceso termina.Si f(xM) tiene el mismo signo de f(xL), el próximo paso es elegir xL = xM y xU = xU.Si f(xM) tiene el mismo signo de f(xU) el próximo paso es elegir xL = xL y xU = xM.El proceso se repite en la misma forma hasta llegar a la cota de error.

Algoritmo para el método de la Falsa PosiciónPermite encontrar una solución a la ecuación f(x)=0, dada la función continua f en el intervalo [xL, xU], considerando la siguiente notación:xL: límite inferior del intervalo consideradoxU: límite superior del intervalo consideradoxM: raíz aproximada

f(xL): valor de la función en xLf(xU): valor de la función en xUE: cota de error o criterio de detenciónN: número máximo de iteraciones

Aplicación: Utilice el método de la posicion falsa para obtener una raiz real del polinomiof(x) = x3+2x2+10x-20Solucion: Implementado en una hoja de calculo

Código en MatLab para la regla falsa%Metodo de la regla falsafunction raiz=reglafalsa(fdex,i,s,e)j=1;fi=feval(fdex,i);fs=feval(fdex,s);r=((i*fs)-(s*fi))/(fs-fi);fr=feval(fdex,r);h=abs(r);if fi*fs<0 ep=100; ant=0; fprintf(' Nro i r s fi fr fs ep\n') fprintf('-----------------------------------------------------------------------------------------------------------------------\n')

while h>e fi=feval(fdex,i); fs=feval(fdex,s); r=((i*fs)-(s*fi))/(fs-fi); fr=feval(fdex,r); ep=abs((r-ant)/r)*100; fprintf('%5d %8.6f %8.6f %8.6f %8.6f %8.6f %8.6f %8.4f\n',j,i,r,s,fi,fr,fs,ep); ant=r; h=abs(fr); j=j+1; if fi*fr<0 s=r; else i=r end endelse fprintf('Cambiar limites');end

function y=fdex(x)y=exp(-x)-x;endEjecución del programa en la ventana de comandos>> reglafalsa('fdex',0,1,0.00001) Nro i r s fi fr fs ep--------------------------------------------------------------------------------------------------------------------- 1 0.000000 0.612700 1.000000 1.000000 -0.070814 -0.632121 100.0000 2 0.000000 0.572181 0.612700 1.000000 -0.007888 -0.070814 7.0814 3 0.000000 0.567703 0.572181 1.000000 -0.000877 -0.007888 0.7888 4 0.000000 0.567206 0.567703 1.000000 -0.000098 -0.000877 0.0877 5 0.000000 0.567150 0.567206 1.000000 -0.000011 -0.000098 0.0098 6 0.000000 0.567144 0.567150 1.000000 -0.000001 -0.000011 0.0011

%Programa aplicando el metodo de la regla falsa%Autor: WIWI&DATAclear allclcxl=input('Ingrese valor inferior del intervalo: ');xu=input('Ingrese valor superior del intervalo: ');error=input('Ingrese error: ');fxl=xl^3+2*xl^2+10*xl-20; %Funcion fxu=xu^3+2*xu^2+10*xu-20; %Funcioni=1;maxiter=100;xm=xu-((xu-xl)*fxu)/(fxu-fxl);while abs(xm)>error fxm=xm^3+2*xm^2+10*xm-20; %Funcion if (fxl<0 & fxm<0) xl=xm; else xu=xm; end

fxl=xl^3+2*xl^2+10*xl-20; %Funcion fxu=xu^3+2*xu^2+10*xu-20; %Funcionxm=xu-((xu-xl)*fxu)/(fxu-fxl); i=i+1;if i>maxiter breakendendfprintf('La raiz aproximada es %8.6f\n',xm)

Ingrese valor inferior del intervalo: 1Ingrese valor superior del intervalo: 2Ingrese error: 0.00001La raiz aproximada es 1.368808

PROBLEMAS TIPOS

PROBLEMA 1La concentración C de una bacteria contaminante en un lago decrece según la expresión: C(t) = 80e-2t + 20e-0.5t siendo t el tiempo en horas. Determinar el tiempo que se necesita para que el numero de bacterias se reduzca a 7 (Utilizar el método de Newton)Debemos hallar la raiz de c(t) = 7, o lo que es lo mismo, definiendo f(t) = c(t) − 7, tenemos que hallar un cero para f. Ambas funciones, C y f tienen por derivada a la funcion f’(t) = −160e−2t −10e−t/2. Al ser negativa, sabemos que las funciones c y f son decrecientes estrictamente, luego si existe solución, es única. Como C(0) = 100 y límt

C(t) = 0, en tiempo positivo la funcion C (que es continua) tomara todos los valores del intervalo (0, 100].

clear allclct0=2;error=1e-03;for i=1:40 f=80*exp(-2*t0)+20*exp(-0.5*t0)-7; df=-160*exp(-2*t0)-10*exp(-t0/2); t1=t0-f/df; control=abs((t1-t0)/t1); fprintf('%12.6f %10.6f\n',t0, t1) if control<error disp('La raiz') fprintf('%12.6f \n', t1) break endt0=t1; end

2.000000 2.275799 2.275799 2.327681 2.327681 2.329087La raiz 2.329087

PROBLEMAResolver la siguiente ecuacion, utilizando el método Newton

Encontrar el valor de f , si se tiene que Re=6000 y n=0.4SOLUCION.Vamos a considerar que la funcion log de la ecuacion es log10

……1

Reemplazando valores de Re y n en la ecuacion 1, tenemos:

……2

Observamos que la ecuacion es implícita, incógnita f se encuentra en ambos miembros, haremos un cambio de variable de tal forma que la ecuacion sea: f(x) = 0

0.810

1 7.952707* (6000* ) 1.201124Log ff

= -

1xf

= Además ,

1fx

= Reemplazando en la ecuacion 2

0.8107.952707* (6000* ) 1.201124x Log x-= - …3

Haciendo f(x) = 0 la ecuacion 3, nos da: 0.8

107.952707* (6000* ) 1.201124 0F x Log x-= - + = …4

( 4*7.952707)1 (5* * (10))dFx Ln

-= -

Para usar el algoritmo de Newton necesitamos la derivada de la funcion F, lo cual derivando nos da:

….5

i+1X i

ii

F XX

dF X= - …6

Implementando en una hoja de calculo

Para la ecuacion se obtiene la raiz aproximada de x = 20.4998271, sin embargo como se hizo el cambio de variable es decir x = 1 / f por lo tanto despejando f la solución de la ecuacion seria f = 1/x lo cual nos da:

Que viene a ser el coeficiente de fricción para una tubería de algún material que se deberá especificar (Flujo viscoso, Flujo turbulento, Hidráulica,)

clear allclcx=2;error=1e-04;for i=1:100 f=x-7.952707*log10(6000*x^(-0.8))-1.201124; df=1-((-4*7.952707)/(5*x*log(10))); x1=x-f/df; control=abs((x1-x)/x1); fprintf('%12.6f %10.6f\n',x,x1) if control<error disp('La raiz') fprintf('%12.6f \n', x1) break endx=x1; endxx=x1;f=1/xx;fprintf('Coeficiente de friccion f = %12.6f\n',f)

2.000000 13.476861 13.476861 22.260238 22.260238 22.628710 22.628710 22.629043La raiz 22.629043 Coeficiente de friccion f = 0.044191

COMPARATIVO DE LOS ERRORES RELATIVOS ESTIMADOS, POR DIFERENTES MÉTODOS

• Los métodos de bisección, de regla falsa y de punto fijo convergen linealmente al valor verdadero de la raíz.– El error relativo verdadero es proporcional y menor

que el error correspondiente de la iteración anterior.

– En bisección y regla falsa, la convergencia está garantizada.

– En punto fijo, la convergencia depende de que la pendiente de la tangente no sobrepase el 1, en positivo o en negativo.

• Los métodos de Newton Raphson y de la secante convergen cuadráticamente al valor verdadero de la raíz.– El error relativo verdadero es proporcional al

cuadrado del error correspondiente de la iteración anterior.

– Cuando el error relativo en una iteración es menor que 1 (inferior al 100%), la convergencia está garantizada.

– Cuando el error relativo en una iteración es mayor que 1, la divergencia está garantizada.

TAREA1.-

2.- Usar Newton

3.- Usar cualquiera de los métodos que se acomoden al problema

abc