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