0

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二重積分の関数uvforを定義しました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無限を表すことにしています。

4

1 に答える 1