自然对数是log()函数,自然对数的底数e,也就是自然指数函数exp(x),当x取1时候的值,所以用exp(1)可以获得。
一、MATLAB各种对数函数用法:
1、自然数对数 log(x)
在MATLAB主窗口中输入a1=log(27183),回车,我们可以看到a1近似为1,e约等于27183,
2、以2为底数的对数 log2(x)
在MATLAB主窗口中输入a2=log2(4) ,回车,可以看到结果a2=2
3、以10为底数的对数 log10(x)
在MATLAB主窗口中输入a3=log10(10) ,回车,可以看到结果a3=1
4、其他底数对数logM(N)
这种对数需要进行一个简单的中间变换,logM(N)=log(N)/log(M),这样写方便,用log10() 以及log2()都可以。我们在MATLAB主窗口中输入如下命令:
a4=log(64)/log(8) 回车
可以看到 ,以8为底64的对数为2。
二、Matlab中常见数学函数的表示方法有:
拟合问题和很多因素有关,包括拟合函数的形式、优化算法、初值等。
对于楼主给的数据而言,指数函数似乎并非一个好的选择。从下图可以看到,四次多项式拟合的效果要比指数拟合效果好很多。事实上,即使用二次多项式(抛物线)拟合,也比指数拟合的效果要好。所以,建议楼主重新考虑一下拟合函数的形式,如果允许,可尝试采用多项式拟合。
参考代码
x=[20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 ];
y=[57932E-9 122956E-9 349388E-9 1347271E-9 6411419E-9 39656E-6 312668E-6 1578480E-6 4123921E-6 7833082E-6 12699E-3 19087E-3 27278E-3 37540E-3 50654E-3 65450E-3 82685E-3 102270E-3 124299E-3 148553E-3 174864E-3 203293E-3 233594E-3 265548E-3 299253E-3 334524E-3 371170E-3 409220E-3 448524E-3 488980E-3 530623E-3];
f = @(c,x) c(1)(exp(c(2)x)-1);
x0 = [1 1];
c=lsqcurvefit(f,x0,x,y)
y1 = f(c,x);
p = polyfit(x,y,4);
y2 = polyval(p,x);
plot(x,y,'ro',x,y1,'-',x,y2,'-x')
r1 = norm(y-y1);
r2 = norm(y-y2);
legend('原始数据', ['指数拟合, 残差范数=' num2str(r1)],['4次多项式拟合,残差范数=' num2str(r2)],2)
没有现成的办法,请预处理数据后再拟合
比方说
y=aexp(bx)
那么预处理数据为
ln y =ln a +bx
这样就变成线性拟合问题了啊!
LZ 这个注意转化问题啊!
拟合函数表达式:y=aexp(b+cx)
式中a=006154920769,
b=-318125203,
c=7822374803
拟合度09725(相关系数)
用V=A(1)exp(A(2)I)+A(3)exp(A(4)I)模型比较好。
A = nlinfit(X,Y,myfun,[700 -001 -700 -1 ])
I=min(X):01:max(X);
V=A(1)exp(A(2)I)+A(3)exp(A(4)I);
plot(X,Y,'o',I,V)
结果:A =6689571 -00688 -6567991 -10321
意义
a>1时,Y随X增大而增大,先快后慢;0<a<1时,Y随X增大而减少,先快后慢。当以Y和lnX绘制的散点图呈直线趋势时,可考虑采用对数函数描述Y与X之间的非线性关系,式中的b和a分别为斜率和截距。
曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。
-曲线拟合
matlab中指数函数表示为:y=exp(x)→底数为e的指数函数,和y=a^x→底数为a的指数函数。
一般地,形如y=a^x(a>0且a≠1) (x∈R)的函数叫做指数函数(exponential function) 。也就是说以指数为自变量,底数为大于0且不等于1的常量的函数称为指数函数,它是初等函数中的一种。
k是用来指定颜色的,即黑色,还有一些你自己查plot的帮助吧!
'r'
红色
'm'
粉红
'g'
绿色
'c'
青色
'b'
兰色
'w'
白色
'y'
**
'k'
黑色
'-'
实线
'--'
虚线
':'
点线
'-'
点划线
''
用点号绘制各数据点
'^'
用上三角绘制各数据点
'+'
用'+'号绘制各数据点
'v'
用下三角绘制各数据点
''
用''号绘制各数据点
'>'
用右三角绘制各数据点
'
'
用''号绘制各数据点
'<'
用左三角绘制各数据点
's'或squar
用正方形绘制各数据点'p'
用五角星绘制各数据点
'd'或diamond用菱形绘制各数据点
'h'
用六角星绘制各数据点
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)