Documentos de Académico
Documentos de Profesional
Documentos de Cultura
An-09 Sistemas No Lineales
An-09 Sistemas No Lineales
c c (
(
c c ( (
(
=
( (
( c c
(
c c
Estas ecuaciones lineales, provienen de suposiciones y simplificaciones, y definen un mtodo
para obtener la solucin en forma aproximada.
f, g y sus derivadas se deben evaluar en un punto dado x
i
, y
i
. Al resolver el sistema se obtienen
valores de h, k y con estos valores y se obtienen nuevos valores de x
i+1
, y
i+1
La notacin matricial se puede extender a sistemas con ms ecuaciones no lineales. La matriz
de las derivadas parciales se denomina Jacobiano del sistema.
En forma general la convergencia del mtodo de Newton para sistemas no lineales requiere que:
a) f, g as como sus derivadas sean continuas en la regin en la que se aplica el mtodo y
que debe estar cerca de la raz.
a) El determinante del Jacobiano no se anule en esta regin
b) El valor inicial se elija cerca de la raz que se intenta calcular
2.4.2 Clculo de races reales de un sistema de dos ecuaciones no-lineales
Algoritmo:
1) Elegir los valores iniciales para x
i
, y
i
cercanos a la raz r, s que se desea calcular
2) Evaluar f, g, y sus derivadas con los valores de x
i
, y
i
. Sustituir y obtener los valores de h, k
resolviendo el sistema de ecuaciones lineales
i i
i
i i i
f f
f h x y
g g g k
x y
c c (
(
c c ( (
(
=
( (
( c c
(
c c
i
i
i
i
i i
i i
f
f
y
g
g
y
h
f f
x y
g g
x y
c
c
c
c
=
c c
c c
c c
c c
i
i
i
i
i i
i i
f
f
x
g
g
x
k
f f
x y
g g
x y
c
c
c
c
=
c c
c c
c c
c c
3) Obtener los nuevos valores de x
i
, y
i
de la definicin de h y k
i 1 i
i 1 i
h x x
k y y
+
+
=
=
i 1 i
i 1 i
x x h
y y k
+
+
= +
= +
Los pasos 2), y 3) se repiten hasta que las diferencias entre dos valores consecutivos de x, y
sean muy pequeas (convergencia), o hasta que se observe numricamente la divergencia
ANLISIS NUMRICO ICM ESPOL
Ing. Luis Rodrguez Ojeda, msC.
.
Ejemplo. Realizar una iteracin con el mtodo de Newton para resolver el sistema no lineal
f(x, y) = (x 2)
2
+ (y 1)
2
3 = 0
g(x, y) = x e
x+y
3 = 0
Sistema de ecuaciones lineales correspondiente
i i
i
i i i
f f
f h x y
g g g k
x y
c c (
(
c c ( (
(
=
( (
( c c
(
c c
i i i i
i i
2 2
i i
i i
x y x y
x y
i i
i
2x 4 2y 2
[(x 2) (y 1) 3] h
k
e (1 x ) x e
(x e 3)
+ +
+
( ( + (
= (
(
(
+ ( (
Valores iniciales tomados del grfico
0 0
x 0.5, y 1.5 = =
Primera iteracin: i = 0
2 2
0.5 1.5 0.5 1.5
0.5 1.5
2(0.5) 4 2(1.5) 2
h [(0.5 2) (1.5 1) 3]
k
e (1 0.5) 0.5e
(0.5e 3)
+ +
+
( ( + (
= (
(
(
+
(
3 1 h 0.5
11.0836 3.6945 k 0.6945
( ( (
=
( ( (
Solucin del sistema
h 0.1147
k 0.1560
( (
=
( (
De donde
1 0
1 0
x x h 0.5 0.1147 0.3853
y y k 1.5 0.1560 1.6560
= + = =
= + = + =
(nuevos valores calculados)
2.4.3 Instrumentacin computacional en MATLAB del mtodo de Newton
para un sistema dos ecuaciones no-lineales
Se escribe una funcin para que sea usada iterativamente. La convergencia se la controlar
desde la ventana de comandos. La funcin recibe f, g y un valor para (x,y) y entrega una nueva
aproximacin para (x,y). Las definiciones de f, g deben ingresar como expresiones entre
comillas para poder obtener sus derivadas. La evaluacin requiere el uso de la funcin eval.
function [x, y] = newton2(f, g, x, y)
fx=diff(f,'x');
fy=diff(f,'y');
gx=diff(g,'x');
gy=diff(g,'y');
d=eval(fx)*eval(gy)-eval(gx)*eval(fy);
h=(-eval(f)*eval(gy)+eval(g)*eval(fy))/d;
k=(-eval(fx)*eval(g)+eval(gx)*eval(f))/d;
x=x+h;
y=y+k;
ANLISIS NUMRICO ICM ESPOL
Ing. Luis Rodrguez Ojeda, msC.
Ejemplo. Use la funcin newton2 para encontrar una raz real del sistema
f(x, y) = (x 2)
2
+ (y 1)
2
3 = 0
g(x, y) = x e
x+y
3 = 0
El grfico de estas dos ecuaciones est en una pgina anterior
>> format long
>> f= '(x-2)^2 + (y-1)^2-3'; (Definicin de las ecuaciones)
>> g= 'x*exp(x+y)-3';
>> x=0.5; (Valores iniciales tomados del grfico)
>> y=1.5;
>> [x, y]=newton2(f,g,x,y) (Se envan x, y y se reciben los nuevos valores)
x =
0.385335283236613
y =
1.656005849709838
>> [x, y]=newton2(f,g,x,y)
x =
0.391864405883674
y =
1.643505096490861
>> [x, y]=newton2(f,g,x,y)
x =
0.391903529622575
y =
1.643448324819762
>> [x, y]=newton2(f,g,x,y)
x =
0.391903530498490
y =
1.643448323314919
>> [x, y]=newton2(f,g,x,y)
x =
0.391903530498490
y =
1.643448323314918
El comando se reutiliza retrocediendo con el cursor. Se observa la rpida convergencia.
Para verificar que son races reales de las ecuaciones deben evaluarse f, g
>> eval(f)
ans =
-4.440892098500626e-016
>> eval(g)
ans =
8.881784197001252e-016
Los valores obtenidos son muy pequeos, por lo cual se aceptan las races calculadas
ANLISIS NUMRICO ICM ESPOL
Ing. Luis Rodrguez Ojeda, msC.
Para calcular la otra raz, tomamos del grfico los valores iniciales cercanos a esta raz
>> x=1.5;
>> y=-0.5;
>> [x, y]=newton2(f,g,x,y)
x =
1.426819161757163
y =
-0.642273053919054
>> [x, y]=newton2(f,g,x,y)
x =
1.391067906070677
y =
-0.622002086736185
>> [x, y]=newton2(f,g,x,y)
x =
1.390289467200878
y =
-0.621189172487424
>> [x, y]=newton2(f,g,x,y)
x =
1.390289190253727
y =
-0.621188677630974
>> [x, y]=newton2(f,g,x,y)
x =
1.390289190253667
y =
-0.621188677630852
>> [x, y]=newton2(f,g,x,y)
x =
1.390289190253668
y =
-0.621188677630852
>> eval(f) (Comprobar si es una solucin del sistema)
ans =
4.440892098500626e-016
>> eval(g)
ans =
4.440892098500626e-016
2.4.4 Uso de funciones especiales de MATLAB para resolver sistemas no-lineales
La funcin solve de MATLAB se puede usar para resolver sistemas no lineales como el ejemplo
anterior:
>> [x,y] = solve('(x-2)^2 + (y-1)^2 = 3', 'x*exp(x+y) = 3')
x =
1.3902891902536674744306589782101
y =
-0.62118867763085228825257239065302
El mtodo solve proporciona solamente una de las dos soluciones. Con esto concluimos que no
siempre los programas computacionales disponibles producen las respuestas esperadas.