MATLAB を使用してかなり醜い積分を計算しようとしています。私が問題を抱えているのは、非常に大きな数 (>10^300) と非常に小さな数 (<10^-300) を乗算する部分です。MATLAB は、0 ~ 0.0005 の範囲である必要がありますが、これに対して 'inf' を返します。これは私が持っているものです
besselFunction = @(u)besseli(qb,2*sqrt(lambda*(theta + mu)).*u);
exponentFuncion = @(u)exp(-u.*(lambda + theta + mu));
ここで、qb = 5、ラムダ = 12、シータ = 10、ミュー = 3 です。そして、私が見つけたいのは
besselFunction(u)*exponentFunction(u)
u のすべての実数値に対して。問題は、u>28 の場合は常に「inf」と評価されることです。MATLAB 関数 'vpa' を使用することを聞いて試してみましたが、関数を使用したいときにうまく機能しないようです...
この時点で、ヒントをいただければ幸いです。