Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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 x2x6 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

3cos2(θ)-sin(θ)+3=0.

Utilice el hecho de que cos2(θ)=1-sin2(θ) para expresar la ecuación totalmente en términos de funciones de seno:

-3sin2(θ)-sin(θ)+6=0.

Utilice la sustitución x=sin(θ) para expresar la ecuación como una ecuación polinómica simple:

-3x2-x+6=0.

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 θ=sin-1(x). 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 3x7+4x6+2x5+4x4+x3+5x2.

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 [-2,1].

x = -2:0.1:1;
plot(x,p(x))
ylim([-100 50])
grid on
hold on

Figure contains an axes object. The axes object contains an object of type line.

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*')

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

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).

Consulte también

| |

Temas relacionados