matlab拟合空间曲线。散点拟合三维曲线

问题:已知三组数据,就是直角坐标系中的x,y,z的三个数组,要求在matlab中拟合出这条空间曲线。 帖子源数据:
a=

[22.77,17.13,14.37,12.98,12.34,12.12,12.11,12.18,12.27,12.32,12.32,12.27,12.18,12.11,12.12,12.34,12.98,14.37,17.13,22.77];
b=[23.75,21.25,18.75,16.25,13.75,11.25,8.75,6.25,3.75,1.25,-1.25,-3.75,-6.25,-8.75,-11.25,-13.25,-16.25,-18.75,-21.25,-23.75];
c=[0,3.34,6.59,9.44,11.82,13.74,15.21,16.29,16.99,17.33,17.33,16.99,16.29,15.21,13.74,11.82,9.44,6.59,3.34,0];

关于这个问题在论坛里被提及了好多次,貌似还没有最佳答案。在matlab中找了很多函数去实现,都不是很理想,也有人提到1st0pt曲线拟合软件,下面提供一种可行的解决方案:
step1:三组数据导入1stOpt(这是一个1分钟入手软件,即开即用,哈哈),程序-快速三维公式拟合,优化算法麦夸特法(Levenberg-Marquardt, LM)。选取相关系数为1的函数结构,同时还会生成多项式系数p。输出结果:
Function: z = p1+p2x+p3x2+p4*y+p5*y2+p6*y^3
Algorithms: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
p1 21.414214338773
p2 -0.472199954302881
p3 0.0119553684329481
p4 0.00491434397562593
p5 -0.0298899195279345
p6 -9.69888338793035E-6

step2:在Matlab中系数p继续做优化处理, pp = lsqcurvefit(@fun,x0,xdata,ydata)。将上述p作为lsqcurvefit函数的x0预测值,fun为z方程式。求得优化后的系数pp。具体 lsqcurvefit见help文档

原始曲线和拟合曲线
在这里插入图片描述

  • 4
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值