用户登录
用户注册

分享至

通过matlab软件操作对函数性质有进一 MATLAB中如何输入对数函数

  • 作者: 嗫?暁雲?
  • 来源: 51数据库
  • 2020-04-21

在MATLAB中输入对数函数主要分为以下两种类型:

一、直接型

以e、2或者是10为底的对数的话,直接输入:y=log(x),y=log2(x),y=log10(x)。例如,a1=log(2.7183);a2=log2(2);a3=log10(10),其结果如下图:

二、转换性

如果需要求的对数函数是 y=log5(25)这种不以e、2、10为底的对数,首先需要根据对数换底公式转换成y=log25/log5来求解。例如,要求解log5(25)、log3(9)、log2(4)这三个对数函数的值,需要写为:a1=log(25)/log(5);a2=log(4)/log(2);a3=log(9)/log(3)。

如何在matlab中用对数函数拟合一组数据?

你可以先用z=log(y)转换一下

matlab 中的对数函数

因为你的矩阵里存在负数

负数的对数(log)会产生复数形式

你可以用sum(A<0)检查一下

如何咋matlab中使用lookfor 命令寻找一个数以十为底的对数函数

lookfor logarithm

紧急,在线等。matlab上的对数函数数据拟合。y=algx+b

x=[500 550 600 650 700 750 800 850 900 950 1000];

y=[62.4 69.2 75.4 82.2 70.4 68.4 75.2 77.8 71.6 75.6 72.2];

f = fittype('a*log10(x)+b'); % 拟合函数的形式

fit1 = fit(x',y',f,'StartPoint',[x(1) y(1)]);

a = fit1.a; % a的值

b = fit1.b; % b的值

fdata = feval(fit1,x'); % 用拟合函数来计算y

figure

plot(x,y); hold on

plot(x,fdata','r'); hold off

legend('Ori data',' Fitting data');更多

能求出a,b值吗?

老大,里面不是有a, b值么,我还做了注释!

哦,知道了。你能尽量多加点注释吗,我是matlab菜鸟。

哦,知道了,你还需要加什么注释么?

以下两句没有注释,看不懂。

fit1 = fit(x',y',f,'StartPoint',[x(1) y(1)]);

legend('Ori data',' Fitting data');

再提问就得扣分了。。。

下面的程序跟你的出图一样,但好像简单些

clc;clear;

x=[500 550 600 650 700 750 800 850 900 950 1000];

y=[62.4 69.2 75.4 82.2 70.4 68.4 75.2 77.8 71.6 75.6 72.2];

plot(x,y);

x_log=log10(x);

A=polyfit(x_log,y,1)

hold on;

plot(x,A(1).*log10(x)+A(2),'r');

fit(x',y',f,'StartPoint',[x(1) y(1)]) 的意思, 是生成一个拟合函数,用的数据是x, y, 注意x'是要将x写成一个n-by-1的向量,y也如此。所以里面是fit(x',y',...). f 是上面定义的拟合函数的形式。'StartPoint'是起始点,定义的起始点x(1),y(1).

legend('Ori data',' Fitting data'); 就是标注两条曲线,第一个是原始曲线,第二个是拟合后的曲线

另一个人用polyfit,这个只能用于多项式拟合。其余的都不行了,我的这个,什么形式的都可以

最后一个问题,为什么要x,y都要转置成列向量?

恩,这个是matlab 自带函数fit所要求的。 fit(x,y,f...)中的x, y必须是要列向量,否则会报错。

如何用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('原始数据','拟合值')

转载请注明出处51数据库 » 通过matlab软件操作对函数性质有进一 MATLAB中如何输入对数函数

软件
前端设计
程序设计
Java相关