作业帮 > 综合 > 作业

已知四点坐标求最小二乘平面的程序!c或matlab都可~

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/03/29 10:04:55
已知四点坐标求最小二乘平面的程序!c或matlab都可~
已知空间中四点坐标,求最小二乘平面~c或matlab都可~
P= [1,2,3; 3,2,1; 4,5,7; 5,6,3]; % 定义空间四点,每行一个点
A = [P(:,1:2),ones(4,1)]; % 定义基函数,z的系数定义为1
b = -P(:,3); % 等式右边
para = b\A; % 最小二乘逆
res = zeros(4,1);
for ii = 1:4
res(ii) = para(1)*P(ii,1) + para(2)*P(ii,2) +P(ii,3) + para(3); % 各点残差
end
% para(1)*x + para(2)*y + z + para(3) = 0
xm = [min(P(:,1))-1,max(P(:,1))+1];
ym = [min(P(:,2))-1,max(P(:,2))+1];
[X,Y] = meshgrid(xm(1):1:xm(2),ym(1):1:ym(2));
Z = -(para(1)*X + para(2)*Y + para(3));
surf(X,Y,Z); % 绘出平面
hold on;
plot3(P(:,1),P(:,2),P(:,3),'d','MarkerSize',5,'MarkerFaceColor','k'); % 绘出给定四点
hold off;
axis equal;