Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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
z3+az2+bz+c=0
2
a
⎧P = b −
3
3
x + Px = Q ⎨ 3
⎩ ab 2a
Q = − c −
3 27
u − v = x
⎧
⎪
⎪
3 P
3 3
(u − v) + 3uv (u − v) = u − v ⎨ uv = 3
⎪
⎩
⎪ 3 3
u − v = Q
3
2 P
3 3
(v ) + Qv − ( ) = 0
3
2 3
−Q Q P
3
v = ± √( ) + ( )
2 2 3
P
u =
3v
Ejemplo 1
Sea la ecuación de tercer grado, x3-6x=4. Con P=-6 y Q=4
º + 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
⎧
⎪
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º
⎪
2 2 2
cos(2θ) = cos θ − sin θ = 1 − 2 sin θ
cos 15 º= 1
2
√2 + √3
sin 15 º= 1
2
√2 − √3
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
(( ) )
⎧
v1 = exp ((π + 0
2π
3
) i) = cos 180 º = −1
⎪
⎪
⎪
⎪
⎪
⎪ √3
v
3
= exp (πi)
⎨
v2 = exp ((π + 1
2π
3
) i) = cos 300 º + i sin 300º = 1
2
−
2
i
⎪
⎪
⎪
⎪ √3
⎪
⎩
⎪ v3 = exp ((π + 2
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
⎧ x1 = 3
⎪
⎪
⎪
3 √3
x = u − v ⎨ x2 = − 2
−
2
i
⎪
⎪ √3
⎩
⎪ 3
x3 = − + i
2 2
º = −2
2π
v1 = 2 exp ((π + 0 ) i) = cos 180
⎧
⎪ 3
⎪
⎪
⎪
⎪
⎪
º + i sin 300º) = 1 − √3 i
2π
3
v = 2 exp (πi) v2 = 2 exp ((π + 1 ) i) = 2 (cos 300
⎨ 3
⎪
⎪
⎪
⎪
º + i sin 60º) = 1 + √3i
2π
⎪
⎩
⎪ 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
2 3
−Q Q P
3
v = + √( ) + ( )
2 2 3
θ + 2πk
3
v = √ r exp (i ) k = 0,1,2
3
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
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)),
>> double(z)
ans =
-2 3 1
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
θ 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
2 3
A = − sgn(R)(|R| + √R − Q )
Q/A A ≠ 0
B = {
0 A = 0
⎨ 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.
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
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)
4 3 2 2 2
x + 2ax + bx + 2cx + d = (x + (a + B)x + A + C ) (x + (a − B)x + A − C )
2
x + (a + B)x + A + C = 0
{
2
x + (a − B)x + A − C = 0
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
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
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
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
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)
⎧ 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