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(x3+1,x,1)root(x3+1,x,2)root(x3+1,x,3))

root(x3+1,x,1)p의 첫 번째 근을 표현하고 root(x3+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(z3+3z-16,z,1)root(z3+3z-16,z,2)root(z3+3z-16,z,3))

MaxDegree 옵션을 다항식 차수로 설정하여 근을 명시적으로 구합니다. 4보다 높은 차수의 다항식은 양함수 해를 갖지 않습니다.

Rexplicit = solve(p,x,"MaxDegree",3)
Rexplicit = 

(σ1-1σ112σ1-σ12-31σ1+σ1i212σ1-σ12+31σ1+σ1i2)where  σ1=65+81/3

vpa를 사용해 R을 고정밀도 부동소수점으로 변환하여 근을 수치적으로 계산합니다.

Rnumeric = vpa(R)
Rnumeric = 

(2.1267693318103912337456401562601-1.0633846659051956168728200781301-2.5283118563671914055545884653776i-1.0633846659051956168728200781301+2.5283118563671914055545884653776i)

root에 대한 호출에 파라미터가 포함된 경우 vpa를 호출하기 전에 subs를 사용하여 파라미터에 숫자를 대입합니다.

root 함수를 simplify, subs, diff와 같은 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(x2+5x,x,1)

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

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

diff(root(x^2 + b*x, x, 1), b)
ans = 

root(x2+bx,x,1)b

ilaplace를 사용하여 두 다항식의 비에 대한 라플라스 역변환을 구합니다. 라플라스 역변환은 root에 대한 식으로 반환됩니다.

syms s
G = (s^3 + 1)/(s^6 + s^5 + s^2);
H = ilaplace(G)
H = 

t-k=14etroot(z4+z3+1,z,k)4root(z4+z3+1,z,k)+3

출력값으로 root 함수를 받는 경우 이후 기호 계산에서 root 함수를 입력값으로 사용할 수 있습니다. 하지만 수치 결과가 필요한 경우에는 vpa를 사용하여 root 함수를 고정밀도 수치 결과로 변환해야 합니다.

vpa를 사용하여 라플라스 역변환을 숫자형으로 변환합니다.

H_vpa = simplify(vpa(H))
H_vpa = t+0.30881178580997278695808136329347e-1.0189127943851558447865795886366tcos(0.60256541999859902604398442197193t)-0.30881178580997278695808136329347e0.5189127943851558447865795886366tcos(0.666609844932018579153758800733t)-0.6919689479355443779463355813596e-1.0189127943851558447865795886366tsin(0.60256541999859902604398442197193t)-0.16223098826244593894459034019473e0.5189127943851558447865795886366tsin(0.666609844932018579153758800733t)

입력 인수

모두 축소

기호 다항식으로, 기호 표현식으로 지정됩니다.

변수로, 기호 변수로 지정됩니다.

다항식 근의 번호로, 숫자, 벡터, 행렬, 다차원 배열, 또는 기호 숫자, 기호 벡터, 기호 행렬 또는 기호 다차원 배열로 지정됩니다. k가 비 스칼라이면 rootk에 대해 요소별로 작동합니다.

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

  • 가변 정밀도 기호 숫자를 반환하기 위해 vpa를 사용하여 root 함수를 포함하는 기호 표현식을 수치적으로 근사할 수 있습니다. R2023a부터 matlabFunction을 사용하여 표현식을 Symbolic Math Toolbox 없이 사용 가능한 MATLAB® 함수로 변환할 수 있습니다. 생성된 파일은 double형 숫자에 대해 연산을 수행하는 roots 함수를 사용합니다.

버전 내역

R2015b에 개발됨

참고 항목

| |