2009-07-28 97 views
2

我在尋找Java中的貝塞爾函數的Excel函數BESSELI匹配,說明中提供:貝塞爾庫函數


返回修正貝塞爾函數,這相當於評估的貝塞爾函數純粹虛構的論點。

語法 BESSELI(X,N)

X是在該評價函數的值。

N是貝塞爾函數的階數。如果n不是整數,則它被截斷。


我發現的東西,看起來很近,但也有許多不同類型的貝塞爾函數的...

我的另一種選擇是嘗試,並得出一個近似,但聽起來相當強悍。任何人都可以給我任何關於如何在Java中表示該excel函數的好建議?

+0

我認爲貝塞爾函數只有一種'類型'(http://en.wikipedia.org/wiki/Bessel_function),但是有不同的順序,但是你找到的任何東西都應該起作用。 – falstro 2009-07-28 09:54:10

+0

不,不對。有J和Y,I和K,ber和bei,ker和kei等等。 – duffymo 2009-07-28 10:01:22

+0

對,我依稀記得現在..對不起。儘管我想大多數處理bessel函數的庫可能會支持你可能需要的任何東西。 – falstro 2009-07-28 10:05:18

回答

1

JScience提供具有修改的貝塞爾函數的類SpecialMathsUtils

如果Excel函數在當前窗體/實現中對您尤其重要,則可以直接使用Excel啓動Excel COM對象,然後在Excel中調用該方法。我在使用JACOB之前完成了這個工作,它工作正常。

但它取決於您的用例,性能標準和部署方案。

1

挖掘出Fortran,C和C++風格(或者,如果您的庫非常好,也可以在Basic和Pascal中)並翻譯的數值食譜的副本。按照外來函數的通常標準,貝塞爾函數相當「容易」。進一步的信息,你可以在http://mathworld.wolfram.com/BesselFunction.html

1

您可以使用數字圖書館數學函數:

http://dlmf.nist.gov/

以下是關於Java編程和計算可我從經驗中學特殊功能短短的事情。

如果你有CPU的能力這樣做,儘可能使用BigDecimal。目前(2015年7月),微軟似乎在.NET框架中沒有內部的任意數字精度庫。這使科學計算變得棘手。他們如何達到他們在VB6/VBA for Excel中所做的精確度,讓我無法迴避。

BigDecimal,另一方面,相對容易使用。我的一個朋友介紹給BigDecimal和在Murach書上的Java 5讀到它我會強烈建議Oracle文檔:

http://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html

其次,是有區別的,因爲你可能已經觀察,浮點錯誤和近似於特殊函數引入的數學數值誤差之間。數學 - 數字錯誤和浮點錯誤共同使應用程序開發變得困難。使用很多不同的程序來檢查你自己和你的計算。

第三,BigDecimal的字符串構造函數在許多情況下比雙重構造函數更可取。請參閱上面的Oracle文檔。第四,在使用MathContext的無限精度的BigDecimal時要非常小心。請注意,您可能必須使用setScale來介紹您的應用程序需要多少小數位,以避免無限重複小數表達式以及JVM拋出的異常。

第五,首先嚐試檢查第一類修改的貝塞爾函數的整數參數。此外,您可以從可用的遞歸關係或其定義中計算貝塞爾函數作爲退化的超幾何函數。

最後,

祝你好運!