楼主: yjhanywhere
2460 1

[问答] matlab传递参数类型的一个问题 [推广有奖]

  • 4关注
  • 4粉丝

已卖:26份资源

副教授

18%

还不是VIP/贵宾

-

TA的文库  其他...

金工策略开发实用文章及书籍

威望
0
论坛币
887 个
通用积分
49.0800
学术水平
16 点
热心指数
16 点
信用等级
12 点
经验
253 点
帖子
438
精华
0
在线时间
995 小时
注册时间
2008-5-20
最后登录
2025-5-11

楼主
yjhanywhere 发表于 2012-5-1 16:02:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我的程序里用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

二维码

扫码加我 拉你入群

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

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

关键词:MATLAB matla atlab Atl Lab matlab

沙发
yjhanywhere 发表于 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).*...

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-20 10:08