‘壹’ matlab指数函数y=a+b*exp(-x)拟合,求参数a,b,已知两组数据y,x
应该不可以,matlab拟合为多项式函数,此处是一个解线性方程问题,代码如下,只要填入四个已知数,运行即可
clear
all;
clc;
x1=;y1=;
x2=;y2=;
syms
a
b;
f1=a+b*exp(-x1)-y1;
f2=a+b*exp(-x2)-y2;
[a
b]=solve(f1,f2);
double(a)
double(b)
‘贰’ 指数函数的拟合
先把点的y坐标求一下log,变成一个线性函数的拟合问题,然后再用最小二乘法。
‘叁’ 怎样用matlab指数函数拟合
拟合函数表达式:y=a*exp(b+cx)
式中a=0.06154920769,
b=-3.18125203,
c=7.822374803
拟合度0.9725(相关系数)
用V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I)模型比较好。
A = nlinfit(X,Y,myfun,[700 -0.01 -700 -1 ])
I=min(X):0.1:max(X);
V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I);
plot(X,Y,'o',I,V)
结果:A =668.9571 -0.0688 -656.7991 -1.0321
意义
a>1时,Y随X增大而增大,先快后慢;0<a<1时,Y随X增大而减少,先快后慢。当以Y和lnX绘制的散点图呈直线趋势时,可考虑采用对数函数描述Y与X之间的非线性关系,式中的b和a分别为斜率和截距。
曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。
以上内容参考:网络-曲线拟合
‘肆’ matlab对指数函数的拟合
用V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I)模型比较好。
clear;
X=[0.490667 0.955333 1.544 1.940667 2.48 3.026667 3.966667 4.453333 5.073333 6.033333 7.04]
Y=[253.3333 381 450 503.6667 532 520 489 481.3333 459 438.3333 422]
myfun=inline('A(1)*exp(A(2)*x)+A(3)*exp(A(4)*x)','A','x')
A = nlinfit(X,Y,myfun,[700 -0.01 -700 -1 ])
I=min(X):0.1:max(X);
V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I);
plot(X,Y,'o',I,V)
结果:
A =
668.9571 -0.0688 -656.7991 -1.0321
‘伍’ 运用最小二乘法 分别进行 乘幂函数 y=a *x^b 指数函数y=b*exp(a*x) 曲线拟合 分别求出a,b,并作图
x=[0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43];
y=[0.211 0.313 0.466 0.692 1.03 1.532 2.190 3.250 4.823 7.158];
拟合第一个:
function f = first(c, x, y)
f = y - c(1) .* x .^ c(2);
保存为first.m文件。
命令行下运行:
c = lsqnonlin('first', [0 0], [], [], [], x, y);
a = c(1)
b = c(2)
拟合第二个:
function f = first2(c, x, y)
f = y - c(2) .* exp(c(1) .* x);
保存为first2.m文件。
命令行下运行:
c2 = lsqnonlin('first2', [0 0], [], [], [], x, y);
a2 = c2(1)
b2 = c2(2)
‘陆’ matlab指数函数拟合
%lny=lna+b*x^2,也就是两边取对数,化成线性形式,因变量是ln(y),自变量是x^2
x=[-2.8-2.6-2.4-2.2-2-1.8-1.6-1.4-1.2-1-0.8-0.6-0.4-0.200.20.40.60.811.21.41.61.822.22.42.62.8];
y=[];
y_ln=log(y)';
x2=(x.^2)';
linear_fun=fit(x2,y_ln,'poly1');
figure
plot(linear_fun,x2,y_ln);
b=exp(linear_fun.p1)
a=linear_fun.p2
ypre=a*exp(b*x.^2);
figure
plot(x,y,'*',x,y,'-o');
最后结果是
b=
0.7804
a=
5.0215
‘柒’ 指数函数模型y=ae^bx中的求a,b的公式是什么
解:先取对数的
lny=lna+bx
即是 y=a+bx
即是我们熟悉的最小二乘法的模型
利用公式可以求得
见参考资料
‘捌’ 求大神飘过,用matlab进行指数函数拟合
1、command window 里输入 cftool
2、点data,输入x和y的数据
3、点fitting,然后点Newfit,在Type of fit 里选择指数拟合
4、选好以后,点击apply即可
‘玖’ 怎么用matlab做指数函数曲线拟合并求参数,请求高人帮忙。
这个建议你使用cftool进行拟合
General model:
f(x) = a*exp(m*x)-a*exp(n*x)
Coefficients (with 95% confidence bounds):
a = 114.4 (105.1, 123.8)
m = -0.1855 (-0.2039, -0.1671)
n = -2.008 (-2.325, -1.691)