Ataurima M. - Método de Newton Raphson en MATLAB
-
Upload
miguel-ataurima-arellano -
Category
Documents
-
view
94 -
download
2
Transcript of 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
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
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
� 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
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
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
� Solución MATLAB:
6