马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
目前正在做一个公式的拟合,本来想用matlab的nlinfit函数,但无法确定初始值,改用1stopt后也不行,请大家看看要怎么办,数据如下:
Parameters p1,p2,p3,p4,p5,p6;
Variable x1,x2,x3,x4,x5,y;
Function y=(p1/(x4+p2))*x1+p3*x2+p4*x3+(p5/(x4+p6))*x5;
data;//x1,x2,x3,x4,x5,y
24.6 0.630 10.232 1.0 3.789 6.666
24.6 0.630 4.093 1.0 3.789 6.178
23.0 0.630 15.647 1.0 3.789 6.666
23.0 0.630 21.515 1.0 3.789 6.738
20.0 0.630 23.220 1.0 3.789 6.494
20.0 1.260 26.792 1.0 3.789 6.463
20.0 1.260 26.792 1.0 3.789 6.641
20.0 1.260 32.151 1.0 3.789 6.519
19.1 1.260 13.882 1.0 3.789 6.519
19.1 0.000 22.558 1.0 3.789 5.003
19.1 0.000 13.882 1.0 3.789 5.225
22.5 1.323 41.251 1.0 3.789 6.250
26.7 0.594 16.914 1.5 4.037 5.897
23.0 0.594 16.881 1.5 4.037 6.282
26.6 0.395 16.869 1.5 4.037 6.154
29.8 0.395 15.846 1.5 4.037 6.410
27.3 0.615 16.413 2.0 3.277 5.405
26.1 0.615 17.679 2.0 3.277 5.676
用1stopt1.5试用版给出的解答是
p1=0.04859 p2=-0.36819 p3=0.9808 p4=-0.013658 p5=-7.83245 p6=-8.13435
这个答案离我预想的差的很多,预想的是系数都在0-2之间波动,允许p2,p6为不大于1的负值,
请问大家还有什么好的办法没?谢谢 |