24小时热门版块排行榜    

查看: 1475  |  回复: 3

rita128

新虫 (初入文坛)

[求助] 1stopt做最小二乘法回归参数,请求大家帮忙指导下

第一次用这个做最小二乘法回归参数。一共六个参数。有八组数据,目标方程一个。应该是最简单的那种吧。代码如下,运行不出来,不知道怎么定义常量或者输入数据。求助懂的人帮忙指点一下。谢谢
Title "Type your title here"i;
Parameters x1,x2,x3,x4,x5,x6 ;
Constant a(1:8)= [0.593492611, 0.615383905,0.605448133,0.692841215,0.655361944,0.757020028,0.671381587,0.735878492];
Constant b(1:8)=[ 5.1612, 4.6650 ,3.7857,6.7947,2.3167 ,1.4693,7.0426 ,10.0069];


Conststr I=3*a;

Conststr f1=-0.76*(I^0.5/(1+1.2*I^0.5)+2/1.2*ln(1+1.2*I^0.5));//f'(i)
Conststr B1=-0.00804+1.4354/(2*I)*(1-(1+2*I^0.5)*EXP((-2)*I^0.5));//B
Conststr B2=1.4354/(2*I^2)*(-1+(1+2*I^0.5+2*I)*exp((-2)*I^0.5));//B'
Conststr F1=1/(2*I)*(1-(1+2*I^0.5)*exp((-2)*I^0.5));//F(i)
Conststr F2=1/(2*I^2)*(-1+(1+2*I^0.5+2*I)*EXP((-2)*I^0.5));//F'()i
MinFunction F=sum(i=1:8)(((f1+8/3*a*(B1+2*a*0.001838)+2*a^2*(2*B2+4/3*0.001838)+b*x3/3+4/3*b*a*(x1+F1*x2)+8/3*a*b*(x1+F1*x2)+4*a^2*b*F2*x2)+ln(a)+1.5*ln(b)+1.5*(a*x3+4*a^2*(x1+F1*x2)+2*b*x4+3*b^2*x5)-lnx6)^2);
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
rita128: 金币+20, ★★★★★最佳答案, 哦,非常感谢你,让我学了好多东西。要不真的没有接触这个软件。遇到好多问题,真的太谢谢了。 2013-04-21 00:02:42
ben_ladeng: 金币+2, 谢谢应助 2013-04-21 20:51:23
ben_ladeng: 专家考核 2013-04-21 20:51:32
几点错误:
1:“lnx6”应该是“ln(x6)”吧
2:1stOpt不区分大小写
3:“Sum”的写法有问题

正确代码如下:
CODE:
Title "Type your title here"i;
Parameters x1,x2,x3,x4,x5,x6 ;
Constant a(1:8)= [0.593492611, 0.615383905,0.605448133,0.692841215,0.655361944,0.757020028,0.671381587,0.735878492];
Constant b(1:8)=[ 5.1612, 4.6650 ,3.7857,6.7947,2.3167 ,1.4693,7.0426 ,10.0069];


Conststr I=3*a;

Conststr f1=-0.76*(I^0.5/(1+1.2*I^0.5)+2/1.2*ln(1+1.2*I^0.5));//f'(i)
Conststr BB1=-0.00804+1.4354/(2*I)*(1-(1+2*I^0.5)*EXP((-2)*I^0.5));//B
Conststr BB2=1.4354/(2*I^2)*(-1+(1+2*I^0.5+2*I)*exp((-2)*I^0.5));//B'
Conststr FF1=1/(2*I)*(1-(1+2*I^0.5)*exp((-2)*I^0.5));//F(i)
Conststr F2=1/(2*I^2)*(-1+(1+2*I^0.5+2*I)*EXP((-2)*I^0.5));//F'()i
MinFunction sum(j=1:8,a,b)(((f1+8/3*a*(BB1+2*a*0.001838)+2*a^2*(2*BB2+4/3*0.001838)+b*x3/3+4/3*b*a*(x1+FF1*x2)+8/3*a*b*(x1+FF1*x2)+4*a^2*b*F2*x2)+ln(a)+1.5*ln(b)+1.5*(a*x3+4*a^2*(x1+FF1*x2)+2*b*x4+3*b^2*x5)-ln(x6))^2);

结果:
目标函数值(最小): 0.000360743527320632
x1: -0.140392701334565
x2: 0.216320938632417
x3: 2.29529578782098
x4: -0.370075186018573
x5: 0.00657741865607194
x6: 1.24296439011043
2楼2013-04-20 20:24:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

rita128

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by dingd at 2013-04-20 20:24:12
几点错误:
1:“lnx6”应该是“ln(x6)”吧
2:1stOpt不区分大小写
3:“Sum”的写法有问题

正确代码如下:

Title "Type your title here"i;
Parameters x1,x2,x3,x4,x5,x6 ;
Constant a(1:8) ...

请问我这个代码是任何版本都能运行吗,我把这个代码重新运行点了计算之后没有任何反应。。。。是什么原因呢?
3楼2013-04-21 11:44:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

不能保证你用破解版的能运行成功。
4楼2013-04-21 14:08:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 rita128 的主题更新
信息提示
请填处理意见