Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中数据的衰减率_Matlab_Exponential - Fatal编程技术网

matlab中数据的衰减率

matlab中数据的衰减率,matlab,exponential,Matlab,Exponential,我想知道一些数据在达到初始峰值(这里是cax=5)后返回基线的速度有多快 二次拟合看起来是正确的(从matlab的figures选项,如下所示),但我正在寻找这条曲线的简明量化,因此我认为指数函数的“”将是非常简单的 这个假设正确吗 如果是的话,我在维基上查看了这个公式,并无耻地试图找到时间常数的解(但没有成功)。有人能帮我吗?或者这真的不是一个小问题吗 编辑:我计划使用MathWorks的findpeaks()函数查找峰值,使用“反向”findpeaks()函数查找曲线的最低点(如:-y)

我想知道一些数据在达到初始峰值(这里是ca
x=5
)后返回基线的速度有多快

二次拟合看起来是正确的(从matlab的figures选项,如下所示),但我正在寻找这条曲线的简明量化,因此我认为指数函数的“”将是非常简单的

  • 这个假设正确吗
  • 如果是的话,我在维基上查看了这个公式,并无耻地试图找到时间常数的解(但没有成功)。有人能帮我吗?或者这真的不是一个小问题吗
  • 编辑:我计划使用MathWorks的findpeaks()函数查找峰值,使用“反向”
    findpeaks()
    函数查找曲线的最低点(如:
    -y


    这是我一直在寻找的两个选项,也许有人可以详细说明/改进这些方法的差异——对我来说,这已经足够好了,谢谢你的评论。在此步骤之前,使用问题示例中提供的数据,必须提取局部最大值和最小值,使用
    findpeaks()

    方法1)需要Matlab中的曲线工具箱


    或方法2)需要Matlab中的优化工具箱



    这是我一直在寻找的两个选项,也许有人可以详细说明/改进这些方法的差异——对我来说,这已经足够好了,谢谢你的评论。在此步骤之前,使用问题示例中提供的数据,必须提取局部最大值和最小值,使用
    findpeaks()

    方法1)需要Matlab中的曲线工具箱


    或方法2)需要Matlab中的优化工具箱



    首先,您需要删除向上步,因为这不符合指数衰减曲线。然后您有两个选项。。。直接非线性曲线拟合(它是单调的,因此效率很高)——使用例如
    lsqnonlin
    ——或
    log(y)
    的线性拟合,这非常容易,但代表了与通常的AWGN模型非常不同的采样误差假设。@BenVoigt,我理解,关于删除递增步骤,我可以用matlab中的FindPeak轻松地完成这项工作,这项工作非常出色。不幸的是,我对lsqnonlin和AWGN模型没有任何线索=/我可能还应该提到,我有非常基本的数学技能,基本上我不知道如何解释微分方程。我认为
    lsqnonlin
    基本上解决了这个问题(参见确切的例子),至少在浏览文档的第一个近似值上,如果您认为其他人可以从中获利,请在回答中详细说明,那么我将接受。我应该提到的是,这个函数需要优化工具箱,我目前无法访问。首先,您需要删除上一步,因为这不符合指数衰减曲线。然后,您有两个选项。。。直接非线性曲线拟合(它是单调的,因此效率很高)——使用例如
    lsqnonlin
    ——或
    log(y)
    的线性拟合,这非常容易,但代表了与通常的AWGN模型非常不同的采样误差假设。@BenVoigt,我理解,关于删除递增步骤,我可以用matlab中的FindPeak轻松地完成这项工作,这项工作非常出色。不幸的是,我对lsqnonlin和AWGN模型没有任何线索=/我可能还应该提到,我有非常基本的数学技能,基本上我不知道如何解释微分方程。我认为
    lsqnonlin
    基本上解决了这个问题(参见确切的例子),至少在浏览文档的第一个近似值上,如果您认为其他人可以从中获利,请在回答中详细说明,那么我将接受。我应该提到,此功能需要优化工具箱,我目前无法访问该工具箱
    %approx data values of the curves below
    y= [0   0.07    0.08    0.08    0.08    0.06    0.06    0.05    0.04    0.05    0.04    0.02    0.01    0.02    0.01    0.01    0.03    0.02    0.02    0.02    0.03    0.01    0.02    0.01    0.01    0.03    0.02    0.01    0.02    0.01];
    x=1:numel(y);
    plot(x,y);
    
    %Fit a Single-Term Exponential Model, copy from Mathworks documentation, all credits go there
    x = (0:0.2:5)';
    y = 2*exp(-0.2*x) + 0.1*randn(size(x));
    f = fit(x,y,'exp1')
    f = 
         General model Exp1:
         f(x) = a*exp(b*x)
         Coefficients (with 95% confidence bounds):
           a =       2.021  (1.89, 2.151)
           b =     -0.1812  (-0.2104, -0.152)
    plot(f,x,y)
    
    %copy from Mathworks documentation, all credits go there
    rng default % for reproducibility
    d = linspace(0,3);
    y = exp(-1.3*d) + 0.05*randn(size(d));
    fun = @(r)exp(-d*r)-y;
    x0 = 4;
    x = lsqnonlin(fun,x0)
    plot(d,y,'ko',d,exp(-x*d),'b-')
    legend('Data','Best fit')
    xlabel('t')
    ylabel('exp(-tx)')