如何用matlab进行曲线拟合,就是已知x轴和y轴的数值,拟合出一个公式.

学习 时间:2026-03-30 08:49:01 阅读:3691
如何用matlab进行曲线拟合,就是已知x轴和y轴的数值,拟合出一个公式.x=[0 28 64 103 123 144 217 291 429 504 553 657 711 783 838];y=[31.53 30.43 29.38 28.80 28.13 27.59 25.53 24.3 22.83 21.57 21.86 29.49 34.52 41.76 44.6];我实在是弄不出来~

最佳回答

安详的战斗机

活力的小鸽子

2026-03-30 08:49:01

表达式必须自己估计。有很多表达式都能拟合出类似曲线。matlab里做曲线拟合的主要有(我经常用的)有这两个:polyfit和lsqcurvefit。前者专门对高次多项式拟合,后者则适用于绝大多数非线性拟合。根据描点判断可以用多项式拟合,我下面以二次多项式举例:clearx=[ 0    28    64   103   123   144   217   291   429   504   553   657   711   783   838]';y=[   31。5300   30。4300   29。3800   28。8000   28。1300   27。5900   25。5300   24。3000   22。8300   21。5700   21。8600   29。4900   34。5200   41。7600   44。6000];%用polyfit拟合p=polyfit(x,y,2); %用2次多项式figure(1);title('拟合1')hold onplot(x,y,'+',x,polyval(p,x));legend('原始值','拟合值');%用lsqcurvefit拟合f=@(b,x) b(1)+b(2)。*x+b(3)。*x。^2; %构造要拟合的函数b=lsqcurvefit(f,[1,1,1],x,y);   %进行拟合figure(2)title('拟合2');hold onplot(x,y,'+',x,f(b,x));legend('原始数据','拟合数据')只画第一张图作为参考,剩下的程序会帮你做的。

最新回答共有2条回答

  • 老迟到的老师
    回复
    2026-03-30 08:49:01

    表达式必须自己估计。有很多表达式都能拟合出类似曲线。matlab里做曲线拟合的主要有(我经常用的)有这两个:polyfit和lsqcurvefit。前者专门对高次多项式拟合,后者则适用于绝大多数非线性拟合。根据描点判断可以用多项式拟合,我下面以二次多项式举例:clearx=[ 0    28    64   103   123   144   217   291   429   504   553   657   711   783   838]';y=[   31。5300   30。4300   29。3800   28。8000   28。1300   27。5900   25。5300   24。3000   22。8300   21。5700   21。8600   29。4900   34。5200   41。7600   44。6000];%用polyfit拟合p=polyfit(x,y,2); %用2次多项式figure(1);title('拟合1')hold onplot(x,y,'+',x,polyval(p,x));legend('原始值','拟合值');%用lsqcurvefit拟合f=@(b,x) b(1)+b(2)。*x+b(3)。*x。^2; %构造要拟合的函数b=lsqcurvefit(f,[1,1,1],x,y);   %进行拟合figure(2)title('拟合2');hold onplot(x,y,'+',x,f(b,x));legend('原始数据','拟合数据')只画第一张图作为参考,剩下的程序会帮你做的。

上一篇 Japan是啥?

下一篇 如何提高折弯机模具的质量