gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 00:50:04 26 4
gpt4 key购买 nike

目前我的应用程序需要计算血浆浓度(多剂量)。我预计它会像本例中所示那样呈周期性: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
}

提前致谢!

最佳答案

您需要这样调用函数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 小时间隔时,我们需要将 24 添加到 i

Fiddle

这是更新后的功能。

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

关于javascript - js 中的血浆浓度多剂量方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26897994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com