LORENTZFIT 将单参数或多参数洛伦兹函数拟合到数据Matlab
Posted 这是一个很随便的名字
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LORENTZFIT 将单参数或多参数洛伦兹函数拟合到数据Matlab相关的知识,希望对你有一定的参考价值。
LORENTZFIT 将单参数或多参数洛伦兹函数拟合到数据
洛伦兹拟合将单参数或多参数洛伦兹函数拟合到数据
LORENTZFIT(X,Y)返回YPRIME(X),这是一种洛伦兹拟合,与使用LSQCURVEFIT找到的数据相匹配。函数Y(X)由模型拟合:
YPRIME(X) = P1./((X - P2).^2 + P3) + C.
YPRIME(X) = P1./((X - P2).^2 + P3) + C.除了拟合参数PARAMS=[P1 P2 P3 C]之外,还返回YPRIME(X)值。还将返回LSQCURVEFIT的RESNORM、残差和雅可比输出。
[…]=LORENTZFIT(X,Y,P0)可用于为参数中的参数提供起始值(P0 = [P01 P02 P03 C0])。
[…]=LORENTZFIT(X,Y,P0,界限)可用于定义参数中每个参数可能值的下限和上限。
BOUNDS=[LB1 LB2 LB3 LB4;UB1 UB2 UB3 UB4]。
如果用户不希望手动定义P0的值,则可以将其作为空矩阵P0=[]输入。在这种情况下,将使用默认值。所有参数的默认边界为(-Inf,Inf)。
[…]=洛伦兹拟合(X,Y,P0,BOUNDS,NPARAMS)可用于指定洛伦兹拟合函数中使用的参数数量。P0和界限中定义的参数数量必须与NPARAMS指定的函数匹配。如果用户不希望手动定义P0或边界的值,则这两个值都可以作为空矩阵:
P0 = []; BOUNDS = [].
使用举例:
x = -16:0.1:35;
y = 19.4./((x - 7).^2 + 15.8) + randn(size(x))./10;
[yprime1 params1 resnorm1 residual1 jacobain1] = lorentzfit(x,y,[20 10 15 0]);
figure; plot(x,y,'b.','LineWidth',2)
hold on; plot(x,yprime1,'r-','LineWidth',2)
[yprime2 params2 resnorm2 residual2 jacobian2] = lorentzfit(x,y,[],[],'3');
figure; plot(x,y,'b.','LineWidth',2)
hold on; plot(x,yprime2,'r-','LineWidth',2)
运行结果:
以上是关于LORENTZFIT 将单参数或多参数洛伦兹函数拟合到数据Matlab的主要内容,如果未能解决你的问题,请参考以下文章
泊松回归gamma回归Tweedie回归等广义线性回归模型GLM的评估指标:校准曲线 洛伦兹曲线卡方检验AICBIC偏差(Deviance)指标