Está en la página 1de 9

Inicio MATLAB Procedimientos numéricos Tutoriales

Raíces de una ecuación (I)


En este capítulo vamos a estudiar:

1. Las raíces de una ecuación de segundo grado


2. Las raíces de una ecuación de tercer grado. Definiremos una función para calcular las raíces de
una ecuación de tercer grado
3. Las raíces de una ecuación de cuarto grado

La ecuación de segundo grado


Las raíces de la ecuación de segundo grado ax2+bx+c=0, son

2 2
−b + √b − 4ac −b − √b − 4ac
x1 = x2 =
2a 2a

Creamos una función denominada raices_2 que se le pasan el vector p de los coeficientes [a b c] y devuelve
las raíces x1 y x2.

function [x1,x2] = raices_2(p)


dis= sqrt(p(2)*p(2)-4*p(1)*p(3));
x1=(-p(2)+dis)/(2*p(1));
x2=(-p(2)-dis)/(2*p(1));
end

Para calcular las raíces de la ecuación de segundo grado x2+x-6 en la la ventana de comandos llamamos a la
función raices_2 y le pasamos los coeficientes del polinomio

>> [r1,r2]=raices_2([1 1 -6])


r1= 2
r2= -3

Para calcular las raíces de la ecuación de segundo grado x2+x+1 escribimos

>> [r1,r2]=raices_2([1 1 1])


r1=-0.5000+0.8660i
r2=-0.5000-0.8660i

La ecuación de tercer grado


Sea la ecuación de tercer grado

z3+az2+bz+c=0

Hacemos la sustitución, z=x-a/3, obteniendo una ecuación reducida, sin el término x2


3 2
a a a
(x − ) + a(x − ) + b (x − ) + c = 0
3 3 3

2
a
⎧P = b −
3
3
x + Px = Q ⎨ 3
⎩ ab 2a
Q = − c −
3 27

Nos fijamos en la siguiente identidad e identificamos

u − v = x



3 P
3 3
(u − v) + 3uv (u − v) = u − v ⎨ uv = 3



⎪ 3 3
u − v = Q

De las dos últimas, deducimos una ecuación de segundo grado en v3


3
P 3
( ) − v = Q
3v

3
2 P
3 3
(v ) + Qv − ( ) = 0
3

Las soluciones de esta ecuación son conocidas

2 3
−Q Q P
3
v = ± √( ) + ( )
2 2 3

P
u =
3v

Conocidos u y v. La solución de la ecuación reducida es x=u-v y de la original z=x-a/3

Ejemplo 1
Sea la ecuación de tercer grado, x3-6x=4. Con P=-6 y Q=4

Las dos soluciones de la ecuación de segundo grado en v3 son


3
v = −2 + 2i
{
3
v = −2 − 2i

Calculamos las tres raíces del número complejo, -2+2i

º + i sin 45º)
π 2π
v1 = √2 exp (( + 0 ) i) = √2 (cos 45

⎪ 4 3





º + i sin 165º)
3π π 2π
3
v = 2√2 exp ( i) v2 = √2 exp (( + 1 ) i) = √2 (cos 165
4 ⎨ 4 3





º + i sin 285º)
π 2π


⎪ v3 = √2 exp (( + 2 ) i) = √2 (cos 285
4 3

º + i sin 45º)
π 2π
u1 = −√2 exp (− ( + 0 ) i) = √2 (− cos 45

⎪ 4 3





º + i sin 165º)
P 2 π 2π
u = = − u2 = −√2 exp (− ( + 1 ) i) = √2 (− cos 165
3v v ⎨ 4 3





º + i sin 285º)
π 2π


⎪ u3 = −√2 exp (− ( + 2 ) i) = √2 (− cos 285
4 3

Las tres soluciones de la ecuación de tercer grado son



x1 = −2√2 cos 45 º = −2

x = u − v⎨ x2 = −2√2 cos 165 º = 2√2 cos 15º



x3 = −2√2 cos 285 º = −2√2 sin 15º
Calculamos las tres raíces del número complejo, -2-2i

º + i sin 75º)
5π 2π
v1 = √2 exp (( + 0 ) i) = √2 (cos 75

⎪ 12 3





º + i sin 195º)
5π 5π 2π
3
v = √8 exp ( i) ⎨ v2 = √2 exp (( 12
+ 1
3
) i) = √2 (cos 195
4





º + i sin 315º)
5π 2π


⎪ v3 = √2 exp (( + 2 ) i) = √2 (cos 315
12 3

º + i sin 75º)
π 2π
u1 = −√2 exp (− ( + 0 ) i) = √2 (− cos 75

⎪ 12 3





º + i sin 195º)
2 π 2π
P
u = = − u2 = −√2 exp (− ( + 1 ) i) = √2 (− cos 195
3v v ⎨ 12 3





º + i sin 315º)
π 2π


⎪ u3 = −√2 exp (− ( + 2 ) i) = √2 (− cos 315
12 3

Las soluciones de la ecuación de tercer grado coinciden con el caso anterior. Solamente puede haber
tres soluciones de una ecuación de tercer grado



x1 = −2√2 cos 75 º = −2√2 sin 15º

x = u − v⎨ x2 = −2√2 cos 195 º = 2√2 cos 15º





x3 = −2√2 cos 315 º = −2
cos15° y sin15° se calculan mediante las fórmulas del ángulo doble
2 2 2
cos(2θ) = cos θ − sin θ = 2 cos θ − 1

2 2 2
cos(2θ) = cos θ − sin θ = 1 − 2 sin θ

cos 15 º= 1

2
√2 + √3

sin 15 º= 1

2
√2 − √3

Finalmente, las raíces de la ecuación de tercer grado, x3-6x=4, son

2



⎪ x1 = −√4 − 2√3 = −√(√3 − 1) = 1 − √3


⎪ x2 = √4 + 2√3 = 1 + √3




x3 = −2

Comprobación

>> syms x;
>> solve(x^3-6*x-4,x)
ans =
-2
1 - 3^(1/2)
3^(1/2) + 1

Ejemplo 2
Sea la ecuación de tercer grado, x3-6x=9. Con P=-6 y Q=9

Las dos soluciones de la ecuación de segundo grado en v3 son


3
v = −1
{
3 3
v = −2

Calculamos las tres raíces del número complejo, -1

(( ) )

v1 = exp ((π + 0

3
) i) = cos 180 º = −1





⎪ √3
v
3
= exp (πi)

v2 = exp ((π + 1

3
) i) = cos 300 º + i sin 300º = 1

2

2
i




⎪ √3


⎪ v3 = exp ((π + 2

3
) i) = cos 60 º + i sin 60º = 1

2
+
2
i

⎧ u = 2
⎪ 1
P 2
u = = − v
⎨ u2 = −1 − √3i
3v


u3 = −1 + √3i

Las tres soluciones de la ecuación de tercer grado son

⎧ x1 = 3



3 √3

x = u − v ⎨ x2 = − 2

2
i


⎪ √3

⎪ 3
x3 = − + i
2 2

Calculamos las tres raíces del número complejo, -8

º = −2

v1 = 2 exp ((π + 0 ) i) = cos 180

⎪ 3





º + i sin 300º) = 1 − √3 i

3
v = 2 exp (πi) v2 = 2 exp ((π + 1 ) i) = 2 (cos 300
⎨ 3





º + i sin 60º) = 1 + √3i



⎪ v3 = 2 exp ((π + 2 ) i) = 2 (cos 60
3

u1 = 1




⎪ 1
P 2 u2 = − (1 + √3i)
u = = − ⎨
2
3v v


⎪ 1

⎩u = −
⎪ 3 (1 − √3i)
2

Las soluciones de la ecuación de tercer grado coinciden con el caso anterior. Solamente puede haber
tres soluciones de una ecuación de tercer grado

⎧ x1 = 3



3 √3

x = u − v ⎨ x2 = − 2
+
2
i




⎪ 3 √3
x3 = − − i
2 2

Comprobación

>> syms x;
>> solve(x^3-6*x-9,x)
ans =
3
- (3^(1/2)*1i)/2 - 3/2
(3^(1/2)*1i)/2 - 3/2

Ejemplo 3
Este ejemplo, muestra que una ecuación de tercer grado con raíces tan sencillas como 1,-2 y 3, requiere de un
cálculo intensivo, que realizaremos con Math Symbolic de MATLAB, para obtenerlas

Sea la ecuación de tercer grado, z3-2z2-5z+6=0. Comprobamos que sus raíces son, 1,-2 y 3

>> syms z;
>> solve(z^3-2*z^2-5*z+6,z)
ans =
-2
1
3

Hacemos la sustitución, z=x-a/3, obteniendo una ecuación reducida


2
a
⎧P = b −
3 3
x + Px = Q ⎨ 3
⎩ ab 2a
Q = − c −
3 27

Con P=-19/3 y Q=-56/27

Calculamos una de las raíces de la ecuación de segundo grado en v3

2 3
−Q Q P
3
v = + √( ) + ( )
2 2 3

Obtenemos las tres raíces v de v3

θ + 2πk
3
v = √ r exp (i ) k = 0,1,2
3

r es el módulo del número complejo y θ es el argumento

Para cada raíz v, calculamos u=P/(3v) y la diferencia x=u-v, las raíces de la ecuación reducida x3+Px=Q

Finalmente, las raíces de la ecuación de tercer grado son, z=x-a/3

Creamos un script para realizar todos estos cálculos con Math Symbolic

a=sym(-2);
b=sym(-5);
c=sym(6);
P=b-a^2/3;
Q=a*b/3-c-2*a^3/27;
v3=-Q/2+sqrt((Q/2)^2+(P/3)^3); %una de las raíces, la otra con (-)
v=zeros(0,3);
k=sym(0:2);
v=abs(v3)^(1/3)*exp(1i*(angle(v3)+k*2*pi)/3);
u=P./(3*v);
x=u-v; %raíces de la ecuación reducida
z=x-a/3 %raíces de la ecuación de tercer grado

z =
[ 2/3 - exp((atan((45*3^(1/2))/28)*1i)/3)*((19*19^(1/2))/27)^(1/3) -
(19*exp(-(atan((45*3^(1/2))/28)*1i)/3))/(9*((19*19^(1/2))/27)^(1/3)),

2/3 - exp((pi*2i)/3 + (atan((45*3^(1/2))/28)*1i)/3)*((19*19^(1/2))/27)^(1/3) -


(19*exp(- (pi*2i)/3 - (atan((45*3^(1/2))/28)*1i)/3))/(9*((19*19^(1/2))/27)^(1/3)),

2/3 - exp((pi*4i)/3 + (atan((45*3^(1/2))/28)*1i)/3)*((19*19^(1/2))/27)^(1/3) -


(19*exp(- (pi*4i)/3 - (atan((45*3^(1/2))/28)*1i)/3))/(9*((19*19^(1/2))/27)^(1/3))]

La expresión de las raíces z es muy larga y no ha sido posible simplificarla

Convertimos la variable simbólica z en un número

>> double(z)
ans =
-2 3 1

Fórmulas para calcular las raíces


Expresamos una ecuación de tercer grado en la forma equivalente

x3+ax2+bx+c=0

dividiendo todos los coeficientes por el primero, de modo que el coeficiente del término x3 es la unidad.
Las fórmulas que permiten calcular las raíces de esta ecuación son las siguientes (véase la primera
referencia):
2 3
a − 3b 2a − 9ab + 27c
Q = R =
9 54

Si R2<Q3 entonces la ecuación tiene tres raíces reales

θ a
x1 = −2√Q cos ( ) −

⎪ 3 3




R ⎪ θ+2π a
θ = arccos ( ) ⎨ x2 = −2√Q cos ( 3
) −
3
3
√Q ⎪



⎪ θ−2π a

⎪ x3 = −2√Q cos ( ) −
3 3

En caso contrario, R2≥Q3 tenemos una raíz real y dos complejas.


1/3

2 3
A = − sgn(R)(|R| + √R − Q )

Q/A A ≠ 0
B = {
0 A = 0

La raíz real y las dos complejas conjugadas son:


a
x1 = (A + B) −

⎪ 3



1 √3
a

⎨ x2 = − 2
(A + B) −
3
+ i
2
(A − B)





⎪ 1 a
√3
x3 = − (A + B) − − i (A − B)
2 3 2

Creamos una función denominada raices_3 a la que se le pasa el vector p de los coeficientes [1 a b c] y
devuelve las valores de raíces x1, x2 y x3.

function [x1,x2,x3] = raices_3(p)


%código
end

Ahora bien, para hacerla similar a la función roots de MATLAB, vamos a definirla para que devuelva un vector x

function x = raices_3(p)
Q=(p(2)*p(2)-3*p(3))/9;
R=(2*p(2)^3-9*p(2)*p(3)+27*p(4))/54;
x=zeros(3,1); %reserva memoria para un vector de tres elementos
if (R*R)<(Q^3)
tetha=acos(R/sqrt(Q^3));
x(1)=-2*sqrt(Q)*cos(tetha/3)-p(2)/3;
x(2)=-2*sqrt(Q)*cos((tetha+2*pi)/3)-p(2)/3;
x(3)=-2*sqrt(Q)*cos((tetha-2*pi)/3)-p(2)/3;
else
A=-sign(R)*nthroot(abs(R)+sqrt(R*R-Q^3),3);
if A==0
B=0;
else
B=Q/A;
end
x(1)=(A+B)-p(2)/3;
x(2)=-(A+B)/2-p(2)/3+(sqrt(3)*(A-B)/2)*sqrt(-1); %mejor que i
x(3)=-(A+B)/2-p(2)/3-(sqrt(3)*(A-B)/2)*sqrt(-1);
end
end

En la ventana de comandos llamamos a la función raices_3 para calcular las raíces de la ecuación, x3-7x-6=0 o
bien, x3+0x2-7x-6=0

>> r=raices_3([1 0 -7 -6])


r =
-2.0000
3.0000
-1.0000

Para calcular las raíces de la ecuación x3+3x2+3x+2=0 escribimos en la ventana de comandos

>> r=raices_3([1 3 3 2])


r =
-2.0000
-0.5000-0.8660i
-0.5000+0.8660i

Ecuación de cuarto grado


Utilizamos el procedimiento de Ferrari para resolver la ecuación de cuarto grado, x4+2ax3+bx2+2cx+d=0

Vamos a calcular tres números A, B y C para expresar el polinomio como diferencia de dos cuadrados
2 2
4 3 2 2
x + 2ax + bx + 2cx + d = (x + ax + A) − (Bx + C)

y luego, expresar la diferencia de cuadrados como producto de dos factores, M2-N2=(M+N)(M-N)


4 3 2 2 2
x + 2ax + bx + 2cx + d = (x + ax + A + (Bx + C)) (x + ax + A − (Bx + C))

4 3 2 2 2
x + 2ax + bx + 2cx + d = (x + (a + B)x + A + C ) (x + (a − B)x + A − C )

Se reduce la ecuación de cuarto grado a la resolución de dos ecuaciones de segundo grado

2
x + (a + B)x + A + C = 0
{
2
x + (a − B)x + A − C = 0

Primero, calculamos los tres números A, B y C

4 3 2 4 3 2 2 2 2 2
x + 2ax + bx + 2cx + d = x + 2ax + (a + 2A − B ) x + 2 (aA − BC) x + A − C

2 2

⎪b = a + 2A − B

⎨ c = aA − BC

⎪ 2 2
d = A − C

2 2

⎪B = a + 2A − b

⎨ BC = aA − c

⎪ 2 2
C = A − d

Eliminando el producto BC, obtenemos una ecuación de tercer grado en A


2
2 2
(aA − c) = (a + 2A − b) (A − d)
2 2
b bd−a d−c
3 2
A − A + (ca − d) A + = 0
2 2

De las tres soluciones se elige una para A, a continuación se calcula B y C. Finalmente, se resuelve las dos
ecuaciones de segundo grado

Ejemplo
Resolver la ecuación de cuarto grado, x4-3x2+6x-2=0

Los coeficientes de x4+2ax3+bx2+2cx+d=0, son a=0, b=-3, c=3, d=-2

Ecuación de tercer grado


Resolvemos la ecuación de tercer grado en A

2 2
2 2
b bd−a d−c
3 2
A − A + (ca − d) A + = 0
2 2

3 3
3 2
A + A + 2A − = 0
2 2

Se trata de una ecuación de tercer grado con a=3/2, b=2, y c=-3/2. Reducimos la ecuación a la forma
2
a
⎧P = b −
3
3
x + Px = Q ⎨ 3
⎩ ab 2a
Q = − c −
3 27

Por lo que P=5/4, Q=9/4. La solución de la ecuación reducida más sencilla es

2 3


−Q Q
P
⎪ v3 = + √( ) + ( )
2 2 3
x = u − v⎨


⎪ P
u =
3v

Como las operaciones son muy largas nos ayudamos de Math Symbolic de MATLAB

a=sym(3/2);
b=sym(2);
c=sym(-3/2);
P=b-a^2/3;
Q=a*b/3-c-2*a^3/27;
v=(-Q/2+sqrt((Q/2)^2+(P/3)^3))^(1/3);
u=P/(3*v);
A=u-v;

>> simplify(A)
ans =1

√6 1


v = −
3 2
⎬x = 1
√6 1 ⎭

u = +
3 2

a 1
A = x − =
3 2

Comprobación

>> syms A;
>> solve(A^3+3*A^2/2+2*A-3/2,A)
ans =
1/2
- 2^(1/2)*1i - 1
- 1 + 2^(1/2)*1i

Raíces de la ecuación de cuarto grado


Retornamos a la ecuación de cuarto grado con a=0, b=-3, c=3, d=-2. Conocido A, calculamos B y C

2 2
B = a + 2A − b = 4
{ 9
2 2
C = A − d =
4

Por lo que B=±2 y C=±3/2. Decidimos los signos, comprobando que obtenemos la ecuación original, x4-
3x2+6x-2 a partir de su expresión como diferencia de dos cuadrados
2 2
4 3 2 2
x + 2ax + bx + 2cx + d = (x + ax + A) − (Bx + C)

La coincidencia se produce para, B=2 y C=-3/2,

Finalmente, calculamos las raíces de las dos ecuaciones de segundo grado


2
x + (a + B)x + A + C = 0
{
2
x + (a − B)x + A − C = 0

⎧ x1 = −1 + √2


2
x + 2x − 1 = 0{



x2 = −1 − √2


⎪ x3 = 1 + i


2
⎩ x − 2x + 2 = 0{

x4 = 1 − i

Comprobación

>> syms x;
>> solve(x^4-3*x^2+6*x-2,x)
ans =
1 - 1i
1 + 1i
- 2^(1/2) - 1
2^(1/2) - 1

Referencias
William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery Numerical Recipes in C. The Art of
Scientific Computing. Second Edition. Cambridge University Press (1992), pp. 184-185

Solving Cubic Polynomials

Ferrari's Solution of a Quartic Equation

Grado en Ingeniería de Energías Renovables


Angel Franco García, Copyright © 2016

También podría gustarte