Представление корней полинома
root( возвращает вектор-столбец пронумерованных корней символьного полинома p,x)p относительно x. Символически решение полинома высокой степени для его корней может быть комплексным или математически невозможным. В этом случае Symbolic Math Toolbox™ использует root функция для представления корней полинома.
Представление корней полинома использование 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 функция как вход в функции Symbolic Math Toolbox, такие как 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)