曲线拟合

问题解决:给你一个二维的序列,你如何用多项式进行曲线拟合。一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况而定。

%曲线拟合
clear;clc
syms s   %声明一个符号变量,详细参考:%https://jingyan.baidu.com/article/cbf0e500f0bb572eaa289309.html
x=[0,14;4,1;6,8;10,14;12,4;15,7;19,24;30,4];
a=polyfit(x(:,1),x(:,2),3);  %polyfit 最小二乘曲线拟合,详见%https://baike.baidu.com/item/matlab%20polyfit/10186675?fr=aladdin
a1=poly2sym(a,s);
b=polyfit(x(:,1),x(:,2),4);
b1=poly2sym(b,s);
c=polyfit(x(:,1),x(:,2),5);
c1=poly2sym(c,s);
s=0:0.01:30;
plot(x(:,1),x(:,2),'--',s,subs(a1),s,subs(b1),s,subs(c1))  % ‘--’原始数据用虚线显示,后面的用实现显示
legend('原始数据','三次拟合','四次拟合','五次拟合')

曲线拟合_第1张图片

你可能感兴趣的:(编程语言-Matlab,曲线拟合,线性拟合,matlab)