이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

double

기호 값을 MATLAB 배정밀도 값으로 변환

구문

설명

double(s)는 기호 값 s를 배정밀도 값으로 변환합니다. MATLAB® 함수가 기호 값을 허용하지 않는 경우, 기호 값을 배정밀도 값으로 변환하는 것이 유용합니다. 기호 숫자와 배정밀도 숫자와의 차이점에 대해서는 Choose Symbolic or Numeric Arithmetic 항목을 참조하십시오.

예제

기호 숫자를 배정밀도 값으로 변환하기

double을 사용하여 기호 숫자를 배정밀도 값으로 변환합니다. 배정밀도 숫자는 반올림 오차가 있는 반면 기호 숫자는 정확합니다.

pi1/3을 기호 형식에서 배정밀도 형식으로 변환합니다.

symN = sym([pi 1/3])
symN =
[ pi, 1/3]
doubleN = double(symN)
doubleN =
    3.1416    0.3333

반올림 오차에 대한 자세한 내용은 Recognize and Avoid Round-Off Errors 항목을 참조하십시오.

가변 정밀도를 배정밀도로 변환하기

vpa에 의해 생성된 가변 정밀도 수치는 기호 값입니다. MATLAB 함수에서 기호 값을 허용하지 않는 경우 double을 사용하여 가변 정밀도를 배정밀도로 변환하십시오.

pi1/3을 가변 정밀도 형식에서 배정밀도로 변환합니다.

vpaN = vpa([pi 1/3])
vpaN =
[ 3.1415926535897932384626433832795, 0.33333333333333333333333333333333]
doubleN = double(vpaN)
doubleN =
    3.1416    0.3333

기호 행렬을 배정밀도 행렬로 변환하기

double을 사용하여 행렬 symM의 기호 숫자를 배정밀도 숫자로 변환합니다.

a = sym(sqrt(2));
b = sym(2/3);
symM = [a b; a*b b/a]
symM =
[       2^(1/2),       2/3]
[ (2*2^(1/2))/3, 2^(1/2)/3]
doubleM = double(symM)
doubleM =
    1.4142    0.6667
    0.9428    0.4714

고정밀도 변환

내부 소거 또는 반올림 오차가 있는 기호 표현식을 변환할 때는 숫자를 변환하기 전에 digits를 사용하여 계산 정밀도를 높이십시오.

수치적으로 불안정한 표현식인 Ydouble을 사용하여 변환합니다. 그런 다음 digits를 사용하여 정밀도를 100자리로 늘리고 Y를 다시 변환합니다. 이 고정밀도 변환은 정확하지만 저정밀도 변환은 정확하지 않습니다.

Y = ((exp(sym(200)) + 1)/(exp(sym(200)) - 1)) - 1;
lowPrecisionY = double(Y)
lowPrecisionY =
     0
digitsOld = digits(100);
highPrecisionY = double(Y) 
highPrecisionY =
   2.7678e-87

추후 계산을 위해 digits에서 사용한 이전 정확도를 복원합니다.

digits(digitsOld)

입력 인수

모두 축소

기호 입력값으로, 기호 숫자 또는 기호 숫자로 구성된 벡터, 행렬, 다차원 배열로 지정됩니다.

R2006a 이전에 개발됨