Результат из двух полиномов
Найдите результат из двух полиномов.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.