Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js中的血浆浓度多剂量方程_Javascript_Equation Solving - Fatal编程技术网

Javascript js中的血浆浓度多剂量方程

Javascript js中的血浆浓度多剂量方程,javascript,equation-solving,Javascript,Equation Solving,目前我的应用程序需要计算血浆浓度(多剂量)。我希望它是周期性的,如本例所示: 然而,当我试图计算并绘制出来时,结果是 我被告知应该是的等式是 我的函数如下所示 function calculatePlasmaConcentration(x, bioavailability, vd, ka, ke, dosing, dose) { var firstPart, secondPart, c; firstPart = ((bioavailability * dose * ka) /

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

然而,当我试图计算并绘制出来时,结果是

我被告知应该是的等式是 我的函数如下所示

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
}

提前谢谢

您需要通过以下方式调用函数
calculatePlasmaConcentration(…)


你可以打印出这两个部分,找出错误所在。你可以提供变量
ke
剂量
剂量
?@巧克力实体问题是我没有绘制第一张图表,所以我不知道每一步的要点。这并不是说方程本身是错误的。。。只是想知道为什么它不像第一张图那样是周期性的。@Daemedeor-那么,你想计算0-104小时的血浆浓度吗?@chipChocolate.py至少要足够长的时间才能看到像第一张图那样的周期性模式。嗯,很有意思,但我认为循环的使用是缺失的?因为当我尝试它的时候,它只是回到了一开始就解决了。我会看看我能做些什么来修复它。然后我会把它标记正确。。。因为我正在使用flot的库来呈现grpah,所以我现在这样称呼它:“'for(var i=0;i// 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);
    }
}
function generateData(drugInfo) {
    var pcStack = 0;
    var temp = [],
        mainArray = [],
        tempObject = {};
    var start = 0;
    var end = 24;
    var delta = 0;
    for (cycle = 0; cycle < 4; cycle++) {
        for (i = 0; i < 24; i += 0.05) {
            var pc = calculatePlasmaConcentration(i, drugInfo.bioavailability, drugInfo.vd, drugInfo.ka, drugInfo.ke, drugInfo.dosing, drugInfo.dosage);
            temp.push([i + delta, pcStack + pc]);
        }
        pcStack += pc;
        delta += 24;
    }
    tempObject = {
        data: temp
    };
    mainArray.push(tempObject);
    return mainArray;
}