matlab二维函数z=f(x,y)拟合公式我现在有具体数据,如x=[,...]y=[,...]z=[,...]想拟合成z=k*(x^a)*(y^b)这样的已知形式函数,然后通过数据求出k a b的值,求大神给个程序如果是给定以下的确定数据,如
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 10:42:46
matlab二维函数z=f(x,y)拟合公式我现在有具体数据,如x=[,...]y=[,...]z=[,...]想拟合成z=k*(x^a)*(y^b)这样的已知形式函数,然后通过数据求出k a b的值,求大神给个程序如果是给定以下的确定数据,如
matlab二维函数z=f(x,y)拟合公式
我现在有具体数据,如x=[,...]
y=[,...]
z=[,...]
想拟合成z=k*(x^a)*(y^b)这样的已知形式函数,然后通过数据求出k a b的值,求大神给个程序
如果是给定以下的确定数据,如何拟合得出系数k a b呢
z=[10.37 11.31 9.83 15.11 7.07 9.39 8.33 8.92 7.00 8.44 9.76 9.03];
x=[5.95 9.50 5.05 13.02 9.70 10.34 11.26 16.96 7.51 9.75 10.25 9.46];
y=[25.50 21.50 17.17 21.83 94.50 87.50 85.00 80.00 170.00 172.00 148 127.5];
matlab二维函数z=f(x,y)拟合公式我现在有具体数据,如x=[,...]y=[,...]z=[,...]想拟合成z=k*(x^a)*(y^b)这样的已知形式函数,然后通过数据求出k a b的值,求大神给个程序如果是给定以下的确定数据,如
参考代码:
% 生成测试数据
X = rand(100,1);
Y = rand(100,1);
k = 2;
a = 1.5;
b = 2.5;
Z = k*(X.^a).*(Y.^b);
% 数据加入噪声
Z = Z + randn(size(Z))*0.1;
% 数据拟合
f=inline('c(1)*x(:,1).^c(2).*x(:,2).^c(3)','c','x');
c=lsqcurvefit(f,[1 1 1],[X Y],Z)
% 绘图
[x,y] = meshgrid(linspace(min(X),max(X),20),linspace(min(Y),max(Y),20));
z = reshape(f(c,[x(:),y(:)]),size(x));
clf
a = 0.5;
mesh(x,y,z,'FaceAlpha',a,'EdgeAlpha',a);
hold on
plot3(X,Y,Z,'r.')
view(15,5)
xlabel('x'); ylabel('y'); zlabel('z');
拟合结果:
c =
1.9917 1.3921 2.4509
与真实模型的参数[2 1.5 2.5]吻合.