resultant

Результант двух полиномов

Описание

пример

resultant(p,q) возвращает результант полиномов p и q относительно переменной, найденной symvar.

resultant(p,q,var) возвращает результант относительно переменной var.

Примеры

свернуть все

Найдите результант двух полиномов.

syms x y
p = x^2+y;
q = x-2*y;
resultant(p,q)
ans =
4*y^2 + y

Найдите результант относительно определенной переменной при помощи третьего аргумента.

resultant(p,q,y)
ans =
2*x^2 + x

Если два полинома имеют общий корень, то результант должен быть 0 в том корне. Решите полиномиальные уравнения в двух переменных путем вычисления результанта относительно одной переменной и решения результанта для другой переменной.

Во-первых, вычислите результант двух полиномов относительно x возвратить полином в y.

syms x y
p = y^3 - 2*x^2 + 3*x*y;
q = x^3 + 2*y^2 - 5*x^2*y;
res = resultant(p,q,x)
res =
y^9 - 35*y^8 + 44*y^6 + 126*y^5 - 32*y^4

Решите результант для y значения корней. Избегайте числовых ошибок округления путем решения уравнений символически с помощью solve функция. solve представляет решения символически при помощи root.

yRoots = solve(res)
yRoots =
                                              0
                                              0
                                              0
                                              0
 root(z^5 - 35*z^4 + 44*z^2 + 126*z - 32, z, 1)
 root(z^5 - 35*z^4 + 44*z^2 + 126*z - 32, z, 2)
 root(z^5 - 35*z^4 + 44*z^2 + 126*z - 32, z, 3)
 root(z^5 - 35*z^4 + 44*z^2 + 126*z - 32, z, 4)
 root(z^5 - 35*z^4 + 44*z^2 + 126*z - 32, z, 5)

Вычислите числовые значения при помощи vpa.

vpa(yRoots)
ans =
                                                                         0
                                                                         0
                                                                         0
                                                                         0
                                        0.23545637976581197505601615070637
 - 0.98628744767074109264070992415511 - 1.1027291033304653904984097788422i
 - 0.98628744767074109264070992415511 + 1.1027291033304653904984097788422i
                                         1.7760440932430169904041045113342
                                          34.96107442233265321982129918627

Примите, что вы хотите исследовать пятый корень. Для пятого корня вычислите x значение путем замены y значение в p и q. Затем одновременно решите полиномы для x. Избегайте числовых ошибок округления путем решения уравнений символически с помощью solve.

eqns = subs([p q], y, yRoots(5));
xRoot5 = solve(eqns,x);

Вычислите числовое значение пятого корня при помощи vpa.

root5 = vpa([xRoot5 yRoots(5)])
root5 =
[ 0.37078716473998365045397220797284, 0.23545637976581197505601615070637]

Проверьте, что корень правилен путем замены root5 в p и q. Результатом является 0 в ошибке округления.

subs([p q],[x y],root5)
ans =
[ -6.313690360861895794753956010471e-41, -9.1835496157991211560057541970488e-41]

Входные параметры

свернуть все

Полином в виде символьного выражения или функции.

Полином в виде символьного выражения или функции.

Переменная в виде символьной переменной.

Смотрите также

| |

Введенный в R2018a