2016-06-27 3 views
0

ビルドしている関数を統合しようとしていますが、関数は与えられた入力に基づいて各繰り返しを変更します。たとえば:IDL統合

y=4e^(mx/4) 

xに関して、下限と上限を使って積分したいが、mの値が変わる。私はmのすべての私の価値を知っています。

私はこれを使用できますか?私の最初の仮定はQROMBを使用することですが、それは限られていると私の問題を処理することができないようです。

答えて

0

QROMB(およびその他のインテグレータ)は1つの変数の関数を必要としているので、バックドアを通してそこにmを入れなければなりません。 1つの方法は共通のブロックを使用します。

function integrand,x 
common int_common,int_m 
return,4*exp(int_m*x/4) 
end 

function integrator,m,xlow,xhigh 
common int_common,int_m 
int_m=m 
return,qromb('integrand',xlow,xhigh) 
end 

インテグレータ(m、xlow、xhigh)は必要な積分を返します。