double
기호 값을 MATLAB 배정밀도 값으로 변환
설명
는 기호 값 d
= double(s
)s
를 배정밀도 값으로 변환합니다. MATLAB® 함수가 기호 값을 허용하지 않는 경우, 기호 값을 배정밀도 값으로 변환하는 것이 유용합니다. 기호 숫자와 배정밀도 숫자와의 차이점에 대해서는 수치 연산방식 또는 기호 연산방식 선택하기 항목을 참조하십시오.
예제
기호 숫자를 배정밀도 값으로 변환하기
double
을 사용하여 기호 숫자를 배정밀도 값으로 변환합니다. 배정밀도 숫자는 반올림 오차가 있는 반면 기호 숫자는 정확합니다.
및 을 기호 형식에서 배정밀도로 변환합니다.
symN = sym([pi 1/3])
symN =
doubleN = double(symN)
doubleN = 1×2
3.1416 0.3333
반올림 오차에 대한 자세한 내용은 반올림 오차를 인식하고 방지하기 항목을 참조하십시오.
가변 정밀도를 배정밀도로 변환하기
vpa
에 의해 생성된 가변 정밀도 수치는 기호 값입니다. MATLAB 함수에서 기호 값을 허용하지 않는 경우 double
을 사용하여 가변 정밀도를 배정밀도로 변환하십시오.
및 을 가변 정밀도 형식에서 배정밀도로 변환합니다.
vpaN = vpa([pi 1/3])
vpaN =
doubleN = double(vpaN)
doubleN = 1×2
3.1416 0.3333
기호 행렬을 배정밀도 행렬로 변환하기
double
을 사용하여 행렬 symM
의 기호 숫자를 배정밀도 숫자로 변환합니다.
a = sym(sqrt(2)); b = sym(2/3); symM = [a b; a*b b/a]
symM =
doubleM = double(symM)
doubleM = 2×2
1.4142 0.6667
0.9428 0.4714
고정밀도 변환
내부 소거 또는 반올림 오차가 있는 기호 표현식을 변환할 때는 숫자를 변환하기 전에 digits
를 사용하여 계산 정밀도를 높이십시오.
수치적으로 불안정한 표현식인 Y
를 double
을 사용하여 변환합니다. 그런 다음 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)
기호 결과를 배정밀도로 변환하기
solve
를 사용하여 삼각 함수 방정식 을 풉니다. ReturnConditions
옵션을 true
로 설정하여 완전해, 해에 사용된 파라미터, 그러한 파라미터에 적용된 조건을 반환합니다.
syms x
eqn = sin(2*x) + cos(x) == 0;
[solx,params,conds] = solve(eqn,x,ReturnConditions=true)
solx =
params =
conds =
솔버는 MATLAB® 작업 공간에 파라미터에 대한 변수 를 만들지 않습니다. 이 변수를 만듭니다. 그리고 subs
를 사용하여 의 해를 구합니다.
syms k
sols_k2 = subs(solx,k,2)
sols_k2 =
이 해는 정확한 기호 숫자입니다. 이러한 숫자를 배정밀도 숫자로 변환합니다.
doublesols_k2 = double(sols_k2)
doublesols_k2 = 3×1
7.8540
12.0428
16.2316
숫자로 구성된 기호 행렬 변수를 배정밀도로 변환하기
를 나타내는 기호 표현식 S
를 만듭니다. 여기서 는 2×2 기호 행렬 변수입니다.
syms A 2 matrix S = A*A - 2*A + eye(2)
S =
에 기호 숫자 을 대입합니다.
Aval = [cos(sym(pi)/5) sin(pi/4); -1 0]; symS = subs(S,A,Aval)
symS =
결과를 배정밀도 행렬로 변환합니다.
doubleS = double(symS)
doubleS = 2×2
-0.6706 -0.8422
1.1910 0.2929
입력 인수
버전 내역
R2006a 이전에 개발됨R2022b: 숫자로 구성된 기호 행렬 변수를 배정밀도로 변환하기
symmatrix
유형의 숫자로 구성된 기호 행렬 변수를 double
유형의 배정밀도 행렬로 변환할 수 있습니다. 예제는 숫자로 구성된 기호 행렬 변수를 배정밀도로 변환하기 항목을 참조하십시오.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)