声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3320|回复: 3

[1stopt] 我用1stOpt写的程序怎么运行不对啊???

[复制链接]
发表于 2010-12-3 22:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 wqcfirst 于 2010-12-3 22:56 编辑

题目是关于有16个变量的曲线拟合,代码如下,恳请大侠帮我看看错在哪里?谢谢啊
线性拟合代码:
Variable x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,y;
Parameters b,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15;
Function y=b+b1*x1+b2*x2+b3*x3+b4*x4+b5*x5+b6*x6+b7*x7+b8*x8+b9*x9+b10*x10+b11*x11+b12*x12+b13*x13+b14*x14+b15*x15;

data;
// x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,y
65.93        48.37        7.64        5.49        9.9        1.8        8.6        3.1        7.09        473        967        101        2.082        12617        18.93        15.39
65.83        48.82        7.63        5.39        9.87        1.83        8.47        2.93        7.1        457        977        104        2.081        12649        18.28        15.26
65.89        48.99        7.33        5.39        10        1.86        8.32        2.74        6.96        474        996        107        1.877        12516        17.11        15.41
67.31        48.95        7.46        5.3        10.1        1.9        8.19        2.71        6.86        521        1019        111        1.577        12558        15.79        15.39
70.42        49.22        7.52        5.19        11.2        2.15        7.59        2.62        6.92        542        1080        112        1.406        12443        14.64        16.36


非线性拟合:
Variable x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,y;
Parameters b,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15;
Function  y=b*x1^b1*x2^b2*x3^b3*x4^b4*x5^b5*x6^b6*x7^b7*x8^b8*x9^b9*x10^b10*x11^b11*x12^b12*x13^b13*x14^b14*x15^b15;
data;
// x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,y
65.93        48.37        7.64        5.49        9.9        1.8        8.6        3.1        7.09        473        967        101        2.082        12617        18.93        15.39
65.83        48.82        7.63        5.39        9.87        1.83        8.47        2.93        7.1        457        977        104        2.081        12649        18.28        15.26
65.89        48.99        7.33        5.39        10        1.86        8.32        2.74        6.96        474        996        107        1.877        12516        17.11        15.41
67.31        48.95        7.46        5.3        10.1        1.9        8.19        2.71        6.86        521        1019        111        1.577        12558        15.79        15.39
70.42        49.22        7.52        5.19        11.2        2.15        7.59        2.62        6.92        542        1080        112        1.406        12443        14.64        16.36

为什么结果不对?非线性方程的公式如下,是不是我写错了?
非线性方程.jpg
回复
分享到:

使用道具 举报

 楼主| 发表于 2010-12-3 22:56 | 显示全部楼层
回复 1 # wqcfirst 的帖子

我的QQ是348920043,希望得到您的帮助!!
发表于 2010-12-3 23:50 | 显示全部楼层
[ 本帖最后由 20wangz 于 2010-12-3 23:57 编辑 ]

回复 1 # wqcfirst 的帖子

以你的非线性拟合部分为例:
程序大有改进的余地,关键是原来的程序中有很多东西是可以简写的。再有,连乘式最好不那么写,容易混淆,必要的时候可以用括号。
修改后的程序如下:
Variable x(15),y;
Parameters A,b(15);
Function  y=a*Prod(i=15)(x[i]^b[i]);
data;
// x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,y
65.93        48.37        7.64        5.49        9.9        1.8        8.6        3.1        7.09        473        967        101        2.082        12617        18.93        15.39
65.83        48.82        7.63        5.39        9.87        1.83        8.47        2.93        7.1        457        977        104        2.081        12649        18.28        15.26
65.89        48.99        7.33        5.39        10        1.86        8.32        2.74        6.96        474        996        107        1.877        12516        17.11        15.41
67.31        48.95        7.46        5.3        10.1        1.9        8.19        2.71        6.86        521        1019        111        1.577        12558        15.79        15.39
70.42        49.22        7.52        5.19        11.2        2.15        7.59        2.62        6.92        542        1080        112        1.406        12443        14.64        16.36
运行的结果如下:
迭代数: 3068
计算用时(时:分:秒:微秒): 00:00:18:813
优化算法: 标准差分进化算法(DE1)
计算结束原因: 达到收敛判断标准
均方差(RMSE): 9.92587327541698E-5
残差平方和(RSS): 4.92614801398185E-8
相关系数(R): 0.999999982216591
相关系数之平方(R^2): 0.999999964433183
决定系数(DC): 0.999999939204374
卡方系数(Chi-Square): 1.56637844832404E-9
F统计(F-Statistic): -12062271.2035206

参数        最佳估算
----------        -------------
a        1.40207417175425
b1        3.52653715855568
b2        -2.21042348757024
b3        6.76236333954203
b4        -4.49129312030492
b5        9.54872677150475
b6        0.0389019778503239
b7        12.6538007337389
b8        -11.0979809549966
b9        -3.80098480938207
b10        -9.67838508793979
b11        -3.85543757153025
b12        -2.05300438266006
b13        -13.3914976556822
b14        0.809915011206263
b15        19.9664762196623

====== 结果输出 =====

No        实测值y        计算值y
1        15.39        15.3899714006632
2        15.26        15.2599750050702
3        15.41        15.4101704311263
4        15.39        15.3899594986143
5        16.36        16.3601308880457
结果非常好啊!关键还是你的数据太少而方程的次数高了。
 楼主| 发表于 2010-12-4 07:10 | 显示全部楼层
回复 3 # 20wangz 的帖子

我在中国知网上找的数据,只有五年的,非常感谢啊,结果真的非常好啊!可以写论文了。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-10 16:27 , Processed in 0.063249 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表