root

Представление корней полинома

Синтаксис

Описание

пример

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

пример

root(p,x,k) представляет kпервый корень символьного полинома p относительно x.

Примеры

Представление корней полинома высокой степени

Представление корней полинома x3+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 функция как вход в функции 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)

Входные параметры

свернуть все

Символьный полином, заданный как символьное выражение.

Переменная, заданная как символьная переменная.

Количество полиномиальных корней, заданное как число, вектор, матрица, многомерный массив или как символьное число, вектор, матрица или многомерный массив. Когда k является нескаляром, root действует поэлементно на k.

Пример: root(f,x,3) представляет третий корень f.

См. также

|

Введенный в R2015b