2016-07-11 4 views
2

私は、次の積分の値を見つける必要がある。これを計算するためのMATLABで組み込み関数がある場合次の積分を計算するためのMatlabの組み込み関数はありますか?

enter image description here

誰もが知っていますか?

+1

分析的または数値的に解決しますか? wolframalphaのような他の選択肢を試しましたか? – jerpint

+1

数値的に解決したい。はい、私はWAで試してみましたが、問題は、私はループ内で積分を実行したいので、私はmatlabでいくつかの関数を見つける場合はそれが良いです –

+1

私は "おそらく"でチャイムします。これは、不完全な指数関数的なスケーリング/ダンピングファクタを持つ上部不完全ガンマのように見えます。他の誰かがこれを前に見ていない限り、私はそれを可能な道筋として「不可欠」に投げ込むことを勧めます。 – TroyHaskin

答えて

3

後でa bookに拡大したreferenced paper、を読んで、私は、任意の直接の平等は、MATLABのElementary Mathライブラリを使用して複製することができる一般的な不完全ガンマ関数の作成者の定義について表現は表示されません。著者は実際にIMSL FortranサブルーチンQDAGIを使用して、値のテーブルを直接統合して生成します(悲しいことに、小数点以下5桁まで)。したがって、このような関数を評価する際の最も直接的なルートはintegralです。

生不完全一般ガンマ関数

は常にIが下限よう t+xtシフト

iggamma = @(x,alpha,b) integral(@(t) (t+x).^(alpha-1) .* exp(-(t+x)-b./(t+x)),0,Inf,'ArrayValued',true) 

0と配列値xを通過することができるようにインラインで記述することができます。本書の表は、この生の関数を、第3種の修正ベッセル関数と呼んでいるが、Mathworksが第2種のベッセル関数(修正されたベッセル関数)をbesselkと呼んでいます。スケーリングされたバージョンは、次のようになります。

iggammas = @(x,alpha,b) iggamma(x,alpha,b) ./ (2*b.^(alpha/2) .* besselk(alpha,2*sqrt(b))) 

スケーリングされたバージョンと一致し、私は第五に、いくつかの不一致を持つ4つの小数点以下を確認した値の最も。しかし、私はこれを丸めと積分公差のパラメータの違いにまで分けます。

関連する問題