matlab二维函数z=f(x,y)拟合公式我现在有大量具体数据,如x=[,...]y=[,...]z=[,...]想拟合成z=1+a1x+a2x^2+a3xy+a4x^2y+a5xy^2+a6x^2y^2这样的已知形式函数,即通过数据求出a1,a2,a3,a6的值,最后再绘制成三维视图
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/07 18:16:24
![matlab二维函数z=f(x,y)拟合公式我现在有大量具体数据,如x=[,...]y=[,...]z=[,...]想拟合成z=1+a1x+a2x^2+a3xy+a4x^2y+a5xy^2+a6x^2y^2这样的已知形式函数,即通过数据求出a1,a2,a3,a6的值,最后再绘制成三维视图](/uploads/image/z/3766512-48-2.jpg?t=matlab%E4%BA%8C%E7%BB%B4%E5%87%BD%E6%95%B0z%3Df%EF%BC%88x%2Cy%EF%BC%89%E6%8B%9F%E5%90%88%E5%85%AC%E5%BC%8F%E6%88%91%E7%8E%B0%E5%9C%A8%E6%9C%89%E5%A4%A7%E9%87%8F%E5%85%B7%E4%BD%93%E6%95%B0%E6%8D%AE%2C%E5%A6%82x%3D%5B%2C...%5Dy%3D%5B%2C...%5Dz%3D%5B%2C...%5D%E6%83%B3%E6%8B%9F%E5%90%88%E6%88%90z%3D1%2Ba1x%2Ba2x%5E2%2Ba3xy%2Ba4x%5E2y%2Ba5xy%5E2%2Ba6x%5E2y%5E2%E8%BF%99%E6%A0%B7%E7%9A%84%E5%B7%B2%E7%9F%A5%E5%BD%A2%E5%BC%8F%E5%87%BD%E6%95%B0%2C%E5%8D%B3%E9%80%9A%E8%BF%87%E6%95%B0%E6%8D%AE%E6%B1%82%E5%87%BAa1%2Ca2%2Ca3%2Ca6%E7%9A%84%E5%80%BC%2C%E6%9C%80%E5%90%8E%E5%86%8D%E7%BB%98%E5%88%B6%E6%88%90%E4%B8%89%E7%BB%B4%E8%A7%86%E5%9B%BE)
matlab二维函数z=f(x,y)拟合公式我现在有大量具体数据,如x=[,...]y=[,...]z=[,...]想拟合成z=1+a1x+a2x^2+a3xy+a4x^2y+a5xy^2+a6x^2y^2这样的已知形式函数,即通过数据求出a1,a2,a3,a6的值,最后再绘制成三维视图
matlab二维函数z=f(x,y)拟合公式
我现在有大量具体数据,如x=[,...]
y=[,...]
z=[,...]
想拟合成z=1+a1x+a2x^2+a3xy+a4x^2y+a5xy^2+a6x^2y^2这样的已知形式函数,即通过数据求出a1,a2,a3,a6的值,最后再绘制成三维视图.我打算使用lsqcurvefit命令,但由于只是从书上看了一个例子并不太清楚其具体用法,导致程序运行总是显示Maximum number of function evaluations exceeded;increase options.MaxFunEvals,结果差的离谱.我想请知道的告诉我下完整的程序,不用lsqcurvefit也行,总之希望误差越小越好!
matlab二维函数z=f(x,y)拟合公式我现在有大量具体数据,如x=[,...]y=[,...]z=[,...]想拟合成z=1+a1x+a2x^2+a3xy+a4x^2y+a5xy^2+a6x^2y^2这样的已知形式函数,即通过数据求出a1,a2,a3,a6的值,最后再绘制成三维视图
x=[0,2,3,4.5,5,6.5,8,10,12.5,15,18.5,20,22,23.5]';
y=[0,10,15,20,25,30,35,40,45,50,55,57.5,60,62]';
z=10*rand*[0,10,15,20,25,30,35,40,45,50,55,57.5,60,62]';
X=[x.^2.*y.^2,x.*y.^2,x.^2.*y,x.*y,x.^2,x,ones(length(y),1)];
Z=z;
[b,bint,r,rint,stats] = regress(Z,X);
xt=linspace(1,25,50);yt=linspace(1,65,50);
zt=[];
for i=1:length(xt)
for j=1:length(yt)
zt(i,j)=b(1)*(xt(i).^2).*(yt(j).^2)+b(2)*xt(i).*yt(j).^2+b(3)*xt(i).^2.*yt(j)+b(4)*xt(i).*yt(j)+b(5)*xt(i).^2+b(6)*xt(i)+b(7);
end
end
[XX,YY]=meshgrid(xt,yt);
ZZ=zt;
mesh(XX,YY,ZZ)
hold on
plot3(x',y',z','*') 数据乱弄的,拟合出来不太像哈,你只要把相关的数变了就行.