我试图弄清楚如何为此使用 ode23。我有一个功能:
function res = HardyWeinberg(inAFrequency, inFitness_AA, inFitness_Aa, inFitness_aa)
fA = inAFrequency;
wAA = inFitness_AA;
wAa = inFitness_Aa;
waa = inFitness_aa;
res = (fA*(1-fA)*(fA*(wAa - wAA) + (1-fA)*(waa - wAa)))/(fA*fA*wAA + 2*fA*(1-fA)*wAa + (1-fA)*(1-fA)*waa);
end
我想在 [0 10] 的连续跨度上运行它。我见过的每个示例都在函数中包含一个更改合并的参数。在我的情况下,下一次计算的频率是前一次计算的结果。也许我在这里遗漏了一些东西(数学或 Matlab 明智)。
上面的函数显示了两个“世代”之间的差异。
请告知如何计算跨度的 ode23。
谢了,兄弟们。