Java中的贝塞尔函数库

Java中的贝塞尔函数库,java,excel,bessel-functions,Java,Excel,Bessel Functions,我正在寻找与Excel函数BESSELI相匹配的Java中的bessel函数,提供的描述如下: 返回修改后的贝塞尔函数,该函数相当于为纯虚参数计算的贝塞尔函数 语法 贝塞利(x,n) X是用于计算函数的值 N是贝塞尔函数的阶数。如果n不是整数,则它将被截断 我发现了一些看起来很接近的东西,但是有很多不同类型的贝塞尔函数 我的另一个选择是尝试推导近似值,但这听起来相当困难。有谁能给我一些关于如何在Java中表示excel函数的好建议吗?提供了一个带有修改过的贝塞尔函数的类 如果Excel函数在

我正在寻找与Excel函数BESSELI相匹配的Java中的bessel函数,提供的描述如下:


返回修改后的贝塞尔函数,该函数相当于为纯虚参数计算的贝塞尔函数

语法 贝塞利(x,n)

X是用于计算函数的值

N是贝塞尔函数的阶数。如果n不是整数,则它将被截断


我发现了一些看起来很接近的东西,但是有很多不同类型的贝塞尔函数

我的另一个选择是尝试推导近似值,但这听起来相当困难。有谁能给我一些关于如何在Java中表示excel函数的好建议吗?

提供了一个带有修改过的贝塞尔函数的类

如果Excel函数在当前表单/实现中对您特别重要,您可以通过启动Excel COM对象并调用Excel中的方法直接使用Excel。我在使用前就做过,效果不错


但是,这取决于你的用例、性能标准和部署场景。

< P>挖掘一个数字配方的拷贝,你会在Fortran、C和C++的口味中找到(或者,如果你的库非常好,也在BASIC和Pascal中),并翻译。按照奇异函数的通常标准,贝塞尔函数是相当“容易”的。要了解更多信息,您可以从

I image开始,您应该能够非常轻松地移植其中一个:


或参考。它们对所有这些函数都有很好的表示。易于编程。

您可以使用数学函数的数字库:

下面是我从经验中学到的一些关于Java编程和计算特殊函数的简短内容

如果您有CPU能力这样做,请尽可能使用BigDecimal。目前(2015年7月),微软在.NET框架中似乎没有内部任意数字精度库。这使得科学计算变得棘手。我无法理解它们是如何达到在VB6/VBA for Excel中所达到的精度的

另一方面,BigDecimal相对容易使用。一位朋友向我介绍了BigDecimal,并在一本关于Java5的Murach书中读到了它。我强烈建议使用Oracle文档:

第二,正如您可能已经观察到的那样,浮点误差和在逼近特殊函数时引入的数学数值误差之间存在差异。数学数字误差和浮点误差共同导致应用程序开发困难。使用许多不同的程序来检查你自己和你的计算

第三,在许多情况下,BigDecimal的字符串构造函数优于双构造函数。请参阅上面的Oracle文档

第四,在使用MathContext的无限精度的BigDecimal时要非常小心。请注意,您可能必须使用setScale来引入应用程序所需的小数位数,以避免无限重复十进制表达式和JVM抛出的异常

第五,首先尝试检查第一类修改贝塞尔函数的整数参数。此外,可以从可用的递归关系或从其作为退化超几何函数的定义计算贝塞尔函数

最后,


祝你好运

我认为贝塞尔函数()只有一种“类型”,虽然顺序不同,但你找到的任何函数都应该有效。不,不是真的。有J和Y,I和K,ber和bei,ker和kei,等等。所有的顺序都是n。对了,我现在模模糊糊地记得。。很抱歉尽管我认为大多数处理贝塞尔函数的库可能会支持您可能需要的任何功能。出于各种原因(包括性能),我目前正试图从excel模型中转移出来,但感谢您的建议。这很公平。只是修改了上面的re。JSScience库中的JSScience函数似乎只提供了顺序为0和1的修改贝塞尔函数,而不是问题中要求的N。请查找贝塞尔函数。现在只需查看源代码。。。看起来很有希望。谢谢