0
ビルドしている関数を統合しようとしていますが、関数は与えられた入力に基づいて各繰り返しを変更します。たとえば:IDL統合
y=4e^(mx/4)
xに関して、下限と上限を使って積分したいが、mの値が変わる。私はmのすべての私の価値を知っています。
私はこれを使用できますか?私の最初の仮定はQROMBを使用することですが、それは限られていると私の問題を処理することができないようです。
ビルドしている関数を統合しようとしていますが、関数は与えられた入力に基づいて各繰り返しを変更します。たとえば:IDL統合
y=4e^(mx/4)
xに関して、下限と上限を使って積分したいが、mの値が変わる。私はmのすべての私の価値を知っています。
私はこれを使用できますか?私の最初の仮定はQROMBを使用することですが、それは限られていると私の問題を処理することができないようです。
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)は必要な積分を返します。