如何用matlab进行二次指数拟合?拟合模型为y=exp(a(1)*x^2+a(2)*x+a(3))+a(4) 数据如下:

x=1:1:11;
y=[1306 1373 1657 1919 2181 2336 2525.1 2816.9 2950.7 2959.1 3603.0];
急!先谢!
模型中x后面少了一个点,问题已经解决了!

x = 1:1:11;
y = [1306 1373 1657 1919 2181 2336 2525.1 2816.9 2950.7 2959.1 3603.0] ;

opts = fitoptions('Method','Nonlinear','Normalize','On');
ftype = fittype('exp(a * x.^2 + b * x + c)+d','options',opts);

[fresult,gof] = fit(x',y',ftype)

plot( x, fresult(x), x, y, '* ')追问

程序也很给力!灰常感谢了!

追答

就选本答案为标准答案吧! ):(

参考资料:http://hi.baidu.com/zzz700/blog/item/f313a3f5869659b5a40f52d7.html

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-09
function my11
x=1:11;
y=[1306 1373 1657 1919 2181 2336 2525.1 2816.9 2950.7 2959.1 3603.0];
plot(x,y,'o')
hold on
A=nlinfit(x,y,@fun,[0.04 0.6 -4.3 1800]);%%%方程系数矩阵
disp(A)
xx=min(x):0.1:max(x);
yy=exp(A(1)*xx.^2+A(2)*xx+A(3))+A(4);%%%方程形式
plot(xx,yy)
end
function y=fun(A,x)
y=exp(A(1)*x.^2+A(2)*x+A(3))+A(4);
end追问

很给力,但还有点不懂,就是方程系数矩阵中的系数[0.04 0.6 -4.3 1800]是如何确定的?
灰常感谢了先!

追答

有个曲线拟合工具箱,cftool,我做拟合时就是在那里先确定系数,在编代码的,你可以用一下,那里面有好多系统函数,也可以自定义函数,你找一下自定义选项,有问题再说

matlab如何进行二元二次方程的拟合,并作出三维图像 y=a*y1+b*x+c*...
1、首先,根据给定的y1、x和y,对函数y=a*y1+b*x+c*x*y1+d*yi^2+e* x^2+f进行拟合。y1=[。。。]x=[。。。]y=[。。。]X=[x, y1]func=inline('a(1).*x(:,2)+a(2).*x(:,1)+a(3).*x(:,1).*x(:,2)+a(4).*x(:,2).^2+a(5).*x(:,1).^2+a(6) ...

MATLAB怎么求二次曲线拟合系数
surf(X,Y,A(1)+A(2)*X+A(3)*Y+A(4)*X.^2+A(5)*Y.^2+A(6)*X.*Y);shading interp alpha .5 hold on plot3(x,y,z,'o');title(['$',s,'$'],'interpreter','latex')

求教MATLAB指数拟合问题:指数拟合y=a(exp(bx)-1),要求精度高一些,画...
对于楼主给的数据而言,指数函数似乎并非一个好的选择。从下图可以看到,四次多项式拟合的效果要比指数拟合效果好很多。事实上,即使用二次多项式(抛物线)拟合,也比指数拟合的效果要好。所以,建议楼主重新考虑一下拟合函数的形式,如果允许,可尝试采用多项式拟合。参考代码 x=[2.0 2.1 2.2 2.3 ...

matlab如何进行曲面拟合我有几十组(x,y,z
1、根据x,y,z数据,可以用cftool拟合工具箱的常用函数去拟合,判断(x,y,z)大概符合那个曲面方程。(注:cftool拟合工具箱有时候不一定与实际相符)2、建立曲面方程模型函数,如func=@(a,x) a(1)*x(1)^2+a(2)*x(2)^2,这里x(1)→x,x(2)→y 3、用 nlinfit()或lsqcurvefit()...

最小二乘法在matlab中怎么实现啊?
以matlab自带的数据为样本,示例代码如下:(%后面的是注释)clc;clear;load carsmall%此数据样本matlab自带 x=Weight;y=Horsepower;z=MPG;%取这3个变量作为拟合对象,x、y自变量,z应变量 plot3(x,y,z,'p');hold on;c=ones(length(x),1);b=regress(z,[x,y,c]);%纯线性拟合 模型z=b(...

matlab如何进行多峰拟合
第一步,拟合前先获得有效的数据,如【x,y】第二步,自定义拟合函数,根据题意,可以假定其函数含有sin或cos等三角函数。例如,fun=@(a,x)a(1)*sin(w*x)+a(2)*cos(w*x)+a(3)*sin(2*w*x)+a(4)*cos(2*w*x)+。。。+a(n)*sin(n*w*x)+a(n+1)*cos(n*w*x)第三步,...

matlab怎么进行高斯拟合?
可以用lsqcurvefit函数或nlinfit函数,来得到高斯拟合的函数。实现方法:1、已知数据 x=【。。。】;y=【。。。】;2、自定义拟合函数模型,如fun = @(a,x) a(1)*exp(-((x- a(2))\/a(3))^2) + a(4)*exp(-((x-a(5))\/a(6))^2)式中:a(1)—a1; a(2)—b1; a(3)—...

在matlab 中用最小二乘法拟合y=a*x^2+b*x的程序要如何写?
matlab中曲线拟合的最优标准是采用最常见的最小二乘法,而所谓曲线拟合就是利用最小二乘法使得拟合多项式在各节点处的偏差达到最小。给出一组数据的话就可以进行数据拟合。你说的应该是2次拟合多项式 程序如下:t=输入数据;y=输入数据;p=polyfit(t,y,3)然后就可以进行数据拟合了。

matlab中用nlinfit拟合指数函数f=a*exp(b*x)+c*exp(d*x)
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 a = 0.0444737875381383 对比图形 ...

如何实现二维高斯拟合 matlab
你可以参考这个例子。用matlab 将一组数据进行正态分布拟合,你可以在基础上修改,实现过程如下:x=[。。。];y=[。。。];z=[。。。];x=[x y];y=z;func=@(a,x)二维高斯表达式 a0=[0 0 0 0];[a,r] = nlinfit(x,y,func,a0) %函数拟合得到其正态分布参数,式中:μ1=a(1)...

相似回答