이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
대수 방정식 풀기
Symbolic Math Toolbox™는 기호 방정식 솔버 및 수치 방정식 솔버를 모두 제공합니다. 여기에서는 기호 솔버 solve
를 사용하여 방정식을 기호적으로 푸는 방법을 보여줍니다. 기호 솔버와 수치 솔버를 비교하려면 수치 솔버 또는 기호 솔버 선택하기 항목을 참조하십시오.
방정식 풀기
eqn
이 방정식인 경우 solve(eqn, x)
는 기호 변수 x
에 대해 eqn
을 풉니다.
==
연산자를 사용하여 익숙한 2차 방정식을 지정하고 solve
를 사용하여 계산합니다.
syms a b c x eqn = a*x^2 + b*x + c == 0; solx = solve(eqn, x)
solx = -(b + (b^2 - 4*a*c)^(1/2))/(2*a) -(b - (b^2 - 4*a*c)^(1/2))/(2*a)
solx
는 2차 방정식의 두 해를 포함하는 기호 벡터입니다. 입력 eqn
이 방정식이 아니고 표현식인 경우 solve
는 방정식 eqn == 0
을 풉니다.
x
이외의 변수에 대해 해를 구하려면 그 변수를 대신 지정하십시오. 예를 들어, b
에 대해 eqn
을 풀어 보겠습니다.
solb = solve(eqn, b)
solb = -(a*x^2 + c)/x
변수를 지정하지 않으면 solve
는 symvar
을 사용하여 어떤 변수에 대해 해를 구할지 선택합니다. 예를 들어, solve(eqn)
은 x
에 대해 eqn
을 계산합니다.
방정식에 대한 전체 해 반환하기
solve
는 방정식의 전체 해를 자동으로 반환하지 않습니다. 방정식 cos(x) == -sin(x)
를 풉니다. solve
함수는 많은 해 중 하나를 반환합니다.
syms x solx = solve(cos(x) == -sin(x), x)
solx = -pi/4
해의 파라미터 및 해의 조건과 함께 모든 해를 반환하려면 ReturnConditions
옵션을 true
로 설정하십시오. 동일한 방정식을 풀어 전체 해를 구합니다. x
의 해, 해의 파라미터, 해의 조건 등 세 가지 출력 변수를 입력하십시오.
syms x [solx, param, cond] = solve(cos(x) == -sin(x), x, 'ReturnConditions', true)
solx = pi*k - pi/4 param = k cond = in(k, 'integer')
solx
는 x
의 해인 pi*k - pi/4
를 포함합니다. param
변수는 해의 파라미터인 k
를 지정합니다. cond
변수는 해에서 in(k, 'integer')
조건을 지정합니다. 이는 k
가 정수여야 함을 의미합니다. 따라서 solve
는 pi/4
부터 시작하여 pi*k
의 간격으로 반복되는 주기적 해를 반환하며 여기서 k
는 정수입니다.
solve에서 반환한 전체 해, 파라미터 및 조건을 사용하여 작업하기
solve
에서 반환한 해, 파라미터 및 조건을 사용하여 어떤 구간이나 추가 조건에 맞는 해를 구할 수 있습니다.
-2*pi<x<2*pi
구간 내의 x
의 값을 구하려면 k
에 대해 해당 구간 내에서 조건 cond
에 맞는 solx
를 계산하십시오. assume
을 사용하여 조건 cond
를 가정합니다.
assume(cond) solk = solve(-2*pi<solx, solx<2*pi, param)
solk = -1 0 1 2
이러한 k
값에 대응하는 x
의 값을 구하려면 subs
를 사용하여 solx
의 k
에 값을 대입하십시오.
xvalues = subs(solx, solk)
xvalues = -(5*pi)/4 -pi/4 (3*pi)/4 (7*pi)/4
이러한 기호 값을 수치 계산에 사용하기 위해 숫자형 값으로 변환하려면 vpa
를 사용하십시오.
xvalues = vpa(xvalues)
xvalues = -3.9269908169872415480783042290994 -0.78539816339744830961566084581988 2.3561944901923449288469825374596 5.4977871437821381673096259207391
solve에서 반환한 해 시각화 및 플로팅하기
이전 섹션에서는 solve
를 사용하여 방정식 cos(x) == -sin(x)
를 풀었습니다. 이 방정식에 대한 해는 fplot
및 scatter
와 같은 플로팅 함수를 사용하여 시각화할 수 있습니다.
방정식 cos(x) == -sin(x)
의 좌변 및 우변을 다 플로팅합니다.
fplot(cos(x)) hold on grid on fplot(-sin(x)) title('Both sides of equation cos(x) = -sin(x)') legend('cos(x)','-sin(x)','Location','best','AutoUpdate','off')
x
값에서의 함수의 값을 계산하고 scatter
를 사용하여 해를 점으로 겹쳐 놓습니다.
yvalues = cos(xvalues)
yvalues =
scatter(xvalues, yvalues)
예상대로 두 플롯의 교차점에 해가 나타납니다.
복잡한 결과 단순화 및 성능 향상시키기
결과가 복잡하거나, solve
가 멈추거나, 성능을 향상시키려는 경우 solve 함수로 방정식 해를 구할 때 발생하는 문제 해결하기 항목을 참조하십시오.