syms x;
syms r;
for n=1:10
for i=2:t
f1(i,n) = h * (Sast(i-1,n) + r* Y(i,n) - x) * 1 / (v(i,n)^(1/2) * sig(n) * (2 * pi)^(1/2)) * exp((-(x-m(i,n))^2) / (2 * v(i,n) * sig(n)^2)) * unifpdf(r,A(fv),B(fv));
f2(i,n) = -p * (Sast(i-1,n) + r * Y(i,n) - x) * 1 / (v(i,n)^(1/2) * sig(n) * (2 * pi)^(1/2)) * exp((-(x-m(i,n))^2) / (2 * v(i,n) * sig(n)^2)) * unifpdf(r,A(fv),B(fv));
z(i,n)=f1(i,n)+f2(i,n)
C2_1(i,n)=dblquad(z(i,n),inf,Sast(i-1,n),-inf,Sast(i-1,n))
%C2_1(i,n) = int(int(f1(i,n), x, inf, Sast(i-1,n) + r(i,n,fv)*Y(i,n)), y, inf, Sast(i-1,n) + r(i,n,fv)*Y(i,n)) + int(int(f2(i,n), x, Sast(i-1,n) + r(i,n,fv)*Y(i,n), -inf), y, inf, -inf);
%C2_1(i,n) = dblquad(f1(i,n), inf, Sast(i-1,n) + r(i,n,fv)*Y(i,n), inf, Sast(i-1,n) + r(i,n,fv)*Y(i,n)) + dblquad(f2(i,n), Sast(i-1,n) + r(i,n,fv)*Y(i,n), -inf, Sast(i-1,n) + r(i,n,fv)*Y(i,n), -inf);
end
end
I made lots of code..but can't sure why it's not work

3 件のコメント

José-Luis
José-Luis 2013 年 5 月 21 日
And what does the debugger say? What does "does not work" mean?
Sunghye
Sunghye 2013 年 5 月 22 日
Error using fcnchk (line 103) If FUN is a MATLAB object, it must have an feval method.
Error in dblquad (line 54) intfcn = fcnchk(intfcn);
Error in work03 (line 159) C2_1(i,n)=dblquad(z(i,n),inf,Sast(i-1,n),-inf,Sast(i-1,n))
Walter Roberson
Walter Roberson 2013 年 5 月 22 日
Yes, because sym objects do not have an feval() method.

サインインしてコメントする。

 採用された回答

Walter Roberson
Walter Roberson 2013 年 5 月 21 日

0 投票

You are creating f1 and f2 as symbolic expressions, but you are attempting ot use dblquad() to do the integration. dblquad() takes a function handle, not a symbolic expression. Try
C2_1(i,n)=dblquad(matlabFunction(z(i,n)),inf,Sast(i-1,n),-inf,Sast(i-1,n))
Are you sure you want to go from +infinity downward to Sast(i-1,n) for the first variable? You go from -infinity upward to Sast(i-1,n) for the second variable.

1 件のコメント

Sunghye
Sunghye 2013 年 5 月 22 日
編集済み: Sunghye 2013 年 5 月 22 日
Thank you, Walter It works!!! However, the answer is NaN(maybe not a NUMBER) What's the NaN mean?
error message is following
Warning: Infinite or Not-a-Number function value encountered. > In quad at 105 In dblquad>innerintegral at 82 In quad at 72 In dblquad at 58 In work03 at 159

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Data Type Identification についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by