回 帖 发 新 帖 刷新版面

主题:!!请教怎么用matlab 拟合logistic方程阿!!!

问题同上,就是那个最普通的人口的Logistic 怎么算r 和k

回复列表 (共5个回复)

沙发


这个就是拟合问题吧,用最小二乘法拟合,先求解那个微分方程,得到一个好像是log(M)=a+bt,t 和 M已知,就可以用最小二乘求出a 和b 了!

板凳


这样的话得出来的是个线性函数,会不会得出来的失真比较大

3 楼

不会存在所谓的“失真”
这是将非线性最小二乘变成线性最小二乘的一种方法
将自变量与因变量同取对数再进行线性的最小二乘拟和
例如
y = exp(a * x) 
同取对数 有ln(y) = a * x
令x' = x,y' = ln(y) 则(x',y')组成的是一个线性模型
然后按照线性最小二乘来计算a的值

不过 MATLAB里面有求非线性最小二乘的函数lsqcurvefit
也可以试试这个

4 楼


嗯,没错,其实那个方程还是非线性的,只是通过变形做为线性的来做,正如楼上所说的还有两个命令,
Matlab提供了两个求非线性最小二乘拟合的函数:lsqcurvefit和lsqnonlin。两个命令都要先建立M-文件fun.m,在其中定义函数f(x),但两者定义f(x)的方法是不同的,其基本原理还是最小二乘法。

5 楼

有高人就是好

我来回复

您尚未登录,请登录后再回复。点此登录或注册