Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

root

다항식의 근 표현하기

설명

예제

root(p,x)x에 대한 기호 다항식 p의 번호가 매겨진 근으로 구성된 열 벡터를 반환합니다. 높은 차수 다항식의 근을 기호적으로 푸는 것은 복잡할 수 있으며, 수학적으로 불가능할 수도 있습니다. 이 경우 Symbolic Math Toolbox™는 root 함수를 사용하여 다항식의 근을 표현합니다.

예제

root(p,x,k)x에 대한 기호 다항식 pk번째 근을 표현합니다.

예제

높은 차수 다항식의 근 표현하기

root를 사용하여 다항식 x3+1의 근을 표현합니다. root 함수는 열 벡터를 반환합니다. 이 벡터의 요소는 다항식의 근 3개를 표현합니다.

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)는 두 번째 근을 표현하는 식입니다. 높은 차수 다항식의 근을 표현하려면 이 구문을 사용하십시오.

높은 차수 다항식의 근 구하기

높은 차수 다항식을 풀 때 solveroot를 사용하여 근을 표현합니다. 또는 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에 대한 호출에 파라미터가 포함된 경우 vpa를 호출하기 전에 subs를 사용하여 파라미터에 숫자를 대입합니다.

기호 계산에 root 사용하기

root 함수를 simplify, subsdiff와 같은 Symbolic Math Toolbox 함수에 대한 입력값으로 사용할 수 있습니다.

simplify 함수를 사용하여 root를 포함하는 표현식을 단순화합니다.

syms x
r = root(x^6 + x, x, 1);
simplify(sin(r)^2 + cos(r)^2)
ans =
1

subs를 사용하여 root의 파라미터에 숫자를 대입합니다.

syms b
subs(root(x^2 + b*x, x, 1), b, 5)
ans =
root(x^2 + 5*x, x, 1)

vpa를 사용하여 root를 숫자형으로 변환하기 전에 subs를 사용하여 파라미터에 값을 대입해야 합니다.

diff를 사용하여 파라미터에 대한 root를 포함하는 표현식을 미분합니다.

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 함수를 입력값으로 사용할 수 있습니다. 하지만 숫자형 결과가 필요한 경우에는 vpa를 사용하여 root 함수를 고정밀도 숫자형 결과로 변환해야 합니다.

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가 비 스칼라이면 rootk에 대해 요소별로 작동합니다.

예: root(f,x,3)f의 세 번째 근을 표현합니다.

참고 항목

|

R2015b에 개발됨