我已经在一个循环中编写了三个联立方程,每年一个步骤持续 260 年,现在我需要在循环中的一个方程中添加另一个值。我将这些值作为列表导入,并且它们每年都在变化。当每个步骤的值不同时,我不确定我需要编写什么代码来添加列表的值。
t:1751$
Ma:590$
Ms:900$
Md:37100$
Kas:0.078111$
Ksa:0.119153$
Ksd:0.002577$
Kds:0.106222$
dt:1$
tmax:2010$
Mapts:[[t,Ma]]$
Mspts:[[t,Ms]]$
Mdpts:[[t,Md]]$
while t<tmax-dt/2 do
(
t: t+dt,
Ma: Ma +(Kas*Ms-Ksa*Ma)*dt,
Ms: Ms + ((Ksd*Md-Kds*Ms)+(Ksa*Ma-Kas*Ms))*dt,
Md: Md + (Kds*Ms-Ksd*Md)*dt,
Mapts: append(Mapts, [[t,Ma]]),
Mspts: append (Mspts, [[t,Ms]]),
Mdpts: append (Mdpts, [[t,Md]])
)$
Mapts;
我有一个从 1751 到 2010 的值 (F) 列表,需要将其添加到等式 Ma 中,因此Ma: Ma + ( (Kas*Ms-Ksa*Ma)*dt) + F
添加的变化 F 会在循环内更新。
从 1751 年到 2010 年,输出应该显示 Ma 的值每年都在增加