目前我的应用需要计算血浆浓度(多剂量)。我希望它是周期性的,如本例所示:
然而,当我尝试计算并绘制出来时,它就像
一样我被告知应该是的等式 我的功能看起来像下面那个
function calculatePlasmaConcentration(x, bioavailability, vd, ka, ke, dosing, dose) {
var firstPart, secondPart, c;
firstPart = ((bioavailability * dose * ka) / (vd * ka - vd * ke));
secondPart = (Math.exp(-ke * x) / (1 - Math.exp(-ke * dosing))) - (Math.exp(-ka * x) / (1 - Math.exp(-ka * dosing)));
c = firstPart * secondPart;
return c;
}
我似乎无法看到我写错了这个等式,我做错了什么?参数x应该是以小时为单位的时间。
在此处添加默认值:
defaultDrugInfo = {
dose: 500,
dosing: 24,
bioavailability: .89,
ka: .883,
ke: .0578,
vd: 6,
optimalTopRange: 10,
optimalBottomRange: 5
}
提前致谢!
答案 0 :(得分:1)
您需要以这种方式调用函数calculatePlasmaConcentration(...)
:
// four cycles
for (cycle = 0; cycle < 4; cycle++) {
// 24 hr dosing
for (t = 0; t < 24; t++) {
nums.push(Math.round(calculatePlasmaConcentration(t, 0.89, 6, 0.883, 0.0578, 24, 500) * 1000) / 1000);
}
}
由此函数生成的数字创建的图形为:
当时间间隔达到24小时时,第二天的血浆浓度值应与前一天的最后血浆浓度值相加,因为剂量不会从体内消失。
接下来,当我们附加tau(τ)
,(我们的情况为i
)以及血浆浓度值(temp.push([i + delta, pcStack + pc]);
)时,我们需要将24
加到{ {1}},每次间隔达到24小时。
这是更新的功能。
i