怎样使用Matlab拟合y=a*exp(bx)+c*exp(dx)曲线?用什么代码?

这个是要用最小二乘拟合么?
现在知道一个向量x和向量y(当然y是恒正的),怎么用Matlab确定参数a,b,c,d啊?
求教~代码也可以
据说用什么cftools..不懂啊……

第1个回答  2013-10-23
p0=[1 1 1 1];
f=@(x,a,b,c,d)a*exp(b*x)+c*exp(d*x);
p=fminsearch(sum((@(p)f(xdata,p(1),p(2),p(3),p(4))-ydata).^2),p0,A,b)追问

求解释一下,p0,A,b这些是什么意思

追答

p0=[1 1 1 1];% a,b,c,d的初值
f=@(x,a,b,c,d)a*exp(b*x)+c*exp(d*x);%公式
p=fminsearch(sum((@(p)f(xdata,p(1),p(2),p(3),p(4))-ydata).^2),p0)%之前写错了,没有A,b;p为拟合后的a,b,c,d的值

第2个回答  2013-10-23
请先运行cftool命令,然后就懂了。本回答被提问者采纳

怎样使用Matlab拟合y=a*exp(bx)+c*exp(dx)曲线?用什么代码?
f=@(x,a,b,c,d)a*exp(b*x)+c*exp(d*x);p=fminsearch(sum((@(p)f(xdata,p(1),p(2),p(3),p(4))-ydata).^2),p0,A,b)

怎样使用Matlab拟合y=a*exp(bx)+c*exp(dx)曲线?用什么代码?
请先运行cftool命令,然后就懂了。

matlab中用nlinfit拟合指数函数f=a*exp(b*x)+c*exp(d*x)
fun=@(a,x)[a(1).*exp(a(2)*x)+a(3).*exp(a(4)*x)];a=a(1),b=a(2),c=a(3),d=a(4)x0=[1 0.3 0.5 0.2]a= nlinfit(x,y,fun,x0 d=a(4),c=a(3),b=a(2),a=a(1)运行结果 d = 0.116774298952341 c = 66.7544631579477 b = 1.2220839296099 ...

请问有人能给一个matlab的拟合形如y=a+b*exp(c*x)+d*exp(e*x)的函数...
可以通过下列代码来实现:x=[。。。];y=[。。。];fun=@(a,x)[a(1)+a(2).*exp(a(3).*x)+a(4).*exp(a(5).*x)];x0=rand(1,5);[a,resnorm,residual,exitflag]=lsqcurvefit(fun,x0,x,y)e=a(5),d=a(4),c=a(3),b=a(2),a=a(1)

MATLAB曲线拟合
根据散点图的趋势,数据基本符合双重指数函数,即f(x) = a*exp(b*x) + c*exp(d*x)。该函数求解过程如下:x=[100;1000;5000;10000;30000;60000;10000;170000];y=[6.00;5.92;4.60;3.02;0.963;0.343;0.139;0.051];func =@(a,x) a(1)*exp(a(2)*x) + a(3)*exp(a(4...

如何用matlab数据拟合函数
1、首先启动matlab,选择编辑器,再新建一个命令文件。2、然后在编辑器窗口中输入图示的代码。3、然后我们点击界面上方菜单栏里的保存图标进行保存。4、需要注意的是,保存文件的位置要与当前搜索路径的位置保持一致。这可以通过右键编辑窗口的文件,在弹出的下拉框中选择。5、最后再命令行窗口处输入dxsnh...

求助matlab高手
方法一:直接用cftool拟合(在command窗口直接打cftool,或者从左下角start里面找到curve fitting),导入数据,采用其中的exp(自然指数)进行拟合,可以得到 f(x) = a*exp(b*x) + c*exp(d*x)a = 8.209 b = 0.0002334 c = -7.955 d = -0.008102 Matlab给出了各个系数的拟合...

matlab拟合问题 y=a*exp(b*x) + c*exp(d*x) 知道x y的值 怎么得到参数...
a= 0.0208 b= 0.9515 c= 1.0649 d= -2.1877 当x=1.64时,y=0.1287

如何利用MATLAB对数据进行曲线拟合
您好,这样的:一、 单一变量的曲线逼近 Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线 性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。1、在命令行输入数据:...

怎么用matlab进行非线性的多元函数拟合?
方法一:1、最常用的是多项式拟合,采用polyfit函数,在命令窗口输入自变量x和因变量y。2、以二次多项式拟合为例,输入p=polyfit(x,y,2),如果想拟合更高次的多项式,更换括号内数字即可。通过计算获得的p,是一个数组,对应了多项式的各项系数,以图中为例,拟合出的多项式为:y=0.9962x2+0.0053...

相似回答