이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
기호 숫자, 기호 변수 및 기호 표현식 만들기
이 예제에서는 기호 숫자, 기호 변수 및 기호 표현식을 만드는 방법을 보여줍니다. 기호 수학을 사용하는 방법에 대해서는 기호 계산 수행하기 항목을 참조하십시오.
정확한 표현으로 기호 숫자 만들기
sym
을 사용하여 기호 숫자를 만들 수 있습니다. 기호 숫자는 부동소수점 숫자와 달리 정확한 표현입니다.
sym
을 사용하여 기호 숫자를 만들고 이와 동일한 부동소수점 숫자와 비교합니다.
a1Sym = sym(1/3)
a1Sym =
a1 = 1/3
a1 = 0.3333
a2Sym = sym(pi)
a2Sym =
a2 = pi
a2 = 3.1416
기호 숫자는 정확한 유리수 형식으로 표현되는 반면, 부동소수점 숫자는 소수로 표현되는 근삿값입니다.
기호 숫자에 대한 계산은 정확합니다. 기호적으로, 그리고 수치적으로 sin(pi)
를 구해 이 정확함을 확인해 보겠습니다. 숫자를 사용할 때의 결과는 근삿값이지만 기호를 사용할 때의 결과는 정확한 값입니다.
bSym = sin(sym(pi))
bSym =
b = sin(pi)
b = 1.2246e-16
숫자형 입력값에 대해 sym
을 사용하면 숫자 표현식은 먼저 정확도가 떨어질 수 있는 MATLAB® 디폴트 배정밀도 숫자로 계산됩니다. 그런 다음, sym
은 해당 배정밀도 숫자에 적용됩니다. 배정밀도로 계산하지 않고 정확한 숫자를 표현하려면 따옴표가 있는 문자형 벡터를 사용하십시오. 예를 들어, 매우 큰 정수를 정확히 표현하기 위해 기호 숫자를 만듭니다.
inaccurateNum = sym(123456789012345678)
inaccurateNum =
accurateNum = sym('123456789012345678')
accurateNum =
또한 숫자의 허수부를 1i
, 2i
등으로 지정하여 기호 복소수를 만들 수 있습니다.
sym('1234567 + 1i')
ans =
숫자의 기호 표현에 대한 자세한 내용은 수치 형식에서 기호 형식으로 변환 항목을 참조하십시오.
가변 정밀도로 기호 숫자 만들기
vpa
를 사용하여 가변 정밀도 부동소수점 연산방식으로 기호 숫자를 만들 수 있습니다. 기본적으로 vpa
는 32자리의 유효 자릿수로 값을 계산합니다.
piVpa = vpa(pi)
piVpa =
log(2)
와 같은 숫자 표현식에 대해 vpa
를 사용하면 숫자 표현식은 먼저 유효 자릿수가 32자리 미만인 MATLAB 디폴트 배정밀도 숫자로 계산됩니다. 그런 다음, vpa
는 정확도가 떨어질 수 있는 해당 배정밀도 숫자에 적용됩니다. 보다 정확한 결과값을 얻으려면 sym
을 사용하여 표현식의 배정밀도 숫자를 기호 숫자로 변환한 다음 vpa
를 사용하여 가변 정밀도로 결과값을 계산합니다. 예를 들어, 17자리 정밀도와 20자리 정밀도로 log(2)
를 구합니다.
vpaOnDouble = vpa(log(2))
vpaOnDouble =
vpaOnSym_17 = vpa(log(sym(2)),17)
vpaOnSym_17 =
vpaOnSym_20 = vpa(log(sym(2)),20)
vpaOnSym_20 =
큰 숫자를 변환할 때는 따옴표를 사용하여 정확히 표현합니다.
inaccurateNum = vpa(123456789012345678)
inaccurateNum =
accurateNum = vpa('123456789012345678')
accurateNum =
기호 변수 만들기
syms
또는 sym
을 사용하여 기호 변수를 만들 수 있습니다. 이러한 함수의 일반적인 용도는 다음과 같습니다.
sym
– 번호가 매겨진 기호 변수, MATLAB 함수에서 사용되는 기호 변수 또는 MATLAB 작업 공간에서의 이름과 값이 다른 기호 숫자를 만듭니다.syms
– 대화형 방식의 기호 연산 워크플로를 위한, 즉 MATLAB 명령줄 또는 MATLAB 라이브 스크립트에서의 기호 변수 생성을 위한 깨끗한 기호 변수를 만듭니다. 깨끗한 기호 변수에는 어떠한 가정도 없습니다.
syms
명령은 sym
구문의 축약적 표현법이지만 이 두 함수는 가정을 다르게 처리합니다. syms
는 변수를 만들 때 가정을 지웁니다. 이와 달리, sym
을 사용하면 변수를 다시 만들어도 변수의 가정이 지워지지 않습니다. 이 두 함수의 차이점에 대한 자세한 내용은 syms 또는 sym 함수 선택하기 항목을 참조하십시오.
syms
및 sym
을 사용하여 기호 변수 x 및 y를 각각 만듭니다.
syms x y = sym('y')
y =
첫 번째 명령은 변수 x
에 값 가 할당된 기호 변수 x
를 MATLAB 작업 공간에 만듭니다. 두 번째 명령은 값이 인 기호 변수 y
를 만듭니다.
syms
를 사용하면 하나의 명령으로 여러 변수를 만들 수 있습니다. 변수 a
, b
및 c
를 만듭니다.
syms a b c
기호 변수로 구성된 배열 만들기
번호가 매겨진 기호 변수로 구성된 MATLAB 배열을 만드는 경우 sym
구문 또는 syms
구문을 사용할 수 있습니다.
번호가 매겨진 기호 변수가 많은 배열을 만들려면 sym
을 사용하십시오. 작업 공간을 지웁니다. 기호 변수 을 포함하는 행 벡터를 만들고 이를 MATLAB 변수 A
에 할당합니다. MATLAB 작업 공간에 있는 변수를 표시합니다.
clear
A = sym('a',[1 10])
A =
whos
Name Size Bytes Class Attributes A 1x10 8 sym
A
는 10개의 자동 생성된 요소로 구성된 1×10 배열입니다. A
의 이러한 자동 생성된 요소는 MATLAB 작업 공간에 표시되지 않습니다.
syms
를 사용하면 대응하는 변수 이름을 갖는 깨끗한 기호 변수를 MATLAB 작업 공간에 많이 만들 수 있습니다. 작업 공간을 지웁니다. 깨끗한 기호 변수 a1, ..., a10
을 만듭니다. MATLAB 작업 공간에 있는 변수를 표시합니다.
clear syms a [1 10] whos
Name Size Bytes Class Attributes a 1x10 8 sym a1 1x1 8 sym a10 1x1 8 sym a2 1x1 8 sym a3 1x1 8 sym a4 1x1 8 sym a5 1x1 8 sym a6 1x1 8 sym a7 1x1 8 sym a8 1x1 8 sym a9 1x1 8 sym
MATLAB 작업 공간에는 기호 변수인 MATLAB 변수 10개가 작업 공간에 포함되어 있습니다.
syms
명령은 sym
구문에 대한 편리한 축약적 표현법이며 통상적으로 대화형 방식의 기호 워크플로에 사용할 깨끗한 기호 변수를 만드는 데 사용됩니다. sym
구문을 사용하면 다음을 만들 수 있습니다.
MATLAB 함수의 기호 변수
번호가 매겨진 다수의 기호 변수
값이 MATLAB 작업 공간에서의 이름과 같지 않은 기호 변수
sym(3)/11
등의 기호 숫자같은 이름을 가진 이전에 사용된 기호 변수로부터 가정을 상속 받은 기호 변수
기호 표현식 만들기
황금비 를 나타내기 위해 기호 변수를 사용한다고 가정해 보겠습니다.
sym
을 사용하여 황금비를 만듭니다.
phi = (1 + sqrt(sym(5)))/2;
이제 phi
에 대해 다양한 수학 연산을 수행할 수 있습니다. 예를 들면 다음과 같습니다.
f = phi^2 - phi - 1
f =
다음으로, 2차 함수 를 검토한다고 가정해 보겠습니다. 먼저, 기호 변수 a
, b
, c
및 x
를 만듭니다.
syms a b c x
그런 다음, 산술식 를 나타내는 기호 표현식 f
를 만듭니다.
f = a*x^2 + b*x + c
f =
solve
를 사용하여 에 대한 2차 방정식 을 풉니다.
x_0 = solve(f == 0,x)
x_0 =
수학 함수를 산술식에 적용할 수도 있습니다. 예를 들어, 제1종 베셀 함수 을 산술식 에 적용하고 에 대한 해당 도함수를 구합니다.
J_0 = besselj(0,f)
J_0 =
DJ_0 = diff(J_0,x)
DJ_0 =
기호 표현식에 기호 숫자를 만들려면 sym
을 사용합니다. 상수인 기호 표현식을 만들려는 경우에는 syms
를 사용하지 마십시오. 예를 들어, 값이 5
인 표현식을 만들려면 f = sym(5)
를 입력하면 됩니다. 명령 f = 5
는 f
를 기호 표현식으로 정의하지 않습니다.
또한 텍스트 파일에서 표현식을 읽어 들이거나 숫자를 정확히 지정하는 경우 str2sym
을 사용하여 문자열에서 기호 표현식을 만들 수 있습니다.
기호 객체의 이름 재사용하기
변수를 어떤 기호 표현식과 같다고 설정한 후 syms
명령을 해당 변수에 적용하면 MATLAB은 이전에 정의된 표현식을 이 변수에서 제거합니다.
예를 들어, 기호 표현식 f
를 만듭니다.
syms a b f = a + b
f =
f를 다시 만들면 MATLAB은 표현식 f
에서 값 를 제거합니다.
syms f
f
f =
syms
명령을 사용하여 이전에 MATLAB 세션에서 할당한 정의를 갖는 변수를 지울 수 있습니다. syms
는 변수에 대한 가정을 지웁니다. 이러한 가정(실수, 정수, 유리수, 양수일 수 있음)은 기호 객체와는 별도로 저장됩니다. 이와 달리, sym
을 사용하면 변수를 다시 만들어도 변수의 가정이 지워지지 않습니다. 자세한 내용은 Use Assumptions on Symbolic Variables 항목을 참조하십시오.