Raíces de una ecuación (I)
La ecuación de segundo grado
Las raíces de la ecuación de segundo grado ax2+bx+c=0, son
Creamos una función denominada
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
>> [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
Nos fijamos en la siguiente identidad e identificamos
De las dos últimas, deducimos una ecuación de segundo grado en v3
Las soluciones de esta ecuación son conocidas
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
Calculamos las tres raíces del número complejo, -2+2i
Calculamos las tres raíces del número complejo, -2-2i
Las tres soluciones de la ecuación de tercer grado son
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
cos15° y sin15° se calculan mediante las fórmulas del ángulo doble
Finalmente, las raíces de la ecuación de tercer grado, x3-6x=4, son
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
Calculamos las tres raíces del número complejo, -1
Calculamos las tres raíces del número complejo, -8
Las tres soluciones de la ecuación de tercer grado son
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
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
Con P=-19/3 y Q=-56/27
Calculamos una de las raíces de la ecuación de segundo grado en v3
Obtenemos las tres raíces v de v3
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):
Si R2<Q3 entonces la ecuación tiene tres raíces reales
En caso contrario, R2≥Q3 tenemos una raíz real y dos complejas.
La raíz real y las dos complejas conjugadas son:
Creamos una función denominada
function [x1,x2,x3] = raices_3(p) %código end
Ahora bien, para hacerla similar a la función
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
>> 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
Ejemplo
Calcular las tres raíces reales de la ecuación
Las tres raíces son
Comprobación, sea φ=π/12
phi=pi/12; rr=raices_3([1,0,-3/4, -cos(3*phi)/4]); disp(rr) r1=cos(phi); r2=-cos(pi/3-phi); r3=-cos(pi/3+phi); disp([r1;r2;r3])
-0.7071 0.9659 -0.2588 0.9659 -0.7071 -0.2588
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
y luego, expresar la diferencia de cuadrados como producto de dos factores, M2-N2=(M+N)(M-N)
Se reduce la ecuación de cuarto grado a la resolución de dos ecuaciones de segundo grado
Primero, calculamos los tres números A, B y C
Eliminando el producto BC, obtenemos una ecuación de tercer grado en A
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 gradoResolvemos la ecuación de tercer grado en A
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
Por lo que P=5/4, Q=9/4. La solución de la ecuación reducida más sencilla es
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
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)*1iRaí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
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
La coincidencia se produce para, B=2 y C=-3/2,
Finalmente, calculamos las raíces de las dos ecuaciones de segundo grado
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