全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5919 4
2009-07-11
在运行时的日志记载了这个错误:ERROR: (execution) Invalid argument to function.请问该如何解决呢?谢谢!
代码如下:
proc iml;
use dataset2;
read all into data;
show names;
print data;
start maxFunc1(F) global(data);
sum=0;
Uf=J(1,3,0);
do i=1 to 100;
do j=1 to 10;
Uf[1]=F[j]*data[i,j]+Uf[1];
Uf[2]=F[j]*data[i,10+j]+Uf[2];
end;
Uf[3]=Uf[1]*data[i,21]+Uf[2]*data[i,22]+F[11]*data[i,23];
sum=sum- log(exp(Uf[1]-Uf[3])+exp(Uf[2]-Uf[3])+exp(F[11]-Uf[3]));
end;
return(sum);
finish maxFunc1;
optn={1 2};
X=J(1,11,0);
call nlpcg(rc,xres,"maxFunc1",X,optn);
run;
quit;
二维码

扫码加我 拉你入群

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

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

全部回复
2009-7-11 22:00:26
帮顶,不清楚什么错误
二维码

扫码加我 拉你入群

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

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

2009-7-11 22:27:41
运行程序显示exp函数调用出错误:sum=sum- log(exp(Uf[1]-Uf[3])+exp(Uf[2]-Uf[3])+exp(F[11]-Uf[3]));
但我看不出问题在哪里。
二维码

扫码加我 拉你入群

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

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

2009-7-11 23:32:34
EXP(argument) 函数中的参数必须是正数,但是在你的方程中,
F[1]=...=F[11]=0; 导致Uf[1]=0;Uf[2]=0; 进而导致Uf[3]=0;
故你传入的参数都是0,引起错误。建议初始化F为其他值。
二维码

扫码加我 拉你入群

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

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

2013-11-14 16:49:59
请问,"show names"的作用是?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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