概述
插值和拟合
插值和拟合都是要根据一组数据构造一个函数作为近似。
插值方法
分段线性插值
分段线性插值函数,记作In(Xi)=Yi,函数在每个小区间[Xi,Xi+1]上是线性函数(i=0,1,……,n-1)
n越大,分段越多,插值误差越小。
拉格朗日插值多项式
样条插值
样条函数的概念
三次样条插值
在每一个小区间函数都是三次多项式,在[a,b]上二阶可微。
不妨记作:
matlab工具箱
y=interp1(x0,y0,‘method’)
method为插值方法,默认为线性插值
其值可为:
nearest 最近项插值
linear 线性插值
spline 立方样条插值
cubic 立方插值
y=spline(x0,y0,x)
三次样条插值函数
pp=csape((x0,y0,conds);
使用默认边界条件,即Lagrange边界条件
pp=csape(x0,y0,conds,valconds);
中的conds可为
y=fnval(pp,x);
csape返回的是pp形式,要求插值点的函数值,必须调用函数fnval
fnval 计算样条函数区间内任意一点的值
subplot函数:
功能:分割figure,创建子坐标系
h = subplot(m,n,p)/subplot(mnp) 将figure划分为m×n块,在第p块创建坐标系,并返回它的句柄。当m,n,p<10时,可以简化为subplot(mnp)或者subplot mnp
(注:subplot(m,n,p)或者subplot(mnp)此函数最常用:subplot是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果第一个数字是2就是表示2行图。p是指你现在要把曲线画到figure中哪个图上,最后一个如果是1表示是从左到右第一个位置。 )
plot函数
功能:绘制二维图像
1:plot(X, Y, LineSpec)
LineSpec是绘图样式
y 黄
m 紫
c 青
r 红色
g 绿
b 蓝
w 白
k 黑
- 实线
: 点线
-. 点划线
– 虚线
- 星号 p 五角星
v 向下三角形
^ 向上三角形
diff函数
diff(函数) 求的一阶导数
diff(函数,n) 求的n阶导数
例题
例题1
代码:
x0=[0 3 5 7 9 11 12 13 14 15];
y0 =[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6];
x=0:0.1:15;
y1 = interp1(x0 ,y0,x);
y2 = interp1(x0 ,y0,x,'spline');
pp1 =csape(x0 ,y0);
y3 = fnval(pp1,x);
pp2 = csape( x0 ,y0,'second');
y4 = fnval(pp2,x);
[x',y1' ,y2' ,y3',y4']
subplot(1,3,1)
plot(x0,y0,'+',x,y1)
title( 'Piecewise linear' )
subplot(1,3,2)
plot(x0,y0,'+',x,y2)
title( 'Spline1')
subplot(1,3,3)
plot(x0,y0,'+',x,y3)
title( 'Spline2')
dx =diff(x);
dy =diff(y3);
dy_dx =dy ./dx;
dy_dx0 =dy_dx(1)
ytemp =y3(131:151);
ymin = min(ytemp);
index = find(y3==ymin);
xmin=x(index); .
[xmin,ymin]
结果:
最后
以上就是舒心楼房为你收集整理的美赛(matlab自学)之插值和拟合的全部内容,希望文章能够帮你解决美赛(matlab自学)之插值和拟合所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复