文章目录
拟合插值
一维插值:interp(x,y,X,method,‘exrap’)
求出函数表达式y=f(x),并返回在X曲间的插值Y
细节:
x,y: 构造函数表达式的初始数据
X:插值区间
method =‘nearest’:最邻近点插值(最简单)
‘linear’: 线性插值
‘spline’: 三次样条插值(非线性)
‘exrap’:对于超出x范围的X中的分量执行特殊的外插值方法exrap
应用:题目2
二元插值:griddata(x,y,z,cx,cy,‘method’)
步骤:
①用二元函数z=f(x,y)拟合不规则的数据向量x,y,z。
②返回曲面z在点(cx,cy)处的插值cz
通常:cx,cy是规则的格点(用命令meshgrid生成)
细节:
method =‘linear’ 基于三角型的线性插值
‘cubic’ 基于三角形的三次插值
‘nearest’ 最邻近插值法
‘v4’ matlab4中的griddata算法
应用:题目1
二元二次拟合:regress(y,X)
调用格式:
b =regress(y,X);
[b,bint] =regress(y,X);
[b,bint,r] =regress(y,X);
[b,bint,r,rint] =regress(y,X);
[b,bint,r,rint,stats] =regress(y,X);
参数解释:
y:因变量 X:自变量的可能二元二次线性组合
B:回归系数
bint: 回归系数区间估计(95%置信度)
r: 残差
rint: 残差置信区间(95%)
stats: 检验回归模型的统计量。有四个数值:1.判定系数R^2,F统计量观察值,检验P值,误差方差的估计(第三个参数P值越小<0.001说明模型有效)
代码与注意细节:
%初始数据向量化
X =[129 140 103.5 88 185.5 195 105 157.5 107.5 77 81 162 162 117.5]';
Y =[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5]';
Z =[4 8 6 8 6 8 8 9 9 8 8 9 4 9]';
%特别注意:向量为n*1格式,1*n格式均需要转置
M =[X.^2,Y.^2,X.*Y,X,Y,ones(size(X))];
[b,bint,r,rint,stats] =regress(Z,M);
%Z =0.0004*X^2+0.0002*Y^2-0.0001*X*Y-0.1108*X-0.0130*Y+14.2395
题目1:海水深度问题
首先想到,可以使用一般的二维插值方法interp2(X,Y,Z,x,y,‘method’)求解,但是该方法要求X,Y为递增向量。本题中给定的平面坐标为离散点,不能使用该方法求值。此时便可以尝试girddata处理不规则的数据向量。
%x y z初始数据(平面坐标与对应深度)向量化
x =[129 140 103.5 88 185.5 195 105 157.5 107.5 77 81 162 162 117.5