血浆浓度多剂量方程式为js

时间:2014-11-12 22:35:20

标签: javascript equation-solving

目前我的应用需要计算血浆浓度(多剂量)。我希望它是周期性的,如本例所示:Wikipedia example

然而,当我尝试计算并绘制出来时,它就像current graphed plot

一样

我被告知应该是relavent pharmacokentic equation的等式 我的功能看起来像下面那个

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
}

提前致谢!

1 个答案:

答案 0 :(得分:1)

您需要以这种方式调用函数calculatePlasmaConcentration(...)

Fiddle

// 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);
    }
}

由此函数生成的数字创建的图形为:

enter image description here

[编辑]

当时间间隔达到24小时时,第二天的血浆浓度值应与前一天的最后血浆浓度值相加,因为剂量不会从体内消失。

接下来,当我们附加tau(τ),(我们的情况为i)以及血浆浓度值(temp.push([i + delta, pcStack + pc]);)时,我们需要将24加到{ {1}},每次间隔达到24小时。

Fiddle

这是更新的功能。

i