Результант двух полиномов
Найдите результант двух полиномов.
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]
p
— ПолиномПолином в виде символьного выражения или функции.
q
— ПолиномПолином в виде символьного выражения или функции.
var
— ПеременнаяПеременная в виде символьной переменной.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.