使用Sounio进行科学计算
Sounio提供科学领域建模不确定性的基础工具。
PBPK建模中的不确定性
struct KnowledgeF64 {
value: f64,
uncertainty: f64
}
fn concentration(dose_mg: KnowledgeF64, volume_l: KnowledgeF64) -> KnowledgeF64 {
let c = dose_mg.value / volume_l.value
// 除法的首次级线性不确定性:
// dc ≈ |∂c/∂dose| u_dose + |∂c/∂vol| u_vol
let d_cdose = 1.0 / volume_l.value
let d_cvol = (0.0 - dose_mg.value) / (volume_l.value * volume_l.value)
let abs_d_cdose = if d_cdose < 0.0 { 0.0 - d_cdose } else { d_cdose }
let u = abs_d_cdose * dose_mg.uncertainty
return KnowledgeF64 {
value: c,
uncertainty: u
}
}