回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试使用Python的<code>Scipy</code>包使一个简单的逻辑增长模型适合虚拟数据。下面显示了代码以及我得到的输出。下面显示了正确的输出。我不太确定这里出了什么问题</p>
<pre><code>import scipy.optimize as optim
from scipy.integrate import odeint
import numpy as np
import pandas as pd
N0 = 0.37
parsic = [.25, 12.9]
df_yeast = pd.DataFrame({'cd': [9.6, 18.3, 29., 47.2, 71.1, 119.1, 174.6, 257.3, 350.7, 441., 513.3, 559.7, 594.8, 629.4, 640.8, 651.1, 655.9, 659.6], 'td': np.arange(18)})
def logistic_de(t, N, r, K):
return r*N*(1 - N/K)
def logistic_solution(t, r, K):
return odeint(logistic_de, N0, t, (r, K), tfirst=True).ravel()
params, _ = optim.curve_fit(logistic_solution, df_yeast['td'], df_yeast['cd'], p0=parsic)
N1 = odeint(logistic_de, N0, np.linspace(0, 20, 10000), (params[0], params[1]), tfirst=True)
plt.plot(np.linspace(0, 20, 10000), N1)
plt.scatter(df_yeast['td'], df_yeast['cd'])
plt.ylabel('num yeast')
plt.xlabel('time')
</code></pre>
<p>我的输出:
<a href="https://i.stack.imgur.com/Qohg0.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Qohg0.png" alt="enter image description here"/></a></p>
<p>正确输出:
<a href="https://i.stack.imgur.com/Vrh07.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Vrh07.png" alt="enter image description here"/></a></p>