Raíces de polinomios
Este ejemplo muestra varios métodos diferentes para calcular las raíces de un polinomio.
Raíces numéricas
La función roots
calcula las raíces de un polinomio con una única variable representado por un vector de coeficientes.
Por ejemplo, cree un vector para representar el polinomio y, después, calcule las raíces.
p = [1 -1 -6]; r = roots(p)
r = 3 -2
Por convención, MATLAB® devuelve las raíces en un vector columna.
La función poly
convierte de nuevo las raíces en coeficientes de polinomios. Cuando se opera con vectores, poly
y roots
son funciones inversas, de forma que poly(roots(p))
devuelve p
(hasta un error de redondeo, orden y escalado).
p2 = poly(r)
p2 = 1 -1 -6
Cuando se opera con una matriz, la función poly
calcula el polinomio característico de la matriz. Las raíces del polinomio característico son los valores propios de la matriz. Por lo tanto, roots(poly(A))
y eig(A)
devuelven la misma respuesta (hasta un error de redondeo, orden y escalado).
Raíces mediante sustitución
Puede resolver ecuaciones polinómicas que implican funciones trigonométricas simplificando la ecuación mediante una sustitución. El polinomio resultante de una variable ya no contiene ninguna función trigonométrica.
Por ejemplo, busque los valores de que resuelvan la ecuación
Utilice el hecho de que para expresar la ecuación totalmente en términos de funciones de seno:
Utilice la sustitución para expresar la ecuación como una ecuación polinómica simple:
Cree un vector para representar el polinomio.
p = [-3 -1 6];
Busque las raíces del polinomio.
r = roots(p)
r = 2×1
-1.5907
1.2573
Para deshacer la sustitución, utilice . La función asin
calcula el seno inverso.
theta = asin(r)
theta = 2×1 complex
-1.5708 + 1.0395i
1.5708 - 0.7028i
Compruebe que los elementos en theta
son los valores de que resuelven la ecuación original (dentro del error de redondeo).
f = @(Z) 3*cos(Z).^2 - sin(Z) + 3; f(theta)
ans = 2×1 complex
10-14 ×
-0.0888 + 0.0647i
0.2665 + 0.0399i
Raíces en un intervalo específico
Utilice la función fzero
para encontrar las raíces de un polinomio en un intervalo específico. Entre otros usos, este método resulta adecuado si representa el polinomio y quiere conocer el valor de una raíz particular.
Por ejemplo, cree un identificador de función para representar el polinomio .
p = @(x) 3*x.^7 + 4*x.^6 + 2*x.^5 + 4*x.^4 + x.^3 + 5*x.^2;
Represente la función en el intervalo .
x = -2:0.1:1; plot(x,p(x)) ylim([-100 50]) grid on hold on
En la gráfica, el polinomio tiene una raíz trivial en 0
y otra cerca de -1.5
. Utilice fzero
para calcular y representar la raíz que está cerca de -1.5
.
Z = fzero(p, -1.5)
Z = -1.6056
plot(Z,p(Z),'r*')
Raíces simbólicas
Si cuenta con Symbolic Math Toolbox™, existen opciones adicionales para evaluar polinomios simbólicamente. Una manera es utilizar la función solve
(Symbolic Math Toolbox).
syms x
s = solve(x^2-x-6)
s = -2 3
Otra manera es utilizar la función factor
(Symbolic Math Toolbox) para factorizar los términos del polinomio.
F = factor(x^2-x-6)
F = [ x + 2, x - 3]
Para obtener más información, consulte Solve Algebraic Equations (Symbolic Math Toolbox).