我知道這有點延伸,但無論如何都要在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。
史蒂夫德納姆