基于最小二乘法的曲面拟合
a=2;b=2;c=-5;d=2;e=6;f=7;; %系数
n=1:0.2:20;
x=repmat(n,96,1);
y=repmat(n',1,96);
z=a*x.^2+b*y.^2+c*x.*y+d*x+e*y +f; %原始模型
surf(x,y,z)
N=100;
ind=int8(rand(N,2)*95+1);
X=x(sub2ind(size(x),ind(:,1),ind(:,2)));
Y=y(sub2ind(size(y),ind(:,1),ind(:,2)));
Z=z(sub2ind(size(z),ind(:,1),ind(:,2)))+rand(N,1)*20; %生成待拟合点,加噪声
hold on;
plot3(X,Y,Z,'o');
A=[N sum(Y) sum(X) sum(X.*Y) sum(Y.^2) sum(X.^2); %计算
sum(Y) sum(Y.^2) sum(X.*Y) sum(X.*Y.^2) sum(Y.^3) sum(X.^2.*Y);
sum(X) sum(X.*Y) sum(X.^2) sum(X.^2.*Y) sum(X.*Y.^2) sum(X.^3);
sum(X.*Y) sum(X.*Y.^2) sum(X.^2.*Y) sum(X.^2.*Y.^2) sum(X.*Y.^3) sum(X.^3.*Y);
sum(Y.^2) sum(Y.^3) sum(X.*Y.^2) sum(X.*Y.^3) sum(Y.^4) sum(X.^2.*Y.^2);
sum(X.^2) sum(X.^2.*Y) sum(X.^3) sum(X.^3.*Y) sum(X.^2.*Y.^2) sum(X.^4)];
B=[sum(Z) sum(Z.*Y) sum(Z.*X) sum(Z
MATLAB曲面拟合
最新推荐文章于 2023-11-22 21:31:49 发布
本文详细探讨了如何使用MATLAB进行曲面拟合,包括数据预处理、选择合适的拟合函数以及评估拟合效果等关键步骤,旨在帮助读者掌握MATLAB在数值分析中的应用。
摘要由CSDN通过智能技术生成