MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 935|回复: 36|关注: 0

[已解决] 已知很多数据点横纵坐标,如何拟合曲线

[复制链接]

新手

12 麦片

财富积分


050


55

主题

207

帖子

0

最佳答案
  • 关注者: 1
如何用命令实现从原图到拟合图呢,用cftool拟合后的结果总是超出我的数据点的范围,我只想把拟合后的曲线限制到数据点的两端,不要再外扩,应该用什么函数拟合呢,谢谢大家!

原图

原图
拟合.jpg

横坐标.mat

423 Bytes, 下载次数: 0

纵坐标.mat

270 Bytes, 下载次数: 0

论坛优秀回答者

15

主题

1673

帖子

99

最佳答案
  • 关注者: 122
发表于 2017-10-16 10:47:46 | 显示全部楼层
SSy =        71518
fx=@(b,x)b(1)+b(2)*x+b(3)*x.^2-sqrt(b(4)+b(5)*x.^2+b(6)*x.^3);
b =[205.315094  -0.8085553219  0.006695467419  9925.762413  -0.4072635917  0.007288394122]
RSS = 1606.99238952
MSe =  2.4838
R^2 =  0.97753
nh1396.png

新手

12 麦片

财富积分


050


55

主题

207

帖子

0

最佳答案
  • 关注者: 1
 楼主| 发表于 2017-10-16 15:03:33 | 显示全部楼层
本帖最后由 白叱咤风云 于 2017-10-16 15:37 编辑
stats01 发表于 2017-10-16 10:47
SSy =        71518
fx=@(b,x)b(1)+b(2)*x+b(3)*x.^2-sqrt(b(4)+b(5)*x.^2+b(6)*x.^3);
b =[205.315094  -0 ...

谢谢您,您这个拟合的形状很贴合给出的点,请问您的这个fx为什么这么列呢,还出现了根号形式;b是如何求的呢,因为我还有其他的类似的数据点需要拟合,望得到您进一步指导,谢谢啦。您可以把做这个图的代码发一下吗,我在其他帖子上看到您说拟合主要就是fx模型的选取,b是一般的拟合结果,但是还有点不太清楚具体怎么操作的,谢谢您。

论坛优秀回答者

15

主题

1673

帖子

99

最佳答案
  • 关注者: 122
发表于 2017-10-16 16:02:02 | 显示全部楼层 |此回复为最佳答案
白叱咤风云 发表于 2017-10-16 15:03
谢谢您,您这个拟合的形状很贴合给出的点,请问您的这个fx为什么这么列呢,还出现了根号形式;b是如何求的 ...

fx的确定是非线性拟合的难点,这里先看数据的走向,大体可理解为一段(近似)直线与圆弧的叠加。然后再对方程拟合并进行测验,去除没有作用或作用微弱的效应项,得到最终的模型如上。至于说b的估计,我自编了拟合的小程序,可对各类较复杂非线性问题进行拟合。你可以用lsqcurvefit and/or nlinfit, cftool等matlab命令进行拟合。但这些命令需提供较合适的初值, 以我的结果作为初值即可。若有其他数据用上述命令不能奏效,可将数据给出,我可以给出一个大概的结果。

新手

12 麦片

财富积分


050


55

主题

207

帖子

0

最佳答案
  • 关注者: 1
 楼主| 发表于 2017-10-17 09:39:25 | 显示全部楼层
stats01 发表于 2017-10-16 16:02
fx的确定是非线性拟合的难点,这里先看数据的走向,大体可理解为一段(近似)直线与圆弧的叠加。然后再对 ...

非常感谢您,等我试试其他参数用这个初值和fx是否可以,谢谢

新手

12 麦片

财富积分


050


55

主题

207

帖子

0

最佳答案
  • 关注者: 1
 楼主| 发表于 2017-10-18 10:37:46 | 显示全部楼层
本帖最后由 白叱咤风云 于 2017-10-18 11:22 编辑
stats01 发表于 2017-10-16 16:02
fx的确定是非线性拟合的难点,这里先看数据的走向,大体可理解为一段(近似)直线与圆弧的叠加。然后再对 ...

老师,您好,我已经通过您给的fx和初始值b把这组拟合做好了,但是这个b初始值和fx适用于当前这组数据,对于其他数据拟合效果不是很准确,您可以告诉我初始值b是如何得到的吗,您可以把这几组数据计算一下吗,谢谢啦。因为我还有比较多的类似数据要拟合,fx应该都可以按照您给的做,但是b值应该是有所不同,所以还是希望能知道是如何求得,万分感谢!期待您的回复!

40767-1倒数第一条.mat

586 Bytes, 下载次数: 0

40767-2倒数第二条.mat

702 Bytes, 下载次数: 0

40767-3倒数第三条.mat

812 Bytes, 下载次数: 0

40767-4倒数第四条.mat

630 Bytes, 下载次数: 0

40767-5倒数第五条.mat

797 Bytes, 下载次数: 0

新手

12 麦片

财富积分


050


55

主题

207

帖子

0

最佳答案
  • 关注者: 1
 楼主| 发表于 2017-10-18 14:09:07 | 显示全部楼层
stats01 发表于 2017-10-16 16:02
fx的确定是非线性拟合的难点,这里先看数据的走向,大体可理解为一段(近似)直线与圆弧的叠加。然后再对 ...

老师,希望您在给看一下,谢谢了!

论坛优秀回答者

15

主题

1673

帖子

99

最佳答案
  • 关注者: 122
发表于 2017-10-18 15:22:49 | 显示全部楼层
白叱咤风云 发表于 2017-10-18 10:37
老师,您好,我已经通过您给的fx和初始值b把这组拟合做好了,但是这个b初始值和fx适用于当前这组数据,对 ...

fx就不再改动了,这也许不合适。
b值分别为:
1
250.6841778  -0.2360020852  0.006276436136  1632.228684  -0.5042805909  0.01228997994

2
216.4101448  -0.5129294048  0.005497269448  300.4290517  -0.2165460822  0.004939513314

3
178.305298  -0.6224424481  0.003917189985  26.21974499  -0.04493440534  0.0009109749594

4
155.058182  -0.7034149467  0.002542969729  102.0967752  -0.006585988389  2.036234797e-05

5
99.61986635  -0.4131691416  0.001988534105  2.903783301  -0.0009234789133  6.257144879e-06
nh13971.png
nh13972.png
nh13973.png
nh13974.png
nh13975.png

新手

12 麦片

财富积分


050


55

主题

207

帖子

0

最佳答案
  • 关注者: 1
 楼主| 发表于 2017-10-18 17:06:53 | 显示全部楼层
stats01 发表于 2017-10-18 15:22
fx就不再改动了,这也许不合适。
b值分别为:
1

非常感谢您,谢谢您的指导。

新手

12 麦片

财富积分


050


55

主题

207

帖子

0

最佳答案
  • 关注者: 1
 楼主| 发表于 2017-10-20 09:15:38 | 显示全部楼层
本帖最后由 白叱咤风云 于 2017-10-20 10:49 编辑
stats01 发表于 2017-10-18 15:22
fx就不再改动了,这也许不合适。
b值分别为:
1

老师,您好,拟合出来的曲线方程初始值b是不是就应该是拟合后的a了
[a,Re]=lsqcurvefit(fx,b,tx,ty);
y1=a(1)+a(2)*x+a(3)*x.^2-sqrt(a(4)+a(5)*x.^2+a(6)*x.^3);
谢谢老师。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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