24小时热门版块排行榜    

查看: 728  |  回复: 1

loopool5358

银虫 (正式写手)

[求助] 1stOPT做非线性拟合,出现的问题?

想做非线性最小二乘法拟合求得参数的值。
查了一些软件,觉得1stopt似乎很好上手。没想到第一次尝试,提示data数据错误。先将程序贴到下面。问题有下:
1)这个软件要求的数据类型是什么哪?必须是小数吗/科学计数法怎样?

Title "wenxian";
//Parameters ;     x,y;
//Variable ;     a,b,c,d,e,f
//Function ;           y=a*(1-exp(-38.92)*x)/(b*exp(-(1-c)*38.92*x)+d*exp(-38.92)*x+(e/f+1))
Dataset;
0.000842105        0.009831461
0.053894737        0.599719101
0.084210526        1.396067416
0.120421053        2.103932584
0.154105263        2.703651685
0.200421053        3.037921348
0.252631579        2.860955056
0.268631579        2.978932584
EndDataSet;
MinFunction Sum(i=1:7)((y-a*(1-exp(-38.92)*x(i))/(b*exp(-(1-c)*38.92*x(i))+d*exp(-38.92*x(i))+(e/f+1)))^2);
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

坚持!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
正确代码如下,建议先找个使用说明看看,都是些基本错误
CODE:
Title "wenxian";
Variable  x,y;
Parameter a,b,c,d,e,f
Function y=a*(1-exp(-38.92)*x)/(b*exp(-(1-c)*38.92*x)+d*exp(-38.92)*x+(e/f+1));
Data;
0.000842105        0.009831461
0.053894737        0.599719101
0.084210526        1.396067416
0.120421053        2.103932584
0.154105263        2.703651685
0.200421053        3.037921348
0.252631579        2.860955056
0.268631579        2.978932584

还有公式有问题,有过拟合现象,完全可简化成下面的等同公式:
Function y=(1-exp(-38.92)*x)/(b*exp(-(1-c)*38.92*x)+d*exp(-38.92)*x+a);
2楼2013-06-24 09:12:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 loopool5358 的主题更新
信息提示
请填处理意见