#maxima #wxmaxima
#максимумы #wxmaxima
Вопрос:
Я написал три одновременных уравнения в цикле, который длится 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;
У меня есть список значений (F) с 1751 по 2010 год, и мне нужно добавить это в уравнение, так что Ma: Ma ( (Kas*Ms-Ksa*Ma)*dt) F
но добавление изменения F обновляется внутри цикла.
Выходные данные должны показывать возрастающее значение Ma каждый год в период с 1751 по 2010 год
Ответ №1:
Я вижу, что Mapts
получается что-то вроде [[1751, ...], [1752, ...], ..., [2010, ...]]
. Вы говорите, что у вас есть список значений F
с 1751 по 2010 год. Учитывая это, вы можете добавить F
к Mapts
чему-то вроде этого:
map (lambda ([pt, x], [pt[1], pt[2] x]), Mapts, F);