我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> Ei(X)函数(我猜)是一个相当罕见的函数。至少我以前从来没有处理过它。但它在我正在进行的分析中突然出现,我想知道是否还有将其编码为JMP中的公式。显然,它默认不存在,但有没有办法手动输入:
-

- 进入公式栏?提前致谢。
- --SurfaceThought
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。PMroz,
这难以置信!它完美无瑕!这当然是值得喝酒的工作,如果你想到一种我可以买到你的方式让我知道
--SurfaceThought
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。好的,这是Fortran代码的JSL实现。 代码运行,但你需要测试它以确保数字是好的。 它几乎是Fortran程序的直接转换。 有趣的运动!
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。我认为有一个R包将进行整合。 这比重新编码更容易实现吗?
史蒂夫德纳姆
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。它们几乎是完全不同的语言。 如果我有空闲时间(哈哈),我会尝试转换它。
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。是的,我看得越多(不完整的伽马),我也越不开心,我找不到一种简单的方法来吸引对称性,特别是对于这些功能。
哦,就将FORTRAN翻译成JSL而言,“注定”这个词非常合适。我认为MATLAB代码更容易翻译。
史蒂夫德纳姆
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。这是我在脑海中徘徊的地方
我更像是一个统计学家而不是程序员(尽管我也不是 )。FORTRAN与JSL有多接近?我不知道它。如果我将整个事物复制并粘贴到JSL脚本窗口中,并继续尝试运行它并在出现错误时修复错误,那么我是否会成功或者在没有FORTAN知识的情况下注定会失败?
谢谢,
--SurfaceThought
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。对不起,这对我来说是愚蠢的。我的意思是集成函数,而不是像舍入到整数函数。
- SurfaceThought
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。史蒂夫,
使用伽马函数来计算Ei(x)是如此诱人,并且如此接近解决方案,但在玩完它之后我不幸认为它不会起作用。 JMP中给出的Gamma功能允许您计算完整的伽玛函数或较低的不完整伽玛函数。换句话说,它允许您从零到无穷大,或从零到一些正x值进行积分,但不能更改为积分的下限:它始终为零。指数积分与上不完整的伽马函数,因为为了计算它,你需要有一个可变的积分下限并积分到无穷大。因为JMP中的gamma函数不允许集成的可变下限,我认为这种方法根本不起作用。
谢谢你,
--SurfaceThought
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。这是一个Fortran实现: http://people.sc.fsu.edu/~jburkardt/f77_src/toms385/toms385.html
不应该太难转换为JSL。
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。在JMP中使用Floor(x)来获取Excel中的Int(x)。
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。没有足够的JMP用户知道 - 更多的是SAS人员。 但集成并不是SAS在功能层面上非常强大的,尽管我知道有一些PROC FCMP方法和宏。
我认为可能的是使用一些与Ei(x)相关的伽玛函数,如不完整的伽马函数和适当缩放输入和输出。
史蒂夫德纳姆
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。史蒂夫:谢谢你的快速回复:
我查看了近似值,我不确定它们是否适用于我的目的。泰勒级数近似:

显然收敛速度很慢,并且需要k = 30才能在我要处理的x水平上有三个小数点精度。此外,维基页面指出:
该公式可用于计算
对于真实的浮点运算
介于0和2.5之间。对于
,结果是不准确的消除 。
这是相当不祥的,因为我将处理大于2.5的x值。我知道“浮点运算”只意味着计算设备在计算的每个步骤之后四舍五入到一定数量的小数点。JMP是否使用浮点运算?还有其他选择吗?我想我可以用某种方式转换x,使得值适合0到2.5之间。
还有另一种近似的发散,它不是很大,因为它是发散的,但也因为对于x的小值(小于1),误差似乎非常大,这也是在x值的范围内。使用。如果我需要使用这个近似值,那么我将不得不这样做,但我想将它保存为最后一个选项。
计算Ei(X)并将其导入JMP的问题在于,指数积分的参数包括我想要使用非线性最小二乘法求解的参数。因此,它需要实际编码到JMP中,以便JMP可以更改参数以便迭代地求解它。
在JMP中没有INT()函数是真的吗?
谢谢您的帮助,
--SurfaceThought
Re:我知道这有点延伸,但无论如何都要在JMP中编码Ei(x)函数。不是那么罕见。 MATLAB页面给出了很多近似值,因此可能有一些东西可以从JMP中的函数中获得。
看到 http://mathworld.wolfram.com/ExponentialIntegral.html
另请参阅GNU库( http://www.gnu.org/software/gsl/manual/html_node/Exponential-Integral.html )。 您可以使用它来生成R对象,然后将其拉入JMP。
史蒂夫德纳姆