用 lsqcurvefit 进行非线性曲线拟合 |
您所在的位置:网站首页 › 如何用excel进行线性拟合 › 用 lsqcurvefit 进行非线性曲线拟合 |
用 lsqcurvefit 进行非线性曲线拟合打开实时脚本 lsqcurvefit 使您能够轻松地对数据进行参数化非线性函数拟合。您也可以使用 lsqnonlin;lsqcurvefit 只是调用 lsqnonlin 进行曲线拟合的便捷方法。 在此示例中,向量 xdata 表示 100 个数据点,向量 ydata 表示相关联的测量值。生成问题的数据。 rng(5489,'twister') % reproducible xdata = -2*log(rand(100,1)); ydata = (ones(100,1) + .1*randn(100,1)) + (3*ones(100,1)+... 0.5*randn(100,1)).*exp((-(2*ones(100,1)+... .5*randn(100,1))).*xdata);xdata 和 ydata 之间的建模关系是 ydatai=a1+a2exp(-a3xdatai)+εi. 该代码基于 100 个独立样本(服从均值为 2 的指数分布)生成 xdata。该代码使用 a = [1;3;2] 从其定义方程生成 ydata,并通过添加具有标准差 [0.1;0.5;0.5] 的正态偏差进行扰动。 目标是为与数据拟合最佳的模型找到参数 aˆi,i = 1、2、3。 为了使用 lsqcurvefit 对数据进行参数拟合,您需要定义拟合函数。将拟合函数 predicted 定义为匿名函数。 predicted = @(a,xdata) a(1)*ones(100,1)+a(2)*exp(-a(3)*xdata);为了对数据进行模型拟合,lsqcurvefit 需要参数的初始估计值 a0。 a0 = [2;2;2];调用 lsqcurvefit 以找到最佳拟合参数 aˆi。 [ahat,resnorm,residual,exitflag,output,lambda,jacobian] =... lsqcurvefit(predicted,a0,xdata,ydata);Local minimum possible. lsqcurvefit stopped because the final change in the sum of squares relative to its initial value is less than the value of the function tolerance.检查生成的参数。 disp(ahat) 1.0169 3.1444 2.1596ahat 的拟合值与 a = [1;3;2] 相差不超过 8%。 如果您有 Statistics and Machine Learning Toolbox™ 软件,请使用 nlparci 函数为 ahat 估计值生成置信区间。 另请参阅lsqcurvefit | nlparci (Statistics and Machine Learning Toolbox) 相关主题非线性数据拟合Nonlinear Least Squares Without and Including Jacobian |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |