如何用MATLAB将一组散点数据拟合成一个对数函数

作者&投稿:魏烟 (若有异议请与网页底部的电邮联系)
用matlab拟合一组数据,要求得出函数表达式~

根据给定的数据,我们可以假定函数表达式为
y=b1+b2*x+b3*x^2+b4*x^3+b5*x^4;
所以上述函数可以用matlab的regress()多元线性回归分析函数来拟合。实现过程如下:
A=[1.75,0.26;2.25,0.32;2.5,0.44;2.875,0.57;2.686,0.50;2.563,0.46];
x=A(:,1),y=A(:,2)
X=[ones(length(y),1),x,x.^2,x.^3,x.^4];
b=regress(y,X)
x1=linspace(1.5,3,50);
y1=b(1)+b(2)*x1+b(3)*x1.^2+b(4)*x1.^3+b(5)*x1.^4;
plot(x,y,'k*',x1,y1,'r-')
grid on
xlabel('x'),ylabel('y')
运行结果

我利用的是Matlab中的应用程序,Curve fitting,首先将数据导入到工作区中,接下来在菜单栏中的应用程序中找到Curve fitting,点击进去,会弹出一个Curve fitting Tool的页面,在页面的左上方会有选择,x/y/z等数据,选择好数据之后,接下来要右边会选择拟合的数学模型,选好之后,正下方会有散点图和拟合曲线,在图的左边会有相应的系数以及拟合相关系数等参数,如果您想将拟合图导出来,继续在Curve fitting Tool页面的最左上方的文件栏点击Print to figure,这时候就出图了,不知是否是您想要的答案,祝学习进步!

xdata=[0.06 0.15 0.24 0.32 0.45 0.55 0.67 0.76 0.85 0.95 1];
ydata=[0.625 0.455 0.41 0.39 0.26 0.15 0.03 0.01 -0.01 -0.05 -0.06];
x0=[1;1];
fun=@(x,xdata) x(1)+x(2)*log(xdata);
x=lsqcurvefit(fun,x0,xdata,ydata);
xn=0:0.01:1;
scatter(xdata,ydata,'X');
hold on
plot(xn,x(1)+x(2)*log(xn),'g');

x=[0.06 0.15 0.24 0.32 0.45 0.55 0.67 0.76 0.85 0.95 1];
y=[0.625 0.455 0.41 0.39 0.26 0.15 0.03 0.01 -0.01 -0.05 -0.06];
x=x';y=y';
st_ = [0.1 0.7];
ft_ = fittype('a+b*log(x)' ,...
'dependent',{'y'},'independent',{'x'},...
'coefficients',{'a', 'b'});
cf_ = fit(x,y,ft_ ,'Startpoint',st_)
plot(x,y,'o')
hold on,
plot(cf_,'fit',0.95)

x=[0.06 0.15 0.24 0.32 0.45 0.55 0.67 0.76 0.85 0.95 1];
y=[0.625 0.455 0.41 0.39 0.26 0.15 0.03 0.01 -0.01 -0.05 -0.06];
ba=[log10(x(:)),ones(size(x(:)))]\y(:); %如果你的lgS是以自然对数为底的话,请用log函数代替log10,下面作图也是一样的.
a=ba(2)
b=ba(1)

plot(x,y,'*',x,a+b*log10(x),'r-')
legend('原始数据','拟合值')


如何用matlab 将矩阵化为海森伯格型
请参考如下文档,hess函数 https:\/\/cn.mathworks.com\/help\/matlab\/ref\/hess.html 另一方面,若有不知道的函数,在mathwork上面用英文搜,一般都能搜到,有些不会编的程序,说不定那个论坛上就有人编写分享了

怎么用MATLAB做矩阵运算
5. 弹出“导入”窗口,在窗口左侧的导入选项中选择“矩阵”,然后点击工具栏右侧的“勾选”按钮导入数据。6. 关闭“导入”窗口,返回MATLAB主程序。在WorkSpace (WorkSpace)中,可以看到刚刚导入的矩阵变量,然后可以计算矩阵。7.每次关闭MATLAB程序都会将工作空间中的变量清空,所以如果经常用到该变量,不妨...

如何将matlab中多幅图合成为一幅图
x3=38+20*rand(500,1);2、下面,我们要分别画出x1,x2,x3对应的曲线,用MATLAB的内置函数plot进行操作,分别用三个plot进行绘图,结果如下:plot(x1,'r');plot(x2,'b');plot(x3,'g');3、可以看到,图中只有一条曲线,并没有其他两条曲线。这是因为后面plot的语句画的图会将前面plot画...

MATLAB将散点图和拟合曲线在用一个三维图中
如何用MATLAB将散点图和拟合曲线在用一个三维图中画出来?可以这样处理:1、根据已知4组x、y、z的数据,按z=a1+a2*x+a3*y方程拟合其系数,2、将x和y的最小值和最大值之间细分,求出z值。3、根据这若干个数据点用plot3(x,y,z,'o')绘出散点图,plot3(x1,y1,z1,'r-')绘出连续的...

用matlab如何将左矩阵化成右矩阵
设A是左边矩阵,B是右边矩阵 B=ones(size(A));%初始化单位阵 Q=A(2:4,2:4);%提取关键阵 B(3:5,3:5)=Q;%Q斜向下移动一位 B(3:5,1)=A(2:4,1);%下移一行 B(5,2)=A(4,5);%换位后下移一行 红色框里的是Q,要变成左边其实要把Q斜向下移动一位,这样就需要在中间插入一...

如何用MATLAB程序将筛选一组矩阵中合适的矩阵
b=a(2:3,:)即取a 的2-3行,所有列。

怎么用matlab仿真啊?
1、首先打开matlab软件,点击Simulink按钮打开Simulink仿真环境(需要一点时间),2、打开Simulink后,进入主界面,3、点击Simulink界面中的File\/New\/Model,建立并保存模型文件,4、在Simulink的左侧资源栏拖拽控件到model文件内并设置连线,5、检查系统框图无误后点击运行按钮(如下图箭头所指),大概几秒后...

怎么用matlab计算一组数据x的均值
disp(mean_x); % 显示结果 在这个例子中,mean()函数将计算数组x的所有元素的平均值,并将结果存储在mean_x变量中。然后,我们使用disp()函数来显示这个结果。注意:MATLAB是区分大小写的,所以当您输入mean时,需要确保它是小写。如果您输入的是Mean或MEAN,MATLAB将无法找到该函数,从而导致错误。

关于matlab的应用
坐标轴对象时 MATLAB 图形中常用的对象,坐标轴对象可以用 MATLAB 5.3 上的菜单项添加。添加之后,可以用鼠标改变其大小和形状,其他一些属性说明如下:Box 属性: 表示是否需要坐标轴上的方框,选项可以为 'on' 和 'off', 默认的值为 'on'。本书中在后面介绍属性值时,将把默认的属性值列在前面。 ColorOrder 属性...

我想用matlab来实现将一个图像分成两半,一半位置不动,将另一半放到不动...
C=imread('图片名');%读图入矩阵 [a,b]=size(C);T=round(a\/2);%求出矩阵长的一半 C1=C(:,1:T);C2=C(:,T+1:end);%分别保留左右两半 D=[C1;C2];%移动 imshow(D);%显示矩阵的图

潞城市15383257743: 怎么用MATLAB对一组离散的数据进行拟合啊,拟合成指数函数,求大神给出程序,拟合出结果,就是用图 -
天浩喜普: (1) help fitted function (2) 出现一堆英文 (3) 忽略英文,直接看示意图和表达式,找出含有指数的那个 (4) OK.按照上面的例子重复一遍就KO了. PS: MATLAB的本意就是希望你按照上述步骤来操作

潞城市15383257743: matlab中怎么把离散的点拟合 -
天浩喜普: 先把数据画出图形,观察有无规律,用拟合工具进行曲线、曲面拟合.你有数据吗?我可以写程序.

潞城市15383257743: matlab如何将离散点拟合成曲面 -
天浩喜普: % 方法1 T = [1:100];D = [1:100]; K = rand(1,100);% 插值 [X,Y,Z]=griddata(T,D,K,linspace(min(T),max(T))',linspace(min(D),max(D)),'v4'); figure,surf(X,Y,Z);%方法2 x = [1:100];y = [1:100]; z = rand(1,100); xlin = linspace(min(x),max(x),33); ylin = ...

潞城市15383257743: 如何用MATLAB将一组散点数据拟合成一个对数函数 -
天浩喜普: x=[0.06 0.15 0.24 0.32 0.45 0.55 0.67 0.76 0.85 0.95 1]; y=[0.625 0.455 0.41 0.39 0.26 0.15 0.03 0.01 -0.01 -0.05 -0.06]; ba=[log10(x(:)),ones(size(x(:)))]\y(:); %如果你的lgS是以自然对数为底的话,请用log函数代替log10,下面作图也是一样的. a=ba(2) b=ba(1)plot(x,y,'*',x,a+b*log10(x),'r-') legend('原始数据','拟合值')

潞城市15383257743: matlab离散点拟合 -
天浩喜普: 拟合函数:y=8.18195488721805x+ 20.1894736842105 代码:图形:

潞城市15383257743: 你好,可以告诉我用MATLAB怎样对散点进行拟合吗?就是在做栅格化的逆过程中遇到的.谢谢 -
天浩喜普: 先用plot(x,y)画出图形,然后确定拟合函数的表达式,再用拟合函数拟合出其拟合系数.

潞城市15383257743: 已知一组三维散乱点,怎么用matlab拟合出曲面,并得到每个点的法线 -
天浩喜普: 嘿嘿,这是个数学问题,每点的法线的求取没那么麻烦,不求切平面,使用surfnorm可求取每一点法向在三维空间xyz三方向的分量,用这三个分量可以使用quiver3成图,也可直接使用surfnorm成图.在matlab的帮助文档中有很详细的例程,你查查吧.

潞城市15383257743: MATLAB中关于将散点拟合成曲线的一个问题,急用!!!!!!!!!!哪位大侠快速来指点一下啊,谢谢! -
天浩喜普: 1.6 0.30,11:1,9.8 0.33 7.65 9.1 0.2 0,6,a3) 在matlab中输入以下命令即可;) 结果.9 1 yi -0.446 1.977 3.27 6.55 9.47 9.3 0,得到最适合解.x=0;y=[-0.446,1.977,3.27,y.4 0;g',7.3 11.2 根据以上数据拟和二次多项式f(x)=a1*x^2+a2*x+a3.A=(a1,a2....

潞城市15383257743: matlab如何用散点做正态拟合? -
天浩喜普: 用normplot()函数,就行了;图形近似直线就行了~~~~~~~~~~

潞城市15383257743: 一组散点值,怎样用MATLAB得出渐近线 -
天浩喜普: 第1步,在matlab命令窗中输入一组散点值.如图

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网