1)原始数据的输入,这里可以采用workspace输入,表格,文本等格式,用MATLAB进行读取,鉴于本例中,就直接在命令行窗口中直接输入:
// 拟合三维平面
clear all
clc
close all
Data = [ 2 -10 7
2 -8 7
。。。
(省略部分数据)
。。。
22 8 17
22 10 17];
;
2)将两元因变量分别存于x,y之中,将变量存于z中。
// 拟合三维平面
x=Data(:,1);y=Data(:,2);z=Data(:,3);
3)网格化,插值
// 拟合三维平面
[X Y] = meshgrid(min(x):2:max(x),min(y):2:max(y));%将x,y轴网格化,重构用于画图x,y轴数据
[X,Y,Z] = griddata(x,y,z,X,Y);%插值,重构用于画图的Z轴数据
figure(\'NumberTitle\', \'off\', \'Name\', \'模糊控制平面\');
mesh(X,Y,Z)%三维曲面
4)拟合公式
// 拟合三维平面
row = size(Data,1);
x=Data(:,1);y=Data(:,2);z=Data(:,3);
T=[x y x.*y x.*x y.*y ones(row,1)]\z;
syms x y
z = vpa([x y x*y x*x y*y 1]*T,4);
得到本里中所拟合出的三维曲面公式为;