24小时热门版块排行榜    

CyRhmU.jpeg
查看: 23358  |  回复: 73

梦落在草地上

新虫 (小有名气)

引用回帖:
20楼: Originally posted by 月只蓝 at 2015-01-21 10:07:31
管理员身份运行 1stopt 软件。
删除代码中所有的 “//”,其实你的代码如果完全复制我16楼给出的,也不会出错。...

您好,刚刚我用1stopt软件迭代计算了文献中一组数据。可是结果却和我软件处理结果不一致。您看是不是计算设置需要有些什么设置需要改动还是什么原因?图2是文献结果;图3是我输入的代码;图4是软件输出结果。
matlab非线性拟合模型参数,大神你在哪!
2.png


matlab非线性拟合模型参数,大神你在哪!-1
3.jpg


matlab非线性拟合模型参数,大神你在哪!-2
4.jpg

21楼2015-01-21 10:28:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
21楼: Originally posted by 梦落在草地上 at 2015-01-21 10:28:32
您好,刚刚我用1stopt软件迭代计算了文献中一组数据。可是结果却和我软件处理结果不一致。您看是不是计算设置需要有些什么设置需要改动还是什么原因?图2是文献结果;图3是我输入的代码;图4是软件输出结果。

2.p ...

你的1stopt Function中定义的公式 和 文献中用的公式 不一样,所以结果不会相同。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
22楼2015-01-21 10:54:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
22楼: Originally posted by 月只蓝 at 2015-01-21 10:54:22
你的1stopt Function中定义的公式 和 文献中用的公式 不一样,所以结果不会相同。...

那您看下,文献里的这个公式和我们的不是一样的意义吗?如果程序里这样输入,结果会不同吗?
matlab非线性拟合模型参数,大神你在哪!-3
QQ截图20150120161540.png

23楼2015-01-21 11:00:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
23楼: Originally posted by 梦落在草地上 at 2015-01-21 11:00:31
那您看下,文献里的这个公式和我们的不是一样的意义吗?如果程序里这样输入,结果会不同吗?

QQ截图20150120161540.png
...

请给出21楼的完整代码和计算结果
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
24楼2015-01-21 11:12:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
24楼: Originally posted by 月只蓝 at 2015-01-21 11:12:41
请给出21楼的完整代码和计算结果...

我自己实验数据的拟合代码:
Parameters b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Variable X1,X2,X3,Y;
Function Y=b0+b1*X1+b2*X2+b3*X3+b4*X1*X2+b5*X1*X3+b6*X2*X3+b7*X1^2+b8*X2^2+b9*X3^2;
Data;
   0.0000      8.0000     7.0000      63.9
   0.0000      24.0000   11.5000    56.9
   350.0000    40.0000   5.5000    95.4
   350.0000    0.0000    11.5000   54.3
   700.0000    16.0000   5.5000    92.7
   700.0000    32.0000   10.000    92.9000
   1050.0000   48.0000   4.0        95.80
   1050.0000   0.0000    10.000   87.8
   1400.0000   16.0000   4.0000   92.6000
   1400.0000   32.0000   8.5000   98.700
   1750.0000   48.0000   2.5        71.2000
   1750.0000   8.0000    8.5000    95.1000
   2100.0000   24.0000   2.5000    64.8000
   2100.0000   40.0000   7.0000    67.2000

拟合数据结果:
均方差(RMSE): 1.54658329060161
残差平方和(SSE): 33.4868782467533
相关系数(R): 0.995247203455277
相关系数之平方(R^2): 0.990516995985549
决定系数(DC): 0.990516995985549
卡方系数(Chi-Square): 0.228909500020559
F统计(F-Statistic): 1253.42179901157

参数        最佳估算
----------        -------------
b0                 37.0459960300393
b1                 0.0487926069483363
b2                 1.50487196705523
b3                 5.5454028094221
b4                 -0.000558451632571275
b5                 0.00153209146092655
b6                 -0.0281388598195167
b7                 -2.10419568056527E-5
b8                 -0.0122539097071058
b9                 -0.492832403832336

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

No        实测值y        计算值y
1        63.9        61.3939773
2        56.9        56.9333928
3        95.4        96.6663312
4        54.3        56.3074838
5        92.7        94.5904221
6        92.9        91.8798377
7        95.8        96.2627759
8        87.8        87.3372240
9        92.6        93.6201624
10        98.7        96.8095779
11        71.2        69.1925163
12        95.1        93.8336688
13        64.8        64.7666071
14        67.2        69.7060227

和文献里的不一致。文献的二次型多项式见21楼图1:
25楼2015-01-21 14:15:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
24楼: Originally posted by 月只蓝 at 2015-01-21 11:12:41
请给出21楼的完整代码和计算结果...

抱歉 后来查证文献 代码值为:
Parameters b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Variable X1,X2,X3,Y;
Function Y=b0+b1*X1+b2*X2+b3*X3+b4*X1*X2+b5*X1*X3+b6*X2*X3+b7*X1^2+b8*X2^2+b9*X3^2;
Data;
   1   2   4    63.9
   1   4   7    56.9
   2   6   3    95.4
   2   1   7    54.3
   3   3   3    92.7
   3   5   6    92.9
   4   7   2    95.8
   4   1   6    87.8
   5   3   2    92.6
   5   5   5    98.7
   6   7   1    71.2
   6   2   5    95.1
   7   4   1    64.8
   7   6   4    67.2
26楼2015-01-21 15:25:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
25楼: Originally posted by 梦落在草地上 at 2015-01-21 14:15:38
我自己实验数据的拟合代码:
Parameters b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Variable X1,X2,X3,Y;
Function Y=b0+b1*X1+b2*X2+b3*X3+b4*X1*X2+b5*X1*X3+b6*X2*X3+b7*X1^2+b8*X2^2+b9*X3^2;
Data;
   0.0000     ...

文献的二次型多项式实际上生等于你在23楼给出的公式中几个参数为0的结果。
结果与文献不一致从以下几个方面考虑:
1. 用 1stopt拟合的,数据是按照 X1,X2,X3,Y排列的,请检查确认代码" data; " 下方的四列数据是按照该顺序排列;
2. 如果确认数据顺序无误,那说明文献的拟合结果并不是最优的;可以看到25楼中,1stopt软件可以达到:
相关系数(R): 0.995247203455277
相关系数之平方(R^2): 0.990516995985549
决定系数(DC): 0.990516995985549
这样的拟合效果,而文献的R方还不到0.90;
文献发表的拟合结果,并不是代表其是最优的,而且不知道你参考是中文文献还是外文文献,就算是外文文献给出的结果,也常常没到最优。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
27楼2015-01-21 15:30:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
26楼: Originally posted by 梦落在草地上 at 2015-01-21 15:25:19
抱歉 后来查证文献 代码值为:
Parameters b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Variable X1,X2,X3,Y;
Function Y=b0+b1*X1+b2*X2+b3*X3+b4*X1*X2+b5*X1*X3+b6*X2*X3+b7*X1^2+b8*X2^2+b9*X3^2;
Data;
   1   2    ...

我在19楼中还给出了MATLAB代码,你也可以用来检验计算结果。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
28楼2015-01-21 15:35:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
28楼: Originally posted by 月只蓝 at 2015-01-21 15:35:34
我在19楼中还给出了MATLAB代码,你也可以用来检验计算结果。...

您好,我明白了您刚刚提出的几种不一致的可能。我现在如果想得到在0<Y<100区间内的最小值,且对应X1,X2,X3值。请问在matlab里怎么实现它呢?
29楼2015-01-21 16:23:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
29楼: Originally posted by 梦落在草地上 at 2015-01-21 16:23:42
您好,我明白了您刚刚提出的几种不一致的可能。我现在如果想得到在0<Y<100区间内的最小值,且对应X1,X2,X3值。请问在matlab里怎么实现它呢?...

以下面的数组为例:
X1=[45 45 40 40 35 35 30 30 25 25 20 20 15 15];
X2=[4 5 6 7 8 9 10 4 5 6 7 8 9 10];
X3=[125 75 25 150 100 50 0 150 100 50 0 125 75 50];
Y=[20.8 3.8 41.2 4.51 6.33 45.9 36.2 53.3 62.6 8.74 34.2 63 32.5 30.8];

代码:
CODE:
X1=[45 45 40 40 35 35 30 30 25 25 20 20 15 15];
X2=[4 5 6 7 8 9 10 4 5 6 7 8 9 10];
X3=[125 75 25 150 100 50 0 150 100 50 0 125 75 50];
Y=[20.8 3.8 41.2 4.51 6.33 45.9 36.2 53.3 62.6 8.74 34.2 63 32.5 30.8];
for i=1:length(Y)
if Y(i)>10 & Y(i)<50
YY(i)=Y(i);
else YY(i)=max(Y);
end
end
j=find(YY==min(YY));
Y_min=min(YY)
X1_j=X1(j)
X2_j=X2(j)
X3_j=X3(j)

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
30楼2015-01-21 17:00:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dshuanger 的主题更新
信息提示
请填处理意见