これは少しストレッチですが、JiでEi(x)関数をエンコードする方法はありますか。<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> Ei(X)関数は(私が推測しているように)かなりまれな関数です。少なくとも私は前にそれに対処する必要はありませんでした。しかし、これは私が行っている分析の中で浮上してきました。それをJMPで式にエンコードする方法があるのかどうか疑問に思います。明らかに、それはデフォルトでそこにはありませんが、手動でこれを入力する方法があります:
-

- 式の列に?前もって感謝します。
- - 表面の考え
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。PMroz、
これが信じられない!それは完璧に動作します!あなたが私があなたに買うことができる方法を考えるならば、これは確かにビールに値する仕事です、私に知らせて
- 表面の考え
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。これがFortranコードのJSL実装です。 コードは実行されますが、数値が正しいことを確認するためにテストする必要があります。 これは、Fortranプログラムをほとんど単純に変換したものです。 面白い運動!
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。私は統合をするRパッケージがあると思います。 再コーディングよりも実装が簡単でしょうか。
スティーブデンハム
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。それらはほとんど完全に異なる言語です。 空き時間があるなら(hah)、変換するのに苦労します。
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。ええ、それを見れば見るほど(不完全ガンマ)、私も同様に幸せではなくなり、特にこれらの関数について、対称性を訴求する簡単な方法を見つけることができませんでした。
おお、そしてFORTRANをJSLに翻訳することに関して、「運命」という言葉は非常に適切です。MATLABコードの方が翻訳が簡単だと思います。
スティーブデンハム
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。これは私が私の頭の上に入るところです
私はプログラマーよりもはるかに統計学者です。 ) FORTRANからJSLにどれくらい近いですか?私はそれを知りません。全体をJSLスクリプトウィンドウにコピーアンドペーストし、それを実行しようとし続け、エラーが発生したときにエラーを修正した場合、成功するでしょうか、それともFORTANに関する知識がなくても運命づけられるでしょうか?
ありがとう、
- 表面の考え
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。すみません、それは私の馬鹿げたものでした。整数関数へのラウンドではなく、積分関数のようなものです。
- SurfaceThought
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。スティーブ、
ガンマ関数を使用してEi(x)を計算することは非常に興味をそそるものであり、解に非常に近いですが、それを試してみると残念ながらうまくいかないと思います。 JMPに記載されているガンマ関数を使用すると、完全ガンマ関数またはより低い不完全ガンマ関数のいずれかを計算できます。つまり、ゼロから無限大まで、またはゼロから正のx値まで積分できますが、積分の下限に変更することはできません。常にゼロになります。指数積分はアッパーそれを計算するためには積分の可変下限を持っていて無限に積分する必要があるので不完全ガンマ関数。現在のJMPのガンマ関数では、積分の下限を変えることができないため、この方法ではうまくいかないと思います。
ありがとう、結構です、
- 表面の考え
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。これがFortranの実装です。 http://people.sc.fsu.edu/~jburkardt/f77_src/toms385/toms385.html
JSLに変換するのはそれほど難しくないはずです。
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。JMPでは、ExcelのInt(x)を取得するためにFloor(x)を使用します。
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。知っているだけのJMPユーザーではありません - もっとSASの人です。 しかし、統合は、SASが機能レベルで非常に強力であるということではありません、私が知っているPROC FCMPアプローチとマクロがいくつかあります。
私が考えたのは、不完全なガンマ関数のようなEi(x)に関連したガンマ関数のいくつかを使い、入力と出力を適切にスケーリングすることでした。
スティーブデンハム
再:私はこれが少しストレッチであることを知っています、しかしとにかくJMPでEi(x)関数をエンコードするためにそこにあります。スティーブ:素早い返事をありがとう。
私は近似値を調べましたが、それらが私の目的のために機能するかどうかはわかりません。テイラー級数近似:

これは明らかに収束するのが遅く、私が扱っているであろうxのレベルで3つの小数点精度を持つためにはk = 30を必要とするでしょう。さらに、Wikiページには次のように記載されています。
この式は、計算に使用できます。
実数用の浮動小数点演算
0から2.5の間。にとって
、結果は不正確ですキャンセル 。
2.5よりも大きいx値を扱うことになるので、これはかなり不吉です。「浮動小数点演算」とは、計算の各ステップの後に、コンピューティングデバイスが特定の小数点以下の桁数に丸められることを意味します。JMPは浮動小数点演算を使用しますか?他にもありますか?値が0から2.5の間に収まるようにxを何らかの方法で変換できるとします。
発散する別の近似がありますが、発散しているのでそれほど良くありませんが、xの小さい値(1未満)では誤差が非常に大きいように思われるため、これもx値の範囲内ですつかいます。私がこの近似を使う必要があるならば、私はしなければならないでしょう、しかし私は最後のオプションのためにそれを保存したいです。
Ei(X)の計算とJMPへのインポートの問題は、指数積分の引数に非線形最小二乗法を使用して解きたいパラメータが含まれていることです。したがって、JMPが反復的にそれを解決するためにパラメータを変更できるように、実際にJMPにエンコードする必要があります。
JMPにINT()関数がないのは本当ですか?
助けてくれてありがとう、
- 表面の考え
再:私はこれが少しストレッチであることを知っています、しかしとにかく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に取り込むことができます。
スティーブデンハム