多项式拟合:
- clc,clear,close all
- x=[0.5,1.0,1.5,2.0,2.5,3.0];
- y=[1.75,2.45,3.81,4.80,7.00,8.60];
- a1=polyfit(x,y,1); %一次拟合
- a2=polyfit(x,y,2); %二次拟合
- a3=polyfit(x,y,3); %三次拟合
- x1=[0.5:0.05:3.0];
- y1=a1(2)+a1(1)*x1; %一次多项式
- y2=a2(3)+a2(2)*x1+a2(1).*x1.*x1; %二次多项式
- y3=a3(1).*x1.*x1.*x1+a3(2).*x1.*x1+a3(3)*x1+a3(4); %三次多项式
- plot(x,y,'*');
- hold on
- plot(x1,y1,'b--',x1,y2,'k',x1,y3,'ro-') ;
- legend('原始数据','一次拟合','二次拟合','三次拟合')
- p1=polyval(a1,x) % 多项式
- p2=polyval(a2,x) % 多项式
- p3=polyval(a3,x) % 多项式
- v1=y-p1; %误差
- v2=y-p2; %误差
- v3=y-p3; %误差
- s1=norm(v1,'fro') % 计算 F-范数
- s2=norm(v2,'fro') % 计算 F-范数
- s3=norm(v3,'fro') % 计算 F-范数
复制代码
|