我試過boost::math::cyl_bessel_k(x,y) * exp(y)
。在大多數情況下,這等於Matlab的規模爲besselk(x,y,1)
。但在某些情況下(例如,x=1
,y=2000
)當besselk(x,y)=0
和boost::math::cyl_bessel_k(x,y)=0
時,Matlab的縮放版本besselk(x,y,1)
給了我不同的值,在10^-3
左右。但是boost::math::cyl_bessel_k(x,y) * exp(y)
返回-nan
。我想爲Matlab的besselk(x,y,1)
找到相應的聲明。我該如何處理?在C++中,「Matlab besselk(x,y,1)」的確切等價物是什麼?
2
A
回答
1
在Boost中,我沒有看到任何需要的東西(儘管您可能可以使用低級函數自己實現它)。正如您發現的那樣,縮放貝塞爾函數不是簡單地乘以exp(z)
來計算的。 GSL似乎包含了該功能,例如gsl_sf_bessel_Knu_scaled
。對於「確切等效」,您可能會看到the paper和code by Amos,例如CBESK。 Matlab和Octave似乎都使用這個實現。但是,代碼是用Fortran編寫的,所以你需要翻譯它或者在它周圍包裝一個包裝(this project似乎已經做到了,所以它可能是有用的 - 也有其他人)。
您也可以使用Matlab的編碼器和codegen
來輸出。
相關問題
- 1. 什麼是cellfun(@(x)x/sum(x(:)),y,'UniformOutput',0)的等價物?
- 2. matplotlib中Matlab的surf(x,y,z,c)等價於什麼?
- 3. 什麼是MySQL語法LIMIT x,y的T-SQL等價物?
- 4. 什麼是OS X的UIGraphicsGetCurrentContext()等價物?
- 5. JS中的確切等價物是什麼:something.toFixed()in PHP?
- 6. 什麼是C++中的instanceof等價物?
- 7. 什麼是C#中的vbNullChar等價物?
- 8. C#中bigint的等價物是什麼?
- 9. C#中TreeBidiMap的等價物是什麼?
- 10. C#中memset的等價物是什麼?
- 11. 什麼是C++中的matlab smooth3函數的等價物?
- 12. OSX上與LD_PRELOAD的確切等價物是什麼?
- 13. rlwinm的C++等價物是什麼? (PowerPC)
- 14. 什麼是EventWaitHandle的Objective C等價物?
- 15. 什麼是ChrW(e.KeyCode)的C#等價物?
- 16. 什麼是UINT32_MAX的C++等價物?
- 17. &H2的C#等價物是什麼?
- 18. 什麼是C?:operator的Ruby等價物?
- 19. 什麼是C++ typeid的Scala等價物?
- 20. 什麼是Java DecimalFormat的c#等價物?
- 21. 什麼是CRT的C++等價物?
- 22. 什麼是C++ deque的Java等價物?
- 23. 什麼是MsgWaitForMultipleObjects的C#等價物?
- 24. 什麼是Java Socket.getInetAddress()的C#等價物?
- 25. 什麼是Java的類<X>類型的C#等價物?
- 26. c#方法Math.IEEERemainder(x,y)在MATLAB中等價嗎?
- 27. Facebook-C#-SDK:Graph API版本(5.0.x)中的DesktopSession等價物(3.0.x)是什麼?
- 28. 爲什麼在C++中x [y] == y [x]?
- 29. 什麼是R中的matlab pcolor的等價物?
- 30. 在C#中C++ const size_t的等價物是什麼?
'gsl_sf_bessel_Knu_scaled'正常工作,除了第一個參數是負數。當第一個參數爲負值時,出現如下錯誤:'gsl:bessel_Knu.c:42:ERROR:域錯誤 默認的GSL錯誤處理程序被調用。 中止(核心轉儲)'。另外,我把這行放在錯誤處理'gsl_set_error_handler_off();',但是這次'gsl_sf_bessel_Knu_scaled'的輸出又是'nan'。我該如何處理? – taha
我發現如果第一個參數是負數,結果將與'gsl_sf_bessel_Knu_scaled(abs(firstparam),y)'相同。所以它工作。非常感謝你! – taha