matlab指数函数拟合

刚学matlab,完全不知道如何写程序,特来求助!
x=[10 12.5 15 17.5 20 22.5 25 27.5 30 32.5 35 37.5 40 42.5 45 47.5 50];
y=[62.1 77.3 92.5 104 112.9 121.9 125 129.4 134 138.2 142.3 143.2 144.6 147.2 147.8 149.1 150.9];
y=A(1)*exp(x/A(2))+A(3)
请高手编程拟合指数函数!

拟合 x=0.25,0.5,1,1.5,2,3,4,6,8 y=19.21,18.15,15.36,14.10,12.98,9.32,7.45,5.24,3.01

MATLAB拟合工具箱 cftool 用法及实例:

1、数据准备:

我们以一组多项式数据为例,进行示例,假如多项式是y=4x^3+3x^2+2产生的数据,x取0到3之间间隔为0.3的数。

2、调用工具箱:

关于如何调用工具箱我在其他经验中有详细的介绍,有兴趣的可以查看。这里我们用命令cftool进行调用拟合工具箱,在MATLAB主窗口中输入 cftool 回车可以看到如下拟合工具箱界面

3、拟合操作步骤:

首先我们将要拟合的数据选入到工具箱中,如下图,在红圈处,点击向下三角,分别将要拟合的x y 选入,然后点击右侧的最上方的下三角,然后选择polynomial( 多项式),下面的degree是阶数,也就是x的最高次数,选择不同的degree,在图的左下角是拟合的结果,包括拟合的系数以及方差相关系数等,右侧是数据点,以拟合曲线

    温馨提示:答案为网友推荐,仅供参考
    第1个回答  2011-05-01

    clear all;

    close all;

    x=[10 12.5 15 17.5 20 22.5 25 27.5 30 32.5 35 37.5 40 42.5 45 47.5 50];

    y=[62.1 77.3 92.5 104 112.9 121.9 125 129.4 134 138.2 142.3 143.2 144.6 147.2 147.8 149.1 150.9];

    myfunc=inline('beta(1)+beta(2)*exp(beta(4)*x)+beta(3)*exp(-beta(4)*x)','beta','x'); 

    beta=nlinfit(x,y,myfunc,[0.5 0.5 0.5 0.5]); 

    a=beta(1),k1=beta(2),k2=beta(3),m=beta(4) 

    xx=min(x):max(x); 

    yy=a+k1*exp(m*xx)+k2*exp(-m*xx); 

    plot(x,y,'o',xx,yy,'r')

    本回答被提问者采纳
    第2个回答  推荐于2018-02-26
    指数拟合如下:
    -----------------------------------------------------------------
    先定义函数:
    function Y=nhfun(b,x)
    Y=b(1)*exp(b(2)*x)+b(3);
    在运行程序:
    x=[10 12.5 15 17.5 20 22.5 25 27.5 30 32.5 35 37.5 40 42.5 45 47.5 50];
    y=[62.1 77.3 92.5 104 112.9 121.9 125 129.4 134 138.2 142.3 143.2 144.6 147.2 147.8 149.1 150.9];

    x0=[0,1,0] %设置初始值

    b=lsqcurvefit(@nhfun,x0,x,y);
    Xi=10:0.001:50;
    Yi=b(1)*exp(b(3)*Xi)+b(2);
    plot(x,y,'cp','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',6)
    hold on
    plot(Xi,Yi,'linewidth',2,'markersize',16)
    legend('原始数据点','拟合曲线')
    sprintf('曲线方程:Y=%0.5g+e^(%0.5gxX)+(%0.5g)',b(1),b(2),b(3))
    --------------------------------------------------------------

    参考资料:http://zhidao.baidu.com/question/159464604.html?an=0&si=6&wtp=wk

    本回答被网友采纳
    第3个回答  2013-04-14
    可以帮帮我吗
    x=[4.1 6.1 10.2 20.3 30.5 40.6];
    y=[0.41 0.50 0.62 0.64 0.65 0.67];
    y=A(1)*exp(x/A(2))+A(3)
    拟合指数函数
    相似回答