Представлять корни многочлена
корень (p, x)root( возвращает вектор столбца нумерованных корней символьного многочлена p,x)p в отношении x. Символическое решение многочлена высокой степени для его корней может быть сложным или математически невозможным. В этом случае символьная математическая Toolbox™ использует root для представления корней многочлена.
Представление корней многочлена 1 с помощьюroot. root функция возвращает вектор столбца. Элементы этого вектора представляют три корня многочлена.
syms x p = x^3 + 1; root(p,x)
ans = root(x^3 + 1, x, 1) root(x^3 + 1, x, 2) root(x^3 + 1, x, 3)
root(x^3 + 1, x, 1) представляет первый корень p, пока root(x^3 + 1, x, 2) представляет второй корень и т. д. Этот синтаксис используется для представления корней многочленов высокой степени.
При решении многочлена высокой степени, solve представляет корни с помощью root. Кроме того, можно либо вернуть явное решение с помощью MaxDegree или вернуть численный результат с помощью vpa.
Найти корни x^3 + 3*x - 16.
syms x p = x^3 + 3*x - 16; R = solve(p,x)
R = root(z^3 + 3*z - 16, z, 1) root(z^3 + 3*z - 16, z, 2) root(z^3 + 3*z - 16, z, 3)
Найдите корни явным образом, установив MaxDegree до степени полинома. Многочлены со степенью больше 4 не имеют явных решений.
Rexplicit = solve(p,x,'MaxDegree',3)
Rexplicit =
(65^(1/2) + 8)^(1/3) - 1/(65^(1/2) + 8)^(1/3)
1/(2*(65^(1/2) + 8)^(1/3)) - (65^(1/2) + 8)^(1/3)/2 -...
(3^(1/2)*(1/(65^(1/2) + 8)^(1/3) + (65^(1/2) + 8)^(1/3))*1i)/2
1/(2*(65^(1/2) + 8)^(1/3)) - (65^(1/2) + 8)^(1/3)/2 +...
(3^(1/2)*(1/(65^(1/2) + 8)^(1/3) + (65^(1/2) + 8)^(1/3))*1i)/2Численное вычисление корней с помощью vpa преобразовать R в высокоточную плавающую точку.
Rnumeric = vpa(R)
RRnumeric =
2.1267693318103912337456401562601
- 1.0633846659051956168728200781301 - 2.5283118563671914055545884653776i
- 1.0633846659051956168728200781301 + 2.5283118563671914055545884653776iЕсли вызов root содержит параметры, заменяют их числами с помощью subs перед вызовом vpa.
root в символьных вычисленияхВы можете использовать root функция в качестве входных данных для функций инструментария символьной математики, таких как simplify, subs, и diff.
Упрощение выражения, содержащего root с использованием simplify функция.
syms x r = root(x^6 + x, x, 1); simplify(sin(r)^2 + cos(r)^2)
ans = 1
Заменить параметры в root с числами, использующими subs.
syms b subs(root(x^2 + b*x, x, 1), b, 5)
ans = root(x^2 + 5*x, x, 1)
Подстановка параметров с использованием subs необходимо перед преобразованием root в числовую форму с использованием vpa.
Дифференцировать выражение, содержащее root относительно параметра с использованием diff.
diff(root(x^2 + b*x, x, 1), b)
ans = root(b^2*x^2 + b^2*x, x, 1)
Найти обратное преобразование Лапласа отношения двух многочленов с помощью ilaplace. Обратное преобразование Лапласа возвращается в терминах root.
syms s G = (s^3 + 1)/(s^6 + s^5 + s^2); H = ilaplace(G)
H = t - symsum(exp(t*root(s3^4 + s3^3 + 1, s3, k))/... (4*root(s3^4 + s3^3 + 1, s3, k) + 3), k, 1, 4)
Когда вы получите root функция в выходных данных, вы можете использовать root в качестве входных данных в последующих символьных вычислениях. Однако, если требуется численный результат, преобразуйте root функции к высокоточному числовому результату с использованием vpa.
Преобразование обратного преобразования Лапласа в числовую форму с помощью vpa.
H_vpa = simplify(vpa(H))
H_vpa =
t +...
0.30881178580997278695808136329347*exp(-1.0189127943851558447865795886366*t)*...
cos(0.60256541999859902604398442197193*t) -...
0.30881178580997278695808136329347*exp(0.5189127943851558447865795886366*t)*...
cos(0.666609844932018579153758800733*t) -...
0.6919689479355443779463355813596*exp(-1.0189127943851558447865795886366*t)*...
sin(0.60256541999859902604398442197193*t) -...
0.16223098826244593894459034019473*exp(0.5189127943851558447865795886366*t)*...
sin(0.666609844932018579153758800733*t)