求帮助解拟合方程的系数
如图:求出指数w,r,u的近似值,使公式更接近于真实关系。谁会用MATLAB帮忙拟合一下吧。//数据对应的数组如下:
{x2, x1, x3, y}
{250, 26, 0.3901, 25.9}
{250, 13, 0.405666666666667, 34}
{500, 13, 0.4055, 36.06}
{500, 1.76, 0.3112, 41.48}
{250, 6, 0.4664, 42.33}
{500, 6, 0.4668, 44.15}
{2500, 6.14, 0.5, 45.23}
{1500, 2, 0.5753, 46}
{1000, 4, 0.5, 50.8}
肯定是转换成对数坐标系 再拟合这个还是双对数坐标系 LABVIEW吧
瞬间搞定了! 阿豪博士 发表于 2016-3-18 21:57
LABVIEW吧
瞬间搞定了!
那就麻烦一下阁下吧!莫元还可以追加,只要能拟合出来。 你这个需要变换吗?
或者正规的叫法是什么拟合? 先取对数,最小二乘就出来了 优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判断标准
均方差(RMSE): 4.64341605041802
残差平方和(SSE): 194.051813555517
相关系数(R): 0.770308790016531
相关系数之平方(R^2): 0.593375631976732
决定系数(DC): 0.569953688548753
卡方系数(Chi-Square): 2.46302074002735
F统计(F-Statistic): 10.2149053290369
参数 最佳估算
---------- -------------
w 7.28510718582051
r 0.144427213931907
u -0.0593651218802381
====== 结果输出 =====
No 实测值y 计算值y
1 25.9 32.0192913
2 34 33.1405867
3 36.06 37.3000439
4 41.48 42.1507979
5 42.33 34.9195438
6 44.15 39.3052359
7 45.23 49.6140151
8 46 50.8617919
9 50.8 45.0871542 dxgdsx 发表于 2016-3-19 15:20
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判断标准
均方差(RMSE) ...
你这是用1stopt拟合的吧,能把你的代码给看看吗?我的代码一直提示Function字符串错误 。
Title "Type your title here";
//Parameters ;
//Variable ;
//Function ;
Parameter w,r,u;
Variable x1,x2,x3,y;
Function y=ln(x1)^w/((ln(1+x2))^r*(x3^u));
Data;
x2 x1 x3 y
25026 0.3901 25.9
25013 0.40566666666666734
50013 0.4055 36.06
5001.76 0.3112 41.48
2506 0.4664 42.33
5006 0.4668 44.15
2500 6.14 0.5 45.23
1500 2 0.5753 46
1000 4 0.5 50.8 gallop020142 发表于 2016-3-19 15:01
先取对数,最小二乘就出来了
都发了莫元,阁下能搞定的话,烦请帮个忙!请不要一句话的帮法。 本帖最后由 gallop020142 于 2016-3-20 06:59 编辑
xf331785508 发表于 2016-3-19 22:00
都发了莫元,阁下能搞定的话,烦请帮个忙!请不要一句话的帮法。
少年,我机器上matlab没激活,我只能帮你这么多了,不知道你分母上的指数到底是在里面还是外面,但基本思想是一样的。 建议楼主可以看看 数值计算方法之类的书,以后碰到类似的可以轻松解决啦。 gallop020142 发表于 2016-3-21 17:13
建议楼主可以看看 数值计算方法之类的书,以后碰到类似的可以轻松解决啦。 ...
matlab不太会。然后用了1stopt的拟合软件,但效果不太好。R相关性系数才0.3,dxgdsx给了结果,但没有给出代码,就不知道解决只法了。 xf331785508 发表于 2016-3-19 21:36
你这是用1stopt拟合的吧,能把你的代码给看看吗?我的代码一直提示Function字符串错误 。
...
代码请见附件。
xf331785508 发表于 2016-3-21 17:25
matlab不太会。然后用了1stopt的拟合软件,但效果不太好。R相关性系数才0.3,dxgdsx给了结果,但没有给出 ...
你先告诉我:分子上的指数的位置我的理解是对的吗?我找个matlab的破解文件帮你试试 xf331785508 发表于 2016-3-21 17:25
matlab不太会。然后用了1stopt的拟合软件,但效果不太好。R相关性系数才0.3,dxgdsx给了结果,但没有给出 ...
我看你的代码分子上的指数好像是(log x1)^w,所以我按照这个弄了一下,结果见图。 为了这100莫元,我渔也给了,鱼也给你做成菜了哈 y2 = ((log(x1)).^x(1)) ./ (((log(1+x2)).^x(2)) .* ((x3).^x(3))); %拟合后的值
y2 - y %误差
ans =
5.6649
-2.6307
3.0734
2.1518
-11.9673
-6.2871
11.8918
3.3384
-5.3071 本帖最后由 gallop020142 于 2016-3-22 06:56 编辑
5.6649 6.1193
-2.6307 -0.8594
3.0734 1.2400
2.1518 0.6708
-11.9673 -7.4105
-6.2871 -4.8448
11.8918 4.3840
3.3384 4.8618
-5.3071 -5.7128
这第一列是我拟合的参数[-0.0214, -1.8752, 0.2889]'的实际误差,
第二列是 8楼拟合后的误差,看来取对数之后再最小二乘这个方法得到的结果不太好,
我觉得:非线性变换后求得的参数是变换后线性空间中的最优值,而不是原问题——非线性最优化问题的最优值,也就是说原问题——非线性最优化问题,不能够用线性最优化方法求解。
而8楼的结果好一些就是因为他是直接针对原来的非线性最优化问题进行求解 gallop020142 发表于 2016-3-21 19:51
为了这100莫元,我渔也给了,鱼也给你做成菜了哈
{:lol:} {:handshake:} 多谢多谢! xf331785508 发表于 2016-3-22 09:19
多谢多谢!
惭愧,我原来的想法是错的。。。
估计只能直接用非线性最优化方法求解了
页:
[1]