希望用y=x*(1-exp(m*(x-1)/2)拟合出m值,能否利用取对数进行线性拟合?有20组(x

发布时间:2021-02-21 00:44:27

希望用y=x*(1-exp(m*(x-1)/2)拟合出m值,能否利用取对数进行线性拟合?有20组(x,y)数据,希望用y=x*(1-exp(m*(x-1)/2)拟合出m值,请问能否利用取对数进行线性拟合?如果不能的话是不是因为无法分离变量x,execl能否进行非线性拟合?origin已会to sir

网友回答

可以用线性拟合
原式为y=x(1-e^(m(x-1)/2)),由此式变形为:
2ln(1-y/x)=m(x-1)
设Y=2ln(1-y/x),X=x-1
则有Y=mX
由最小二乘法可得:
m=∑Y[i]/∑X[i](方括号表示下标)
我直接对y=x(1-e^(m(x-1)/2))用最小二乘法算了一下m,发现得到了一个超越方程,这和转换后用线性拟合得出的结果不同.我分析了一下原因,把非线性问题转换为线性问题时,由于用了Y=2ln(1-y/x)的非线性放缩,这导致了任一个实际点与拟合曲线上对应的点的距离由直线变为了曲线,而用线性拟合时又用的是直线,故还原为曲线拟合时对应的点之间就不是直线,而是曲线,即所求的出的不是最短距离.用曲线拟合求出的m值是最佳值.
以上问题属网友观点,不代表本站立场,仅供参考!