全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
2430 1
2012-05-01
我的程序里用function12这个函数调用GumbleCopulaPdf这个函数时,由于被调用函数里面有一个变上限积分要求scalar的变量,说我给的参数有问题。我试着用循环+判定来做,可是在其他的调用时又会出别的问题。我把两个函数贴在下面,还请大家帮我看一下是怎么回事啊?

function [ f ] = function12(x,y)
r=0.01;
f=quadgk(@(u) arrayfun(@(uu) quadgk(@(v) (r-v)./(1+r+x.*(v-r)+y.*(uu-r)).*GumbleCopulaPdf(v,uu).*...
    NasdaqPdf(v), -1,1).*Sp500Pdf(uu),u), -1, 1);
end

function [ f ] = GumbleCopulaPdf( x,y )
%GUMBLECopulaPdf Gumble copula函数的二阶联合偏导
%  将Gumble Copula函数和两个Cdf函数都写进来,减少调用的时间。
a=3.6443;
v=quadgk(@(u) Sp500Pdf(u),-inf,y);
z=quadgk(@(u) NasdaqPdf(u),-inf,x);
f1=exp(log(z).*(1+(log(v)./log(z)).^a).^(1./a));
f=diff(f1);
end

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-5-1 20:09:36
对了,刚才忘记把matlab给出的错误贴上来了:大家帮忙看一下啊,谢谢!


??? Error using ==> quadgk at 109
A and B must be scalar floats.

Error in ==> GumbleCopulaPdf at 6
z=quadgk(@(u) NasdaqPdf(u),-inf,x);

Error in ==> function12>@(v)(r-v)./(1+r+x.*(v-r)+y.*(uu-r)).*GumbleCopulaPdf(v,uu).*NasdaqPdf(v) at 6
f=quadgk(@(u) arrayfun(@(uu) quadgk(@(v) (r-v)./(1+r+x.*(v-r)+y.*(uu-r)).*GumbleCopulaPdf(v,uu).*...

Error in ==> quadgk>evalFun at 349
            fx = FUN(x);

Error in ==> quadgk>f1 at 367
        [y,too_close] = evalFun(tt);

Error in ==> quadgk>vadapt at 261
            [fx,too_close] = f(x);

Error in ==> quadgk at 200
    [q,errbnd] = vadapt(@f1,interval);

Error in ==> function12>@(uu)quadgk(@(v)(r-v)./(1+r+x.*(v-r)+y.*(uu-r)).*GumbleCopulaPdf(v,uu).*NasdaqPdf(v),-1,1).*Sp500Pdf(uu) at 6
f=quadgk(@(u) arrayfun(@(uu) quadgk(@(v) (r-v)./(1+r+x.*(v-r)+y.*(uu-r)).*GumbleCopulaPdf(v,uu).*...

Error in ==>
function12>@(u)arrayfun(@(uu)quadgk(@(v)(r-v)./(1+r+x.*(v-r)+y.*(uu-r)).*GumbleCopulaPdf(v,uu).*NasdaqPdf(v),-1,1).*Sp500Pdf(uu),u) at 6
f=quadgk(@(u) arrayfun(@(uu) quadgk(@(v) (r-v)./(1+r+x.*(v-r)+y.*(uu-r)).*GumbleCopulaPdf(v,uu).*...

Error in ==> quadgk>evalFun at 349
            fx = FUN(x);

Error in ==> quadgk>f1 at 367
        [y,too_close] = evalFun(tt);

Error in ==> quadgk>vadapt at 261
            [fx,too_close] = f(x);

Error in ==> quadgk at 200
    [q,errbnd] = vadapt(@f1,interval);

Error in ==> function12 at 6
f=quadgk(@(u) arrayfun(@(uu) quadgk(@(v) (r-v)./(1+r+x.*(v-r)+y.*(uu-r)).*GumbleCopulaPdf(v,uu).*...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群