¿Cómo programar raíz cubica en Matlab o Pseint?
Tengo el el siguiente problema que tenemos que resolver en Matlab o Pseint
Ax^3 + bx^2 + cx + d = 0
Determinar en pseint las tres raíces _utilizando la formula algebraica :
- Tres raíces distintas. tres raíces iguales. C. raíz real e imaginaria.
X 1 = X 2 = X 3 , raíces iguales; X1, X2 y X3 son raíces distintas;
X1 = 3 + 2i ; X2 = 5 + 3i, X3 = 4 - 3 raíces real e imaginaria ; x1 = 3 parte real
2i = parte imaginaria
X^2 = - b +- sqrt (b^2 – 4*a*c ) / 2*a
Sqrt (b^2 – 4*a*c ) > 0 raices distintas
Sqrt (b^2 - 4*a*c ) = 0 raices iguales
Sqrt ( b^2 – 4*a*c ) < 0 raices real e imaginaria
Sqrt = raíz cuadrada.
Y bueno lo siguiente es lo mismo pero más detallado para desarrollar el código en programación
- Calcular discriminante
Ax^3 + bx^2 + cx + d = 0
- Calcular p y q
P = (3*c/a – (b/a)^2)/3
q = (2*(b/a)^3 – a*b*c/a/a + 27*d/a)/27
- Calcular el discriminante
D = (p/3)^3 + (q/2)^2
- Dependiendo del valor de DE haga las diferencias
Si D < 0 tiene tres raíces distintas
Si D = 0 tiene tres raíces reales de las cuales dos son iguales
Si D > o tiene una raíz real y dos raíces complejas
- Para D > 0 y D = 0
Calcular u y v
u = cbrt (-q/2 + sqrt (D))
v = cbrt ( -q/2 – sqrt (D))
Encuentre las tres raices
Y1 = u + v
Y2 = - (u+v) /2 +i (u-v)*sqrt/3)/2
Y3 = - (u +v)/2 – i (u+v)*sqrt(3)/2
- Alternativa para D < 0 una formula trigonométrica la mas conveniente
t = arccos (-q/2/sqrt + (abs(p)^3 /27)
Y1 = 2*sqrt (abs(p)^3 cos(t/3)
Y2 = -2*sqrt (abs(p)^3*cos(t + pi)/3)
Y3 = -2*sqrt (abs(p)^3cos(t – pi)/3)
- Finalmente encontramos las tres raíces
X1 = Y1 – b/a/3
X2 = Y2 – b/a/3
X3 = Y3 –b/a/3
Vi algo parecido en este link http://mimosa.pntic.mec.es/jgomez53/javas/resecu3img.htm