Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2.4
ICM ESPOL
En general este es un problema difcil, por lo que es conveniente intentar reducir el nmero de
ecuaciones y en caso de llegar a una ecuacin, poder aplicar alguno de los mtodos conocidos.
Si no es posible reducir el sistema, entonces se intenta resolverlo con algn mtodo especial
para sistemas de ecuaciones no-lineales.
Debido a que el estudio de la convergencia de estos mtodos es complicado, se prefiere utilizar
algn mtodo eficiente, de tal manera que numricamente pueda determinarse la convergencia o
divergencia con los resultados numricos obtenidos.
Una buena estrategia consiste en extender el mtodo de Newton, cuya convergencia es de
segundo orden, al caso de sistemas de ecuaciones no lineales. Esto permite determinar la
convergencia o divergencia rpidamente. En esta seccin se describe un ejemplo de un sistema
de dos ecuaciones no lineales. La solucin se la obtendr posteriormente con el mtodo
propuesto.
Dos ecuaciones con dos variables an pueden visualizarse en un plano. Las races reales son
las intersecciones de sus grficos.
Fig. 9.1
El grfico se obtuvo con los siguientes comandos y el editor de grficos de MATLAB:
>> f='(x-2)^2+(y-1)^2-3';
>> g='x*exp(x+y)-3';
>> ezplot(f,[0,4,-2,4]), grid on, hold on
>> ezplot(g,[0,4,-2,4])
ANLISIS NUMRICO
ICM ESPOL
2.4.1
Obtencin de una frmula iterativa de segundo orden para calcular races de dos
ecuaciones no lineales
Sean
Sean r, s valores reales tales que f(r,s) = 0, g(r,s) = 0, entonces r, s constituyen una raz real
del sistema y es de inters calcular su valor.
Suponer que f, g son funciones diferenciables en alguna regin cercana a r, s.
Con el desarrollo de la serie de Taylor expandimos f, g desde un punto xi, yi Por simplicidad se
usar la siguiente notacin: fi = f(xi, yi), fi+1 = f(xi+1, yi+1)
fi
f
2
2
+ (yi+1 yi) i + O(xi+1 xi) + O(yi+1 yi)
x
y
g
g
2
2
gi+1 = gi + (xi+1 xi) i + (yi+1 yi) i + O(xi+1 xi) + O(yi+1 yi)
x
y
En los ltimos trminos de ambos desarrollos no se han escrito las derivadas, sino nicamente
los componentes de inters, usando la notacin O( ).
fi+1 = fi + (xi+1 xi)
Se realizan algunas suposiciones, las cuales son aceptables en una regin muy cercana a r, s:
xi cercano a r
yi cercano a s
Si el mtodo tiene convergencia cuadrtica entonces xi+1, yi+1 sern muy cercanos a r, s:
xi+1 r
yi+1 s
Por lo tanto se puede suponer que:
f(xi+1, yi+1) 0
g(xi+1, yi+1) 0
Por otra parte, si xi, yi son valores cercanos a xi+1, yi+1, las diferencias xi+1 - xi , yi+1 - yi sern
pequeas, y al elevarse al cuadrado se obtendrn valores mucho mas pequeos y se los omite.
Por ltimo, se definen estas diferencias:
h = xi+1 xi
k = yi+1 yi
Sustituyendo todo en el desarrollo propuesto se obtiene como aproximacin el sistema lineal:
f
f
0 = fi + h i + k i
x
y
gi
g
0 = gi + h
+k i
x
y
ANLISIS NUMRICO
ICM ESPOL
fi
f
k i fi
x
y
gi
gi
h
k
gi
x
y
h
fi
x
gi
fi
y h fi
gi k gi
fi
h x
k g
i
fi
y
gi
fi
g
i
Algoritmo:
1) Elegir los valores iniciales para xi, yi cercanos a la raz r, s que se desea calcular
2) Evaluar f, g, y sus derivadas con los valores de xi, yi. Sustituir y obtener los valores de h, k
resolviendo el sistema de ecuaciones lineales
fi
fi
fi
fi
y
x
gi
fi fi
gi
gi
gi
x y h f
y
x
i
k
h
fi
fi
fi
fi
gi gi k gi
x y
x y
x y
gi gi
gi gi
x y
x y
3) Obtener los nuevos valores de xi, yi de la definicin de h y k
h xi 1 xi
xi 1 xi h
k yi1 yi
yi1 yi 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
.
Ejemplo. Realizar una iteracin con el mtodo de Newton para resolver el sistema no lineal
2
2
f(x, y) = (x 2) + (y 1) 3 = 0
x+y
g(x, y) = x e 3 = 0
Sistema de ecuaciones lineales correspondiente
fi fi
x y h f
2yi 2 h [(xi 2)2 (yi 1)2 3]
2xi 4
x y
x y
gi gi k gi
e i i (1 xi ) xi e i i k
(xi exi yi 3)
0.5 1.5
(1 0.5) 0.5e0.5 1.5 k
(0.5e0.5 1.5 3)
e
1 h 0.5
3
11.0836 3.6945 k 0.6945
De donde
2.4.3
h 0.1147
k 0.1560
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.
ANLISIS NUMRICO
ICM ESPOL
Ejemplo. Use la funcin newton2 para encontrar una raz real del sistema
2
2
f(x, y) = (x 2) + (y 1) 3 = 0
x+y
g(x, y) = x e 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
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)
ans =
4.440892098500626e-016
>> eval(g)
ans =
4.440892098500626e-016
2.4.4
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.