matlab で次の積分を評価しようとしています: http://i.imgur.com/Iuc4VT5.png
これが私のコードです:
alpha = 2;
F1 = @(u,v) 2*u.*v.*exp(-u.^2)./(1+2*z.*u.*v);
F2 = @(v) v;
F3 = @(z) exp(-z)./sqrt(z);
I1 = dblquad(F1,0,1e5,2,1e5);
I2 = quad(F2,2,1e5);
quad(F3*exp(-(I2-I1)),0,1e5);
以下に示すエラーが表示されます。これらのエラーはあまり表示されませんが、私の書き方のせいだと思いF1
ます。F1
二重積分の関数u
とv
forを定義しましたz
が、外積分の変数である変数もあります。z
内部積分から分離する方法がないため、これを行いました。この統合を記述するより良い方法はありますか?
Error in ==> @(u,v)2*u.*v.*exp(-u.^2)./(1+2*z.*u.*v)
Error in ==> dblquad>innerintegral at 73
fcl = intfcn(xmin, y(1), varargin{:}); %evaluate only to get the class below
Error in ==> quad at 76
y = f(x, varargin{:});
Error in ==> dblquad at 53
Q = quadf(@innerintegral, ymin, ymax, tol, trace, intfcn, ...
私は1e5
無限を表すことにしています。