使用matlab 如何拟合拟合 z=ax^2+bx+cy,求a、b、c?求大神解答,高悬赏! 已知一组数据Xn,Yn,Zn 如何在MATLAB中用最小二乘...

matlab \u600e\u4e48\u62df\u5408 Z=A+BX+CY\u4e8c\u5143\u51fd\u6570\u6c42\u89e3\u7cfb\u6570A,B,C

Z=[0.5 0.4 0.3 0.25 0.2 0.15 0.1];
X=[6303 4921 3544 2880 2248 1433 964];
Y=[980 738 574 500 365 267 150];
M=[X;Y]';
z=Z';
b=regress(z,[ones(length(X),1) M]);
A=b(1);
B=b(2);
C=b(3);
A
B
C

clear;clc
x=rand(1,5)%\u81ea\u5df1\u6539
y=rand(1,5)%\u81ea\u5df1\u6539
z=3*x+7*y+rand(1,5)%\u81ea\u5df1\u6539
P=z/[x;y];%\u6700\u5c0f\u4e8c\u4e58\u6cd5
fprintf(1,'a=%f\nb=%f\n',P)
%\u56fe\u50cf\u68c0\u9a8c
[X,Y]=meshgrid(linspace(0,1));
surf(X,Y,P(1)*X+P(2)*Y);
shading interp;
alpha .5
title(sprintf('%fX%+fY=Z',P))
hold on
plot3(x,y,z,'o')

参考代码:

x= [141.836
    147.114
    142.212
    142.387
    146.073
    144.597
    139.105
    146.495
    142.814
    142.764];
y= [41.962
    40.629
    44.677
    41.914
    42.844
    44.429
    44.717
    42.487
    40.342
    41.701];
z= [585
    630
    576.66
    580.2
    621.3
    621.67
    568.3
    623.3
    565.3
    579.6];

% 拟合
f = @(C,X) C(1)*X(:,1).^2+C(2)*X(:,1)+C(3)*X(:,2);
C0 = rand(1,3);
C = lsqcurvefit(f,C0,[x y],z)

% 计算拟合误差
norm(z-f(C,[x y]))

% 绘图
[X,Y] = meshgrid(138:.5:148, 40:.2:46);
Z = X;
Z(:) = f(C,[X(:) Y(:)]);
clf
scatter3(x,y,z,'filled')
hold on
mesh(X,Y,Z,'EdgeA',0.3,'FaceA',0.3)
view(-10,5)

拟合得到的系数为(依次为a、b、c)

C =
    0.0544   -5.1871    5.1578



请给出具体数值,方便讲解。

扩展阅读:matlab如何对圆形拟合 ... matlab如何输出拟合优度 ... matlab拟合工具箱的使用 ... matlab如何使图像变亮 ... matlab 过点 拟合 ... matlab怎么用来拟合 ... matlab怎么使用 ... matlab拟合曲线并得到方程 ... matlab分布拟合工具箱 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网