Ataurima M. - Método de Newton Raphson en MATLAB

6
MØtodo de Newton Raphson para la resolucin de un Sistema de Ecuaciones No Lineales Miguel Ataurima Arellano [email protected] 1 El Gradiente y la Derivada (Diferencial) 1.1 El Gradiente El gradiente (o el campo vectorial gradiente) de una funcin escalar f : R n ! R es denotado mediante rf donde r (el smbolo nabla) denota el operador diferencial vectorial, del. La notacin grad (f ) es tambiØn comœnmente usada para el gradiente. El gradiente de f es denido como un œnico campo vectorial cuyo producto interno con cualquier vector unitario v en cualquier punto x es la derivada direccional de f a lo largo de v. Esto es, (rf (x)) v = D v f (x) En un sistema de cordenadas rectangulares, el gradiente es el campo vectorial cuyos componentes son las derivadas parciales de f rf = @f @x 1 e 1 + + @f @x n e n donde e i son los vectores unitarios ortogonales apuntando en las direcciones de las coordenadas. Cuando una funcin solo depende de un parÆmetro como el tiempo, el gradiente hace tambiØn referencia al vector de solo sus derivadas parciales espaciales. 1.2 Aproximacin lineal a una funcin El gradiente de una funcin f : R n ! R en cualquier punto particular x 0 en R n caracteriza a la mejor aproximacin lineal de f en x 0 . La aproximacin es como sigue f (x) f (x 0 )+(rf (x 0 )) (x x 0 ) para todo x cercano a x 0 , donde (rf (x 0 )) es el gradiene de f evaluado en x 0 , y el punto () denota el producto punto sobre R n . Esta ecuacin es equivalente a los primeros dos tØrminos de la expansin en Series de taylor multivariable de f en x 0 : 1.3 El Diferencial o la Derivada (exterior) La mejor aproximacin a la funcin f : R n ! R en un punto x en R n es un mapeo lineal de R n a R el cual es a menudo denotado por df x oDf (x) y es llamado el Diferencial o Derivada (total) de f en x. El gradiente es por lo tanto relacionado al diferencial mediante la frmula (rf (x)) v = df x (v)= D v f (x) para cualquier v 2 R n . La funcin Df , que mapea x aDf (x), es llamada el diferencial o derivada exterior de f y es un ejemplo de un diferencial de clase 1. Si R n es visto como un espacio de (longitud n) vectores columna (de nœmeros reales), entonces uno puede considerar Df como un vector la. Df = @f @x 1 @f @x n = @ @x 1 @ @x n | {z } D f 1

Transcript of Ataurima M. - Método de Newton Raphson en MATLAB

Page 1: Ataurima M. - Método de Newton Raphson en MATLAB

Método de Newton Raphson para la resolución de un Sistemade Ecuaciones No Lineales

Miguel Ataurima Arellano

[email protected]

1 El Gradiente y la Derivada (Diferencial)

1.1 El Gradiente

El gradiente (o el campo vectorial gradiente) de una función escalar f : Rn ! R es denotado medianterf donde r (el símbolo nabla) denota el operador diferencial vectorial, del. La notación grad (f) estambién comúnmente usada para el gradiente.El gradiente de f es de�nido como un único campo vectorial cuyo producto interno con cualquier

vector unitario v en cualquier punto x es la derivada direccional de f a lo largo de v. Esto es,

(rf (x)) � v = Dvf (x)

En un sistema de cordenadas rectangulares, el gradiente es el campo vectorial cuyos componentes sonlas derivadas parciales de f

rf = @f

@x1e1 + � � �+

@f

@xnen

donde ei son los vectores unitarios ortogonales apuntando en las direcciones de las coordenadas. Cuandouna función solo depende de un parámetro como el tiempo, el gradiente hace también referencia al vectorde solo sus derivadas parciales espaciales.

1.2 Aproximación lineal a una función

El gradiente de una función f : Rn ! R en cualquier punto particular x0 en Rn caracteriza a la mejoraproximación lineal de f en x0. La aproximación es como sigue

f (x) � f (x0) + (rf (x0)) � (x� x0)

para todo x cercano a x0, donde (rf (x0)) es el gradiene de f evaluado en x0, y el punto (�) denota elproducto punto sobre Rn. Esta ecuación es equivalente a los primeros dos términos de la expansión enSeries de taylor multivariable de f en x0:

1.3 El Diferencial o la Derivada (exterior)

La mejor aproximación a la función f : Rn ! R en un punto x en Rn es un mapeo lineal de Rn a R elcual es a menudo denotado por dfx o Df (x) y es llamado el Diferencial o Derivada (total) de f enx. El gradiente es por lo tanto relacionado al diferencial mediante la fórmula

(rf (x)) � v = dfx (v) = Dvf (x)

para cualquier v 2 Rn.La función Df , que mapea x a Df (x), es llamada el diferencial o derivada exterior de f y es un

ejemplo de un diferencial de clase 1.Si Rn es visto como un espacio de (longitud n) vectores columna (de números reales), entonces uno

puede considerar Df como un vector �la.

Df =�@f

@x1� � � @f

@xn

�=

�@

@x1� � � @

@xn

�| {z }

D

f

1

Page 2: Ataurima M. - Método de Newton Raphson en MATLAB

de tal manera que Df (x) es obtenido mediante una multiplicación matricial. El gradiente es entonces elcorrespondiente vector columna

rf = [Df ]T =

266664@f

@x1...@f

@xn

377775 =266664

@

@x1...@

@xn

377775| {z }DT=r

f = DT f

2 Series de Taylor en varias variables

La expansión en Series de Taylor de f : Rn ! R alrededor del punto x0 en Rn es

f (x) = f (x0) + (x� x0)T DfT (x0)| {z }gradiente

+1

2!(x� x0)T D2f (x0)| {z }

hessiano

(x� x0) + � � �

donde:

� DfT (x0) es el gradiente de f evaluado en x0, rf (x0);

DfT (x0) = rf (x0) =

266664@

@x1...@

@xn

377775 f (x0)

� D2f (x0) es la matriz hessiana.

D2f (x0) = DT [Df (x0)] =�DTD

�f (x0) =

�rrT

�f (x0)

D2f (x0) =

266664@

@x1...@

@xn

377775�@

@x1� � � @

@xn

�f (x0)

D2f (x0) =

2666664@2

@x21� � � @2

@x1@xn...

. . ....

@2

@xn@x1� � � @2

@x2n

3777775 f (x0) = H (f (x0))

Utilizando la notación multi índice las Series de Taylor para varias variables se convierte en

f (x) =Xj�j�0

(x� x0)a

�!(@�f) (x0)

Para el caso n = 2 tenemos que:

� x� x0 =�x1x2

���x01x02

�=

�x1 � x01x2 � x01

� DfT (x0) =

2664@f (x0)

@x1

@f (x0)

@xn

3775 = � f1 (x0)f2 (x0)

2

Page 3: Ataurima M. - Método de Newton Raphson en MATLAB

� D2f (x0) =

26664@2f (x0)

@x21

@2f (x0)

@x1@x2

@2f (x0)

@x2@x1

@2f (x0)

@x22

37775 =�f11 (x0) f12 (x0)f21 (x0) f22 (x0)

reemplazando

f (x) = f (x0)+�x1 � x01 x2 � x02

� � f1 (x0)f2 (x0)

�+1

2!

�x1 � x01 x2 � x02

� � f11 (x0) f12 (x0)f21 (x0) f22 (x0)

�"x1 � x01x2 � x02

#+� � �

considerando que:�x1 � x01 x2 � x02

� � f1 (x0)f2 (x0)

�=�x1 � x01

�f1 (x0) +

�x2 � x02

�f2 (x0)

y �x1 � x01 x2 � x02

� � f11 (x0) f12 (x0)f21 (x0) f22 (x0)

�" x1 � x01x2 � x02

#

=��x1 � x01

�f11 (x0) +

�x2 � x02

�f21 (x0)

�x1 � x01

�f12 (x0) +

�x2 � x02

�f22 (x0)

� " x1 � x01x2 � x02

#=

��x1 � x01

�f11 (x0) +

�x2 � x02

�f21 (x0)

� �x1 � x01

�+��x1 � x01

�f12 (x0) +

�x2 � x02

�f22 (x0)

� �x2 � x02

�=

�x1 � x01

�2f11 (x0) + 2

�x1 � x01

� �x2 � x02

�f12 (x0) +

�x2 � x02

�2f22 (x0)

tenemos que

f (x) = f (x0) +�x1 � x01

�f1 (x0) +

�x2 � x02

�f2 (x0)

+1

2!

h�x1 � x01

�2f11 (x0) + 2

�x1 � x01

� �x2 � x02

�f12 (x0) +

�x2 � x02

�2f22 (x0)

i+ � � �

3 Series de Taylor de una función vectorial de varias variables

La expansión en Series de Taylor de una función vectorial f : Rn ! Rm

f (x) =

264 f1 (x)...

fm (x)

375alrededor del punto x0 en Rn es

f1 (x) = f1 (x0) +Df1 (x0) (x� x0) +1

2!(x� x0)T D2f1 (x0) (x� x0) + � � �

...

fm (x) = fm (x0) +Dfm (x0) (x� x0) +1

2!(x� x0)T D2fm (x0) (x� x0) + � � �

aproximando sólo con dos términos de la expansión (forma lineal)

f1 (x) = f1 (x0) + (x� x0)T DfT1 (x0) + � � �...

fm (x) = fm (x0) + (x� x0)T DfTm (x0) + � � �

como (x� x0)TDfTi (x0) es un escalar para todo i = 1; ::;m entonces

(x� x0)T DfTi (x0) =h(x� x0)T DfTi (x0)

iT= Dfi (x0) (x� x0)

3

Page 4: Ataurima M. - Método de Newton Raphson en MATLAB

luego

f1 (x) = f1 (x0) +Df1 (x0) (x� x0) + � � �...

fm (x) = fm (x0) +Dfm (x0) (x� x0) + � � �

agrupando 264 f1 (x)...

fm (x)

375| {z }

f(x)

=

264 f1 (x0)...

fm (x0)

375| {z }

f(x0)

+

264 Df1 (x0) (x� x0)...

Dfm (x0) (x� x0)

375+ � � �

f (x) = f (x0) +

264 Df1 (x0)...

Dfm (x0)

375| {z }

J(f(x0))

(x� x0) + � � �

f (x) = f (x0) + J (f (x0)) (x� x0) + � � �

donde J(f (x0)) es una matriz m� n denominada matriz jacobiana.

J (f (x0)) =

264 Df1 (x0)...

Dfm (x0)

375 =266664@f1 (x0)

@x1� � � @f1 (x0)

@xn...

...@fm (x0)

@x1� � � @fm (x0)

@xn

3777754 Método de Newton Raphson

Un sistema de ecuaciones no lineal de n ecuaciones y n incógnitas

f1 (x1; : : : ; xn) = 0

...

fn (x1; : : : ; xn) = 0

puede ser expresado en forma vectorial como

f (x) = 0

donde x =

264 x1...xn

375 2 Rn y f : Rn ! Rn tal que

fi (x) = fi (x1; : : : ; xn) = 0

El método de NR para la solución iterativa de un sistema de ecuaciones no lineal parte de la expansiónen Series de Taylor alrededor de un punto de partida inicial x0 cercano a la solución del sistema x�,considerando sólo hasta el segundo término, o sea tomando una aproximación lineal de f (x)

f (x�) � f�x0�+ J (f (x0))

�x� � x0

�dado que x� es la raíz de f , entonces f (x�) = 0, reemplazando

0 � f�x0�+ J

�f�x0�� �

x� � x0�

4

Page 5: Ataurima M. - Método de Newton Raphson en MATLAB

despejamos el primer valor aproximado de x� obtenido a partir del valor dado de partida x0

J�f�x0�� �

x� � x0�� �f

�x0�

x� � x0 � ��J�f�x0����1

f�x0�

x� � x0 ��J�f�x0����1

f�x0�| {z }

valor aproximado de x�

denotando a este primer valor aproximado mediante

x1 = x0 ��J�f�x0����1

f�x0�

podemos repetir el proceso considerando como nuevo punto de partida a x1 obteniendo una segundanueva aproximación

x2 = x1 ��J�f�x1����1

f�x1�

y así sucesivamente repetir este proceso, observando que la k�ésima aproximación será dependiente dela anterior

xk = xk�1 �hJ�f�x(k�1)

��i�1f�x(k�1)

�(1)

Este proceso arrojará una sucesión de aproximaciones�x1;x2; : : : ;xk�1;xk; :::

=�xkk�1

la cual, en caso el método sea exitoso, debe de converger al verdadero valor de la raíz

limk!1

�xk= x�

Si cada nueva aproximación esta cada vez mas cerca del verdadero valor de la raíz, entonces, dado unnivel de precisión especi�cado por el número d de cifras decimales exactas que se desea obtener, bastarácon iterar hasta aquella k�ésima aproximación tal que se cumpla la siguiente condición de tolerancia: xk � xk�1 < " (2)

donde " = 10�d.es la tolerancia o el nivel de error relativo.y k�k es la norma euclidiana.Como generalmente la mayoría de aplicaciones requieren una aproximación de hasta de tres cifras

decimales signi�cativas, la tolerancia " se ajusta al valor de 10�3:Por otro lado, como es posible que el método fracase; es decir, que la sucesión de aproximaciones no

converga al verdadero valor de la raíz, se debe especi�car un máximo número de iteraciones de búsquedade aproximaciones

k � kmax (3)

de manera que si el programa no halla la aproximación deseada, o sea el método no logra obtener unaaproximación que satisfaga (2) después de haber iterado kmax veces, se deberá detener el proceso iterativode búsqueda de nuevas aproximaciones dado por (1), reportando que el método no ha sido exitoso. Eneste caso, sería recomendable que el programa sugiera al usuario ingresar un nuevo valor de partida x0

con el cual se reiniciaría el proceso iterativo pudiéndose lograr hallar la aproximación al verdadero valorde la raíz con el nivel de tolerancia " deseado y dentro del número máximo de iteraciones permitido.

5 Implementación en MATLAB

EJEMPLO: Resolver el sistema

x2 � y � 4 = 01

2x� y = 0

5

Page 6: Ataurima M. - Método de Newton Raphson en MATLAB

� Solución MATLAB:

6