Documentos de Académico
Documentos de Profesional
Documentos de Cultura
>> hold on
>> ezplot('x^2-y^2+2*y',[-8,8,-8,8])
>> ezplot('2*x+y^2-6',[-8,8,-8,8])
>> hold off
>> title('Funciones implícitas')
>> grid on
www.sc.ehu.es/sbweb/fisica3/numerico/raices/raices_5.html 1/6
27/8/2019 Sistema de ecuaciones no lineales
Observamos que el sitema de ecuaciones tiene cuatro raíces, vamos a obtener estas raíces
aplicando el procedimiento de Newton-Raphson
Procedimiento de Newton-Raphson
Para aplicar este procedimiento para un sistema de n ecuaciones con n incógnitas,
representamos la variable x por x1 y la variable y por x2. El sistema de dos ecuaciones se
escribe de una forma más general
f1 (x1 , x2 ) = 0
{
f2 (x1 , x2 ) = 0
∂f1 ∂f1
f1 (x1 + Δx1 , x2 + Δx2 ) ≈ f1 (x1 , x2 ) + Δx1 + Δx2
∂x1 ∂x2
∂f2 ∂f2
f2 (x1 + Δx1 , x2 + Δx2 ) ≈ f2 (x1 , x2 ) + Δx1 + Δx2
∂x1 ∂x2
∂f1 ∂f1
f1 (x1 , x2 ) + Δx1 + Δx2 = 0
∂x1 ∂x2
∂f2 ∂f2
f2 (x1 , x2 ) + Δx1 + Δx2 = 0
∂x1 ∂x2
www.sc.ehu.es/sbweb/fisica3/numerico/raices/raices_5.html 2/6
27/8/2019 Sistema de ecuaciones no lineales
∂f1 ∂f1
f1 ⎛ ⎞
∂x1 ∂x2 Δx1
( ) + ⎜ ⎟( ) = 0
∂f2 ∂f2
f2 ⎝ ⎠ Δx2
∂x1 ∂x2
Denominamos vector x al vector (x1,x2), el vector función F está formado por dos elementos
que son las funciones (f1,f2) y la matriz cuadrada de dimensión dos es el Jacobiano J.
Despejamos Δx1 y Δx2 del sistema de ecuaciones o el vector Δx.
F(x) + JΔx = 0
−1
Δx = −J F
J-1 es la matriz inversa de J y Δx es el vector diferencia entre el vector que nos da las
coordenadas del nuevo punto xk+1, conocidas las del punto previo xk
−1
xk+1 = xk − J F
⎧ f1 (x1 , x2 ...xn ) = 0
⎪
⎪
⎪
⎪
f2 (x1 , x2 ...xn ) = 0
⎨
⎪ ...
⎪
⎪
⎩
⎪
fn (x1 , x2 ...xn ) = 0
El procedimiento se escribe
⎛ ... ⎞
′ ∂x1 ∂x2 ∂xn
x x1 f1 (x1 , x2 ...xn )
⎛ 1 ⎞ ⎛ ⎞ ⎛ ⎞
⎜ ∂f2 ∂f2 ∂f2 ⎟
′ ⎜ ... ⎟
⎜ x2 ⎟ ⎜
x2
⎟ ⎜ ∂x1 ∂x2 ∂xn ⎟ ⎜ f2 (x1 , x2 ...xn ) ⎟
⎜ ⎟ = ⎜ ⎟ − ⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ ... ⎟ ⎜ ... ⎟ ⎜ ... ⎟
⎜ ... ... ... ... ⎟
⎝ ⎝ ⎠ ⎜ ⎟
′ ⎠ xn
⎝ ⎠
xn ∂fn ∂fn ∂fn fn (x1 , x2 ...xn )
⎝ ... ⎠
∂x1 ∂x2 ∂xn
Para el sistema de dos ecuaciones que hemos planteado al principio de esta sección
2 2
x − x + 2x2 = 0
1 2
{
2
2x1 + x − 6 = 0
2
El Jacobiano es
2x1 −2x2 + 2
J = ( )
2 2x2
El código MATLAB para calcular las raíces es similar al empleado para calcular una raíz de la
ecuación f(x)=0
www.sc.ehu.es/sbweb/fisica3/numerico/raices/raices_5.html 3/6
27/8/2019 Sistema de ecuaciones no lineales
F=@(x) [x(1)^2-x(2)^2+2*x(2);2*x(1)+x(2)^2-6];
J=@(x) [2*x(1),-2*x(2)+2;2,2*x(2)];
x=[-4.6;-3.8]; %punto inicial
i=0;
while i<100
y=-J(x)\F(x);
if sqrt(norm(y)/norm(x))<0.001
disp('Solución')
disp(x)
break;
end
x=x+y;
i=i+1;
end
if i>=100
disp('Se ha soprepasado el número de iteracciones');
end
La función norm calcula el módulo un vector. El procedimiento concluye cuando los puntos xm
y xm+1, están muy próximos, es decir, cuando el error relativo |xm+1-xm|/|xm| sea menor
que una cantidad prefijada
0.6252
2.1794
>> F(x)
ans = 1.0e-09 *
0.3991
0.0536
Con Data cursor buscamos un valor próximo a la segunda raíz (-4.6,-3.8). Modificamos en la
tercera línea de código el vector inicial que tomamos para calcular la raíz y obtenemos al
correr el script modificado
-4.8642
-3.9659
>> F(x)
ans = 1.0e-09 *
0.2845
0.1122
El problema más importante para aplicar este procedimiento es la elección del vector inicial,
cuando el número de ecuaciones es tres o más.
La función fsolve
MATLAB dispone de una función denominada fsolve que realiza un cálculo similar
www.sc.ehu.es/sbweb/fisica3/numerico/raices/raices_5.html 4/6
27/8/2019 Sistema de ecuaciones no lineales
Ejemplo
f1(x,y)=2x2-xy-5x-1=0
f2(x,y)=x+3log10x-y2=0
x=linspace(2.5,5.5,50);
y1=(2*x.^2-5*x-1)./x;
y2=sqrt(x+3*log10(x));
plot(x,y1,'b',x,y2,'r')
www.sc.ehu.es/sbweb/fisica3/numerico/raices/raices_5.html 5/6
27/8/2019 Sistema de ecuaciones no lineales
A fsolve tenemos que pasarle la función que hemos definido y la aproximaxión inicial (x0, y0)
que hemos encontrado anteriormente de forma gráfica. Esta función nos devuelve las
coordenadas (x,y) del punto de intersección buscado y los valores de las funciones f1(x,y) y
f2(x,y) en dicho punto.
Ejercicio
2 2
z √x + y − 6.7 = 0
y
tan ( ) + cos z + 3.2 = 0
x
www.sc.ehu.es/sbweb/fisica3/numerico/raices/raices_5.html 6/6