查看: 391|回复: 7|关注: 0

[已答复] matlab曲线拟合工具中自定义函数拟合问题(数据+代码)

[复制链接]

新手

9 麦片

财富积分


050


8

主题

30

帖子

0

最佳答案
发表于 2019-6-12 16:51:12 | 显示全部楼层 |阅读模式
data1=xlsread('');
data2=xlsread('');
x=data1+1;
y=data2;

f=fittype('[2*C10+4*C20*([x.^2]+2*(1./x)-3)+6*C30*([x.^2]+2*1./x-3).^2]*[x-x.^-2]');
cfun=fit(x,y,f)
xi=x;
yi=cfun(xi);
figure(1)
plot(x,y);
hold on
plot(xi,yi);

st.xlsx

56.71 KB, 下载次数: 3

新手

9 麦片

财富积分


050


8

主题

30

帖子

0

最佳答案
 楼主| 发表于 2019-6-12 16:56:18 | 显示全部楼层
微信截图_20190612165256.png 可以看出曲线前半段不是很好,我想获得的参数C102030跟一些CAE软件算的也不一样。这种原因是什么?

新手

9 麦片

财富积分


050


8

主题

30

帖子

0

最佳答案
 楼主| 发表于 2019-6-12 16:59:12 | 显示全部楼层
qujrui 发表于 2019-6-12 16:56
可以看出曲线前半段不是很好,我想获得的参数C102030跟一些CAE软件算的也不一样。这种原因是什么?

...

或者有没有更好的办法获取我已知函数的系数,其中start point我应该手动选(1,0)吗?另外所求系数的上下限不知道,请高人赐教

论坛优秀回答者

中级

996 麦片

财富积分


5001500


0

主题

2471

帖子

215

最佳答案
  • 关注者: 139
发表于 2019-6-12 18:27:53 | 显示全部楼层
已经是最优解了吧,想要更好的结果只能看模型公式有无可能改动

新手

9 麦片

财富积分


050


8

主题

30

帖子

0

最佳答案
 楼主| 发表于 2019-6-12 18:33:03 | 显示全部楼层
shihe 发表于 2019-6-12 18:27
已经是最优解了吧,想要更好的结果只能看模型公式有无可能改动

看不改动模型公式有什么办法吗,因为这种问题我碰到好几次了。我相信其他一些软件模型公式也是这,但是算的就是好,不知道是什么原因。 起始点问题?分段问题?还是说matlab函数选择问题,比如说选择其他拟合方式?

论坛优秀回答者

中级

996 麦片

财富积分


5001500


0

主题

2471

帖子

215

最佳答案
  • 关注者: 139
发表于 2019-6-12 18:39:34 | 显示全部楼层
你目前的数据及对应的目前的公式,得出的就是最优解,想更好,要么改动公式要么重新获取新的数据。

入门

62 麦片

财富积分


50500


0

主题

146

帖子

11

最佳答案
发表于 2019-6-12 21:49:54 | 显示全部楼层
SSy =      14.62
fx=@(b,x)(b(1)+b(2)*x.^2+b(3)*x.^3)./(1+b(4)*x+b(5)*x.^b(6));
b =[0.215789526  0.001721242244  0.0008771186954  -0.06734489347  0.746968245  -0.7666624477]
RSS = 0.000285031003561
MSe = 1.8777e-07
R^2 =   0.99998
nh1571.png

新手

9 麦片

财富积分


050


8

主题

30

帖子

0

最佳答案
 楼主| 发表于 2019-6-13 10:07:51 | 显示全部楼层
顾世梁 发表于 2019-6-12 21:49
SSy =      14.62
fx=@(b,x)(b(1)+b(2)*x.^2+b(3)*x.^3)./(1+b(4)*x+b(5)*x.^b(6));
b =[0.215789526  0.00 ...

这是改模型了。所求参数不是待解参数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

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