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