Introducción Teórica
A diferencia de las ecuaciones lineales, las ecuaciones no lineales son mucho más impredecibles, pudiendo tener 1, 4, 5 o cualquier cantidad de soluciones, y no poseemos ningún método general para resolverlas. Es por esto, que las ecuaciones no lineales se suelen resolver por aproximación, buscando raíces cercanas a un valor, pero nunca estaremos seguros de la cantidad real de soluciones (salvo casos particulares).
Resolviendo una ecuación no lineal
Empecemos por una ecuación sencilla: .
Antes que nada, vamos a llevarla a la forma homogénea . Es decir, vamos a igualar la ecuación a 0 haciendo: . Luego para resolver la ecuación original es equivalente que hallar las raíces de la función
En octave podemos definir una función de forma simple mediante la siguiente sintaxis:
F = @(x) exp(-x.^2)-0.4
Podemos ver que ahora tenemos una función llamada F
, que podemos utilizar como cualquier
otra. Por ejemplo, podemos calcular F(0)
, F(3)
, F(-2.4)
, etc.
Para resolver la ecuación vamos a utilizar el comando fsolve()
, de la forma:
fsolve(F, 3)
Es decir, pasamos la función F
y damos un punto “cercano” a la raíz que buscamos. Si ponemos
un punto distinto podemos descubrir distintas raíces (o no). Octave devuelve un valor aproximado
para la raíz, en este caso 0.95723
. Podemos corroborar que al introducir este valor en la
ecuación original el resultado es prácticamente 0.4
.
Sistemas de ecuaciones no lineales
En el caso de sistemas de ecuaciones, el procedimiento es similar, solo que vamos a considerar un vector de soluciones . Y la función va a ser un campo vectorial (una función que toma vectores y devuelve vectores).
Por ejemplo, consideremos el sistema:
Vamos a definir la función F
como:
F = @(x) [(x(1).^2 + x(2).*x(1) + x(2).^2 -9), (x(1) + x(2) -1)]
Y resolvemos el sistema haciendo: fsolve(F, [1,3])
Donde [1,3]
es el punto de arranque, es decir x_1=1
, x_2=2
.
Tarea: Se puede interpretar el problema como la intersección entre una recta y una elipse, por lo tanto, tendría que haber otra solución. Encontrarla eligiendo otro punto de arranque.