24小时热门版块排行榜    

查看: 454  |  回复: 2

求真务实

铜虫 (小有名气)

[求助] Matlab多元非线性拟合问题 已有2人参与

x=[494.8 719.6 908.7 1076 497.5 696.5 882.2 1070 501.5 675.3 869.3 1022];
y=[190 190 190 190 185 185 185 185 180 180 180 180];
z=[0.554 0.747 0.889 1.211 0.672 0.913 0.975 1.321 0.887 1.078 1.104 2.036];
z是关于x和y的函数,函数模型是z=(a*x^2+b*x+c)*(d*y+e)^f。
请问这个拟合应该怎么做?
本人Matlab不是很在行,谢谢!
回复此楼

» 猜你喜欢

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

会当凌绝顶,一览众山小
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
求真务实: 金币+10, 有帮助 2014-12-08 21:47:26
1:模型公式有过拟合现象,求解的话参数组值不唯一;可以化简成:z=(a*x^2+b*x+c)*(y+e)^f;
2:如果只要结果的话用1stOpt更简单准确:

均方差(RMSE):0.118105500021955
残差平方和(SSE):0.167386909625233
相关系数(R): 0.947530881955939
相关系数之平方(R^2): 0.897814772260199
确定系数(DC): 0.897250035948276
卡方系数(Chi-Square): 0.0701160632661904
F统计(F-Statistic): 17.0316361290312

参数        最佳估算
----------        -------------
a        3.85899884814797E-6
b        -0.00396976717506868
c        2.07459006619124
e        -178.424849841618
f        -0.247915872253693
2楼2014-12-06 14:52:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bcsnow

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
求真务实: 金币+10, 有帮助 2014-12-08 21:47:34
x=[494.8 719.6 908.7 1076 497.5 696.5 882.2 1070 501.5 675.3 869.3 1022];
y=[190 190 190 190 185 185 185 185 180 180 180 180];
z=[0.554 0.747 0.889 1.211 0.672 0.913 0.975 1.321 0.887 1.078 1.104 2.036]';
X=[x;y]'
b0=[0 0 0 0 0 0]'
fun=@(b,X)(b(1)*X(:,1).^2.+b(2)*X(:,1)+b(3)).*((b(4)*X(:,2)+b(5)).^b(6))
[beta,r,J,COVB,mse]=nlinfit(X,z,fun,b0)
模型或者初始数据不太合理,拟合结果很糟糕
最好更改模型了,或者对数据进行一些处理,比如去掉坏点等
3楼2014-12-08 09:17:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 求真务实 的主题更新
信息提示
请填处理意见