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