24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1781  |  回复: 6

wljabgf

银虫 (小有名气)

[求助] 我用1stopt对一个函数中的2个参数进行双参数拟合,为何每次计算结果不同呢?求解答?已有3人参与

各位大神们,我用1stopt 1.5版 对一个函数中的2个参数进行双参数拟合,为何每次计算结果不同呢?求解答?代码如下:
Title "Type your title here";
//Parameters ;
//Variable ;
//Function ;
Parameter a=0 [0,100], h=0 [0,0.1];
Variable v,f;
Function f=(1-v)^1.5+(a-1)*v*(6.0881e-7*((34.5+h)^3-34.5^3)+0.0000170824*((25.25+h)^3-25.25^3)+0.0001727927*((14.25+h)^3-14.25^3)+0.0004147025*((7.125+h)^3-7.125^3)+0.0011128873*((3.555+h)^3-3.555^3));
Data;
0        1
0.1        0.934033162
0.2        0.808121285
0.3        0.720435573
0.4        0.649447618
0.5        0.588298163
0.6        0.467070538

选择的算法是:1. 麦夸特法:Levenberg-Marquardt(LM),其中参数都是默认的。

第一次计算结果:
"Type your title here"

迭代数: 17
计算用时(时:分:秒:微秒): 00:00:01:782
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判断标准
均方差(RMSE): 0.0236564369215793
残差平方和(SSE): 0.00391738905477264
相关系数(R): 0.993065206977526
相关系数之平方(R^2): 0.986178505309316
决定系数(DC): 0.9818600058285
卡方系数(Chi-Square): 0.00316216817997876
F统计(F-Statistic): 356.755375369784

参数        最佳估算
----------        -------------
a                  56.9724281749416
h                  0.0308130218572859

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

No        实测值f        计算值f
1        1        1.0000000
2        0.934033162        0.8963063
3        0.808121285        0.8005244
4        0.720435573        0.7131360
5        0.649447618        0.6347233
6        0.588298163        0.5660100
7        0.467070538        0.5079301

第二次计算结果:
"Type your title here"

迭代数: 23
计算用时(时:分:秒:微秒): 00:00:02:434
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判断标准
均方差(RMSE): 0.0236564369215793
残差平方和(SSE): 0.00391738905477264
相关系数(R): 0.993065206977515
相关系数之平方(R^2): 0.986178505309295
决定系数(DC): 0.9818600058285
卡方系数(Chi-Square): 0.00316216817999158
F统计(F-Statistic): 356.755375369253

参数        最佳估算
----------        -------------
a                  67.5875462999094
h                  0.0259161681817663

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

No        实测值f        计算值f
1        1        1.0000000
2        0.934033162        0.8963063
3        0.808121285        0.8005244
4        0.720435573        0.7131360
5        0.649447618        0.6347233
6        0.588298163        0.5660100
7        0.467070538        0.5079301

第三次计算结果:

"Type your title here"

迭代数: 16
计算用时(时:分:秒:微秒): 00:00:01:669
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判断标准
均方差(RMSE): 0.0236564369215794
残差平方和(SSE): 0.00391738905477264
相关系数(R): 0.993065206977515
相关系数之平方(R^2): 0.986178505309294
决定系数(DC): 0.9818600058285
卡方系数(Chi-Square): 0.00316216817999256
F统计(F-Statistic): 356.755375369213

参数        最佳估算
----------        -------------
a                  34.9984214789949
h                  0.0506078021383304

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

No        实测值f        计算值f
1        1        1.0000000
2        0.934033162        0.8963063
3        0.808121285        0.8005244
4        0.720435573        0.7131360
5        0.649447618        0.6347233
6        0.588298163        0.5660100
7        0.467070538        0.5079301

后面也算过很多次,但每一次结果都不同,请问大神们,这个能不能通过什么算法设置或者约束条件,让这两个参数的结果能够确定下来得到唯一固定的值啊,比如:可否设置另相关系数R^2最大来回归得到这两个参数的最有结果,跪求各位大神的指导啊,谢谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
wljabgf(月只蓝代发): 金币+5, 感谢专业解答。 2017-05-05 09:33:36
每次的目标函数值都是一样的均方差(RMSE: 0.023656436),参数值不一样,应该是公式本身的问题,比如过拟和,就会造成多解现象。

[ 发自手机版 http://muchong.com/3g ]
2楼2017-05-04 20:30:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wljabgf

银虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2017-05-04 20:30:44
每次的目标函数值都是一样的均方差(RMSE: 0.023656436),参数值不一样,应该是公式本身的问题,比如过拟和,就会造成多解现象。

您好,那请问有没有什么办法可以解决呢?是不是一定要将两个参数a或h的数值大小确定之后,才能够得到另一个参数的解呢?请您赐教啊?
3楼2017-05-04 21:31:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

月只蓝: 回帖置顶 2017-05-05 09:33:11
月只蓝: 回帖置顶 2017-05-05 09:33:49
楼主的公式就是过拟合:
公式中:(6.0881e-7*((34.5+h)^3-34.5^3)+0.0000170824*((25.25+h)^3-25.25^3)+0.0001727927*((14.25+h)^3-14.25^3)+0.0004147025*((7.125+h)^3-7.125^3)+0.0011128873*((3.555+h)^3-3.555^3))
可以用一个参数来代替,比如h1,原公式等价变为:
f=(1-v)^1.5+(a-1)*v*h1

上面公式中的:(a-1)*v*h1就会导致过拟合,多解
4楼2017-05-04 22:26:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wljabgf

银虫 (小有名气)

引用回帖:
4楼: Originally posted by dingd at 2017-05-04 22:26:17
楼主的公式就是过拟合:
公式中:(6.0881e-7*((34.5+h)^3-34.5^3)+0.0000170824*((25.25+h)^3-25.25^3)+0.0001727927*((14.25+h)^3-14.25^3)+0.0004147025*((7.125+h)^3-7.125^3)+0.0011128873*((3.555+h)^3-3.555 ...

哦哦哦,您的意思是,对于f=(1-v)^1.5+(a-1)*v*h1这样的函数,必须要先给出a或者h1中的其中一个参数的数值,比如令h1=0.02,然后再来拟合回归得到a的值,是这样子吗?感谢回答呢。
5楼2017-05-05 09:17:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
wljabgf: 金币+45, ★★★★★最佳答案, 非常感谢。 2017-05-05 11:05:20
基本意思差不多,“(a-1)*h1”不事先给定一个会有无穷多组合
6楼2017-05-05 09:48:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wljabgf

银虫 (小有名气)

引用回帖:
6楼: Originally posted by dingd at 2017-05-05 09:48:14
基本意思差不多,“(a-1)*h1”不事先给定一个会有无穷多组合

好的,非常感谢您,感谢您为我解惑,谢谢啦!!
7楼2017-05-05 11:04:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wljabgf 的主题更新
信息提示
请填处理意见