matlab 散点拟合三维曲面写出曲面表达式

给出一堆三维散点,然后拟合出三维曲面,并用一个多项式函数表达来拟合这个曲面,关键是写出这个函数。
用什么命令拟合这个函数呢?

我现在也是这个情况啊!正是相当纠结呢!在网上看到了这个···

因为这个函数的形式比较特殊,对其两边取对数后得到
log(y)=log(a)+b*log(x1)+c*log(x2)
于是立即就转换为了线性拟合
[1 log(x1) log(x2)]*[log(a) b c]'=log(y)
于是[log(a) b c]'=[1 log(x1) log(x2)]\log(y)
这样就可以得到a,b,c了。不需要进行非线性拟合。

下面是程序:(对于x1、x2、y的赋值部分这里就不写了,你自己在前面加上即可)

p=[ones(length(y),1) log([x1 x2])]\log(y);%就这一句话就搞定了

a=exp(p(1)),b=p(2),c=p(3)%这就是拟合后的参数值
y%这是采样点y的值
a*x1.^b.*x2.^c%这是拟合后在采样点得到的值,可以和y比较一下,很接近
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-06-03
为了直观表达我们所求的结果,我们喜欢用图像来表达。对于图像来说分类很多,如散点图,连续图,等高图等等。往往我们习惯把理论图像和模拟图像画在同一个图像,用来区分理论和模拟的吻合程度。

开启分步阅读模式
工具材料:
matlab

操作方法
01
scatter(X,Y,S,C),这是matlab画散点图的命令;这里X,Y是画散点图的数据。 其中S为大小,系统默认大小为50,C表示所画图的颜色。

02
x=1:0.05:10;
.
scatter(x,sin(x),100,'r')
.
.
.
这里通过散点画的是一个sinx 的图像,这里100表示所画图像点的大小,r代表标记散点的颜色。

03
scatter(X,Y)这个是默认画散点图的方法,一切设置按系统默认!X,Y表示散点图的X,Y坐标。下图的命令。
x=1:0.05:10;
scatter(x,cos(x))

04
scatter(X,Y,S) 这里所画的散点图,可以调节对应的大小。也就是说可以通过S这个参数调节标记点的大小。下图是我们将S=1000设置为1000的图像。scatter(...,M)更改标记的图形,默认是圆圈标记。如果需要用其他符号标记可以在这里修改。
scatter(...,'s') ;通过方形标记。
注意别忘了添加单引号。

02
scatter(...,'filled') 通过实心图像来标记。 前面的介绍中,一直是空心符号标记的。

03
scatter3: 立体散点图的画法,具体命令如下。
[x,y,z] = sphere(16);
X = [x(:)*.5 x(:)*.75 x(:)];
Y = [y(:)*.5 y(:)*.75 y(:)];
Z = [z(:)*.5 z(:)*.75 z(:)];
S = repmat([1 .75 .5]*10,numel(x),1);
C = repmat([1 2 3],numel(x),1);
scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled'), view(-60,60)
第2个回答  2021-06-07
close all; clc
data = load(‘C:\Users\temp\Downloads\APA数据处理\APA检车位数据垂直.txt’);
speed = data(:,4);
distanceY = data(:,6);
Dvalue = data(:,8);
% 绘制散点图
figure(1),plot3(speed,distanceY,Dvalue,’*’);
xlabel(‘CARSpeed’);
ylabel(‘distanceY’);
zlabel(‘Dvalue’);
title(‘平行库位长度误差与速度及侧向距离相关图’)
hold on
% 对散点图进行曲面拟合寻找规律
[X,Y,Z]=griddata(speed,distanceY,Dvalue,linspace(min(speed),max(speed))’,linspace(min(distanceY),max(distanceY)),‘v4’);
figure(2),surf(X,Y,Z);
xlabel(‘CARSpeed’);
ylabel(‘distanceY’);
zlabel(‘Dvalue’);
title(‘平行库位长度误差与速度及侧向距离关系曲面拟合’)
第3个回答  2011-09-12
A=[w];%x,y,z轴坐标
x=A(:,1);y=A(:,2);z=A(:,3);
scatter3(x,y,z)%散点图
figure
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值
pcolor(X,Y,Z);shading interp%伪彩色图
figure,contourf(X,Y,Z) %等高线图
figure,surf(X,Y,Z);%三维曲面
第4个回答  2011-09-18
matlab里面regress可以实现这个命令。或者你可以采用polynomial

matlab 散点拟合三维曲面写出曲面表达式
下面是程序:(对于x1、x2、y的赋值部分这里就不写了,你自己在前面加上即可)p=[ones(length(y),1) log([x1 x2])]\\log(y);%就这一句话就搞定了 a=exp(p(1)),b=p(2),c=p(3)%这就是拟合后的参数值 y%这是采样点y的值 a*x1.^b.*x2.^c%这是拟合后在采样点得到的值,...

matlab如何将离散点拟合成曲面
mesh(X,Y,Z)2、待拟合的曲面形状为,3、首先,在APP选项框中打开Curve fitting工具。工具位置如图所示。4、单击curve fitting之后,打开页面结果如下。5、单击X data选框,选择待拟合的数据X。6、单击Y data选框,选择待拟合的数据Y。7、单击Z data选框,选择待拟合的数据Z。8、完成效果图。

如何用MATLAB求一些三维的三点拟合出来的函数?
采用插值法 参考 知道了一些点(x,y,z)坐标,怎样用MATLAB绘制出三维曲面?至于做出拟合函数z=f(x,y)可以输入sftool启动曲面拟合工具箱,输入xyz数据 选用合适的函数拟合 9月

用MATLAB只知道一些(x,y,z)坐标,怎样绘制出三维曲面图?
1、根据一组x、y、z的数值,拟合出z=f(x,y)函数关系;2、对x、y在某区间内划分n等分,如x=linspace(0,100,50),y=linspace(-20,20,50),这里n等分为51;3、用[X,Y] = meshgrid(x,y)命令,建立X—Y平面上的网格数据 4、根据z=f(x,y)函数表达式,求出Z值,如Z=X.^2+Y....

三维曲面拟合的经验函数
如果你有了x、y、z的数值(15组以上),可以考虑用matlab的最小二乘函数 nlinfit()来拟合三维曲面的经验函数。拟合方法:x=[。。。]';y=[。。。]';z=[。。。]'; %数据 x=[x y];y=z;func=@(a,x) 三维曲面的拟合函数表达式 x0=[0,0] %初始值 a = nlinfit(X,y,func,x0...

matlab中,怎么根据一系列三维离散的点拟合出一个球面啊,并在球面上显示...
我把球面拟合出来了,也画出来了,但不知道什么是球度误差,你可以用数据和拟合出的球面方程自己算。clear;clc;[x,y,z]=sphere(5);data=10*unique([x(:)-0.1,y(:)+0.2,z(:)],'rows');data=data+rand(size(data,1),size(data,2))%我随便生成的,你用你的数据替代 f=@(p,data...

matlAB 三维离散数据的曲面拟合和具体方程怎么弄?
matlab中的Curve Fitting Tool工具箱可以根据你输入函数表达式拟合二维或三维离散数据!

matlab三维曲面拟合
只有5个点似乎少了点。。你要拟合个什么曲面?线性的好说,但是非线性的函数太多了,必须先给一个大致形式然后可以去求参数。而且,你上面的程序不是拟合,是插值。你可以试试'v4'以外的几种插值方法。

MATLAB构建公式,标定参数是什么?
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理...

y=ax1+bx2+cx3能用matlab画出来么?怎么画
a,b,c我随便取了值。x1=-5:0.5:5;x2=x;x3=x;[X1,X2,X3]=meshgrid(x1,x2,x3);V=3*X1-5*X2+2*X3;figure;gcf;scatter3(X1(:),X2(:),X3(:),5,V(:),'filled');===另外你给出一个线性表达式,问如何“拟合成曲线”。。。不知所谓阿。如果你是想用这个线性式产生一批数据...

相似回答