插值和拟合
插值和拟合都是要根据一组数据构造一个函数作为近似。
插值方法
分段线性插值
分段线性插值函数,记作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
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30x0=[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自学)之插值和拟合内容请搜索靠谱客的其他文章。
发表评论 取消回复