Matrix 고유 값 문제를 해결하는 동안 어떻게 MATLAB에서 4 배 정밀도 (128 비트 산술)를 구현할 수 있습니까?MATLAB 정밀도
나는 압축되지 않는 평면 Couette 유동에 대한 선형 안정성 분석 문제를 해결하려고하고 있으며, MATLAB의 기본 64 비트 정밀도는 높은 Reynolds 수 (약 4000)에는 충분하지 않습니다.
Matrix 고유 값 문제를 해결하는 동안 어떻게 MATLAB에서 4 배 정밀도 (128 비트 산술)를 구현할 수 있습니까?MATLAB 정밀도
나는 압축되지 않는 평면 Couette 유동에 대한 선형 안정성 분석 문제를 해결하려고하고 있으며, MATLAB의 기본 64 비트 정밀도는 높은 Reynolds 수 (약 4000)에는 충분하지 않습니다.
variable-precision arithmetic은 MATLAB에서 Symbolic Math Toolbox을 사용하여 수행 할 수 있습니다. VPA 함수의 경우 significant digits 수로 34
을 사용하면 quadruple precision floating-point number과 거의 같은 정밀도를 얻게됩니다.
심볼릭 수학 도구 상자에 액세스 할 수없는 경우 "Multiple Precision Toolbox for MATLAB"을 MathWorks File Exchange에있는 Ben Barrowes에서 체크 아웃합니다.
저는 심볼릭 도구 상자가 필요없는 MATLAB의 일반 정밀 부동 소수점 산술 도구 상자가 있습니다. 이제 파일 교환에서 사용할 수 있습니다. 예를 들어, 정밀 200 자리 ...에
>> X = hpf('1.2',200)
X =
1.2
>> X^723 - 2
ans =
1770275636625441478440184064843963160282702377364043536065.674784028
335311702907341138106304578079399191891193908698215227428501441099262538
4031886249461115861966367898404170725299823585166135087107488
당신이 HPF 번호를 사용하는 경우 정밀도 (200 개) 자리에서 연산을 모두 수행하려면
후 단지로 기본값을 지정합니다.>> DefaultNumberOfDigits 200
>> hpf('pi')
ans =
3.141592653589793238462643383279502884197169399375105820974944592307
816406286208998628034825342117067982148086513282306647093844609550582231
7253594081284811174502841027019385211055596446229489549303819
HPF는 고정 된 자릿수로 작동하므로 디자인상의 진정한 가변 정밀 공구가 아닙니다. 최대 수십 자리 수까지 합리적으로 효율적입니다. exp (pi)의 100 자리를 얻으려면 약 1/4 초가 걸립니다.
>> timeit(@() exp(hpf('pi',100)))
ans =
0.2643
Trig 기능도 있습니다. 여기 1000 자릿수의 죄 (pi). 물론 0이어야합니다.
>> tic,sin(hpf('pi',1000)),toc
ans =
0
Elapsed time is 0.201679 seconds.
Multiprecision Computing Toolbox for MATLAB 빠른 배 정밀 모드가 있습니다.
특히, Symbol Math Toolbox (동일한 4 배 정밀도 사용)보다 100 x 100 매트릭스의 고유 값 & 벡터를 x70-x100 배 빠르게 계산할 수 있습니다.
비교 및 자세한 내용은 Fast Quadruple Precision Computations in MATLAB 페이지를 참조하십시오.
다른 대안 외에 - Symbolic Math Toolbox와 Ben Barrowes의 라이브러리에는 모두 제한 사항이 있습니다. 내 대답 here을 참조하십시오.
현재 기호화 된 도구 상자를 사용하여 문제를 해결하려고합니다. 그러나 일반 정밀 부동 소수점 산술 도구 상자에 대한 코드를 우편으로 보내 주시면 좋을 것입니다. – Dev
HPF가 파일 교환 중입니다. http://www.mathworks.com/matlabcentral/fileexchange/36534-hpf-a-big-decimal-class-currently-in-beta-release –
PDF 문서에 따르면이 도구 상자는 더하기, 곱하기, 나누기, log2 (x), sin (x), cos (x), tan (x), 1/sqrt (x), 1/sqrt (x), exp arcsin (x), arctan (x), arctan (x), sinh (x), cosh (x), tanh (x), arsinh (x), arcosh (x), artanh (x) –