이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
수치 형식에서 기호 형식으로 변환
이 항목에서는 Symbolic Math Toolbox™가 숫자를 기호 형식으로 변환하는 방법을 보여줍니다. 기호 연산방식 및 수치 연산방식에 대한 개요는 수치 연산방식 또는 기호 연산방식 선택하기 항목을 참조하십시오.
숫자형 입력값을 기호 형식으로 변환하려면 sym
명령을 사용하십시오. 기본적으로 sym
은 숫자 표현식의 유리수 근삿값을 반환합니다.
t = 0.1; sym(t)
ans =
sym
을 사용하면 배정밀도 값 0.1
이 정확한 기호 값 으로 근사하는 것을 확인할 수 있습니다. 일반적으로 sym
은 정확한 기호 형식을 반환하기 위해 부동소수점 입력값의 반올림 오차를 수정하려고 시도합니다. 특히, sym
은 , , , 및 형식과 일치하는 숫자형 입력값의 반올림 오차를 수정합니다. 여기서 와 는 적당한 크기의 정수입니다.
이러한 형식에 대해, sym
이 부동소수점 입력값을 정확한 기호 형식으로 변환하는 것을 확인합니다. 먼저, , 및 의 수치적 근삿값을 구합니다.
N1 = 1/7
N1 = 0.1429
N2 = pi
N2 = 3.1416
N3 = 1/sqrt(2)
N3 = 0.7071
수치 근삿값을 정확한 기호 형식으로 변환합니다. sym
은 반올림 오차를 수정합니다.
S1 = sym(N1)
S1 =
S2 = sym(N2)
S2 =
S3 = sym(N3)
S3 =
입력값을 따옴표로 묶어 sym
이 입력값을 그대로 받도록 할 수 있습니다. 이전 입력값 0.142857142857143
에서 이 동작을 확인합니다. sym
함수는 입력값을 1/7
로 변환하지 않습니다.
sym('0.142857142857143')
ans =
큰 숫자를 변환할 때는 따옴표를 사용하여 정확하게 표현합니다. sym(133333333333333333333)
과 sym('133333333333333333333')
을 비교하여 이 동작을 확인합니다.
sym(1333333333333333333)
ans =
sym('1333333333333333333')
ans =
선택적인 두 번째 인수('f'
, 'r'
, 'e'
또는 'd'
)를 사용하여 sym
이 부동소수점 숫자를 변환하기 위해 사용하는 기법을 지정할 수 있습니다. 유리수 형식의 경우 디폴트 플래그는 'r'
입니다.
유리수 기호 형식으로 변환
'r'
플래그를 지정한 sym
을 호출하여 입력값을 정확한 유리수 형식으로 변환합니다. 이는 플래그 없이 sym
을 호출할 때 발생하는 디폴트 동작입니다.
t = 0.1;
sym(t,'r')
ans =
부동소수점 전개를 사용한 변환
플래그 'f'
를 지정하여 sym
을 호출하면 sym
은 을 사용하여 배정밀도 부동소수점 숫자를 숫자형 값으로 변환합니다. 여기서 과 는 각각 지수와 가수입니다.
부동소수점 전개를 사용하여 t
를 변환합니다.
sym(t,'f')
ans =
오차 항이 있는 유리수 기호 형식으로 변환
플래그 'e'
를 지정하여 sym
을 호출하면 sym
은 t
의 유리수 형식 및 t
의 추정된 정확한 값과 해당 부동소수점 표현 사이의 오차를 반환합니다. 이 오차는 eps
(부동소수점 상대 정밀도)로 표현됩니다.
t
를 기호 형식으로 변환합니다. 추정된 기호 형식과 해당 부동소수점 값 사이의 오차를 반환합니다.
sym(t,'e')
ans =
오차 항 eps/40
는 sym('0.1')
과 sym(0.1)
간의 차이입니다.
소수 형식으로 변환
플래그 'd'
를 지정한 sym
을 호출하면 sym
은 입력값의 소수 전개를 반환합니다. digits
함수는 사용되는 유효 자릿수를 지정합니다. digits
의 디폴트 값은 32입니다.
sym(t,'d')
ans =
digits
를 사용하여 유효 자릿수를 변경합니다.
digitsOld = digits(7);
sym(t,'d')
ans =
추후 계산을 위해 digits
의 이전 값을 복원합니다.
digits(digitsOld)
가변 정밀도로 변환
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 =