数值插值
拉格朗日插值
function yy=lagrange(x,y,xx)
m=length(x);
n=length(y);
if m~n,error('向量长度不相等')
end
s=0;
for i=1:n;
t=ones(1,length(xx)):
for j=1:n
if j~=i,
t=t.*(xx-x(j))/(x(i)-x(j));
end
end
s=s+t*y(i);
end
yy=s;
clear;
x=[--]
y=[--]
xi=-0.2:0.01:0.3;
yi=lagrange(x,y,xi)
曲线拟合
多项式拟合
[p,s]=polyfit(x,y,n)
n:阶数
p:系数向量
s:系数向量是信息结构
x=0:pi/20:pi;
y=sin(x)
a=polyfit(x,y,5);
y1=polyval(a,x)
plot(x,y,'go',x,y1,'b--')
直线的最小二乘拟合
[k,b]=linefit(x,y)
x=[--]
y=[--]
[k,b]=linefit(x,y)
y1=polyval([k,b],x)
plot(x,y1)
hold on
plot(x,y,'*')
函数线性组合
想要拟合成这样,求参数:
g
(
x
)
=
c
1
+
c
2
e
−
2
x
+
c
3
c
o
s
(
−
2
x
)
e
−
4
x
+
c
4
x
2
g(x)=c_1+c_2e^{-2x}+c_3cos(-2x)e^{-4x}+c_4x^2
g(x)=c1+c2e−2x+c3cos(−2x)e−4x+c4x2
function yy=linefit2(x,y,A)
n=length(x);
y=reshape(y,n,l)
A=A';
yy=A\y;
yy=yy';
clear
x=[--]
y=[--]
A=[ones(size(x);exp(-2*x);cos(-2*x).*exp(-4*x);x.^2]; %除了系数
yy=linefit2(x,y,A)
%画图
plot(x,y,'or')
hold on
x=[0:0.01:0.92]';
A1=[ones(size(x) exp(-2*x),cos(-2*x).*exp(-4*x) x.^2];
y1=A1*yy';
plot(x,y1)
hold off
最小二乘法曲线拟合
[p,s,mu]=polyfit(x,y,n)
mu:两个元素:标准化过程中的X的均值和标准差
就是多项式拟合啊
好啦好啦终于看完(差不多)这本书了
希望国赛有个好成绩!!!!!
工具箱拟合
等一下我咋记得有个工具箱拟合
Curve Fitting Toolbox 提供一个 App 和多个函数,可对数据进行曲线和曲面拟合。使用该工具箱可以执行探索性数据分析,预处理和后处理数据,比较候选模型,以及删除离群值。您可以使用工具箱提供的线性和非线性模型库进行回归分析,也可以指定自定义方程。该库提供优化的求解器参数和起始条件,以提高拟合质量。该工具箱还提供非参数化建模方法,如样条、插值和平滑。
在创建一个拟合之后,您可以运用多种后处理方法进行绘图、插值和外插,估计置信区间,并可计算积分和导数。
在命令窗口中直接输入”cftool”,打开工具箱
参考