root

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

Синтаксис

Описание

пример

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

пример

root(p,x,k) представляет kкорень th символьного полиномиального 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