数学模型——药物中毒急救模型(基于python)
背景
人体服用一定量的药物后,血药浓度与人体的血液总量有关,一般来说,血液总量约为体重的7%~8%,即体重在50~60kg的成年人血液总量约为4000mL。
这里需要考虑,药物在进入胃肠道后,被血液吸收,胃肠道中药物的转移率,即血液系统的吸收率,一般与胃肠道的药量成正比。但药物在被血液吸收时,会通过代谢作用由肾脏排出体外,排除率与血液中药量成正比。
假设整个血液系统中药物的分布,即血药浓度是均匀的,将血液系统看作一个房室,建立一室模型。
首先确定吸收率和排除率,设定本次药物为氨茶碱,其吸收的半衰期为5h,排除的半衰期为6h(不同药物的吸收和排除通过上网查证或者药物说明书获取)
治疗方法:当血药浓度达到危险水平,可以采用口服活性炭来吸附药物,可使药物的排除率增加为原来的2倍;亦或者进行体外血液透析,药物的排除率可达到原来的6倍,但安全性不能得到充分保证。
模型建立
为了判断孩子的血药浓度会不会达到危险的水平,需要寻求胃肠道和血液系统中药量随时间变化的规律。记胃肠道的药量为,血液系统中的药量为,时间t以孩子服药的时刻为起点。
假设
1.胃肠道中药物向血液系统的转移率与药量成正比,比例系数记为(>0),总剂量为1100mg的药物在t=0时刻瞬间进入胃肠道
2.血液系统中药物的排除率与药量成正比,比例系数记为u(>0),t=0时血液中无药物
3.氨茶碱吸收的半衰期为5h,排除的半衰期为6h
4.孩子血液总量为2000mL
求解模型用到的python库
import matplotlib.pyplot as plt
from scipy.integrate import odeint
import numpy as np
from sympy import *
由假设1可得,x(0)=1100mg,随着药物从胃肠道向血液系统的转移,x(t)下降的速度与x(t)本身成正比,故x(t)满足:
对应的代码为
def dx_dt(x,t):p = 0.1386 # 比例系数return np.array(-p*x+0*t)
由假设2可得,y(0)=0,药物从胃肠道向血液系统的转移相当于血液系统对药物的吸收,y(t)由于吸收作用增长的速度为,由于排除而减少的速度与y(t)本身成正比,故y(t)满足
对应的代码为
def dy_dt(y,t):p = 0.1386u = 0.1155x = np.exp(-p*t)*1100 # x关于t的函数,通过Sympy求出return np.array(p*x-u*y+0*t)
求解x关于t的方程代码
t = Symbol('t')
x = Function('x')(t)
end = dsolve(Eq(diff(x,t,1),-0.1386*x))
print(end)
对模型进行求解,得出胃肠道中药量和血液系统中药量的的变化趋势,相应代码为:
t = np.arange(0,25,1) # 设置时间序列
a = odeint(dx_dt,1100,t) # 求解方程
b = odeint(dy_dt,0,t)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.plot(a,c='r') # 对应x(t)
plt.plot(b,c='b') # 对应y(t)
plt.ylim(0,1200)
plt.grid(ls='--',color='k',alpha=0.5)
plt.show()
由图可知,根据假设4,出现严重中毒时的血药浓度100ug/mL和致命的血药浓度200ug/mL,药量在约2h达到200mg,即到达医院时已经出现严重中毒,需要立刻进行补救措施
补救措施
使用口服活性炭进行救助。假设孩子在2h就开始施救,此时y(2)=236.5,此时,新的模型为
对应代码为
def dz_dt(z,t):p = 0.1386x = np.exp(-p*t)*1100u = 0.2310return np.array(p*x-u*z)T = np.arange(0,25,1)
c = odeint(dz_dt,0,T)
plt.plot(c,c='y')
plt.show()
可以看出,如果进行补救措施,大概会在5小时后达到最大值,即到达医院后施救3小时。可以通过求解微分方程z(t)算出准确的时间,这里就不赘述。
若是需要换成血液透析的方法,直接更改函数里u的取值。
参考书目:姜启源 谢金星 叶俊.数学模型(第五版)
本篇完结!
数学模型——药物中毒急救模型(基于python)相关推荐
- python建模分析实操_城市公交站点设置优化模型-基于Python
城市公交站点设置的优化分析 一.模型应用 进入21世纪以来,我国城市公共交通飞速发展,然而随着经济社会发展,城市不断升级以及人民生活品质越来越好,城市交通拥堵.出行不便等问题日益突出,严重损坏了市民日 ...
- 【编程】DCF自由现金流贴现模型——基于python的实现
简介:这是一个DCF自由现金流贴现模型,是对郭永清老师的<财务报表分析与股票估值>这本书内容的实现 注意事项 代码是基于<财务报表分析与股票估值>的,其中自由现金流的口径与大众 ...
- python信用评分卡_基于Python的信用评分卡模型分析(二)
上一篇文章基于Python的信用评分卡模型分析(一)已经介绍了信用评分卡模型的数据预处理.探索性数据分析.变量分箱和变量选择等.接下来我们将继续讨论信用评分卡的模型实现和分析,信用评分的方法和自动评分 ...
- python椭圆形骨料_一种基于python再生混凝土三维随机球形骨料模型的构建方法与流程...
本发明涉及建筑技术领域,尤其涉一种基于python再生混凝土三维随机球形骨料模型的构建方法. 背景技术: 再生混凝土是指利用再生粗骨料部分或者全部代替天然骨料配置而成的混凝土,再生混凝土技术的开发和利 ...
- 基于Python回归模型的异方差性分析
提示:本文是基于Python对多元线性回归模型的问题处理 目录 一.检验异方差性 方法一:残差图分析法 方法二:等级相关系数法 二.解决方法 第一种:一元加权最小二乘法 第二种:多元加权最小二乘法 总 ...
- 基于Python的岭回归与LASSO回归模型介绍及实践
基于Python的岭回归与LASSO回归模型介绍及实践 这是一篇学习的总结笔记 参考自<从零开始学数据分析与挖掘> [中]刘顺祥 著 完整代码及实践所用数据集等资料放置于:Github 岭 ...
- 基于Python的信用评分卡模型-give me some credit数据集,AUC 0.93 KS 0.71
信用风险计量模型可以包括跟个人信用评级,企业信用评级和国家信用评级.人信用评级有一系列评级模型组成,常见是A卡(申请评分卡).B卡(行为模型).C卡(催收模型)和F卡(反欺诈模型). 今天我们展示的是 ...
- 基于python语言,使用爬虫和深度学习来预测双色球(二、模型训练与测试)
在上一篇博文中(基于python语言,使用爬虫和深度学习来预测双色球(一.数据的准备)),我们完成了数据的准备,通过爬虫的方式将2003年至今的每一期的中奖数据保存到了txt文件中,那么我们现在就开始 ...
- 对南京地铁计价模型分析及最佳路径设计基于Python语言
离散数学技术报告(该报告不完整) 实验题目:对南京地铁计价模型分析及最佳路径设计基于Python语言 关键词: 城市交通; 地理信息系统; Dijkstra算法; 约束条件; 路径分析 一.引言 截至 ...
- 基于Python tensorflow2.3实现的水果识别系统源码+模型+数据集,卷积神经网络的入门案例
水果识别-基于tensorflow2.3实现 水果识别是卷积神经网络的入门案例,这里我将模型的训练.测试.保存以及使用整合在了一起,至于原理部分,大家可以参考知乎或者B站上的回答,在这里我就不赘述了 ...
最新文章
- leetCode-删除排序数组中的重复项
- Practice:在2008 core上部署和管理DHCP服务器
- CodeForces - 1438E Yurii Can Do Everything(暴力)
- 29岁程序员感慨:北京一套房,家庭月收入4万却很焦虑
- 使用FragmentTabHost出现的错误!
- Mysql CONCAT FIND_IN_SET用法
- 友图自动排料引擎 V1.0 开发指南
- linux中vim如何替换字符串,vim中替换字符串的方法有哪些
- CRMEB/V4.4标准版打通版商城源码小程序公众号H5+App商城源码
- 【前端知识梳理】HTML篇 笔记整理(一)
- 解决chrome添加扩展时的报错:“此项内容已下载并添加到Chrome中”
- 电视显示通路故障或服务器不可用,百视通电视魔百和故障处理手册
- 类似java制作计算器的游戏_急求一Java编写的类似计算机带的计算器的程序!!...
- 微信小程序调用小票打印机实现打印订单
- win10 计算机网络,win10网络发现已关闭网络计算机和设备不可见怎么办?
- 自学Python:快速查找文件或文件夹
- 武汉理工大学2019计算机考研专业课题目(回忆版)
- Crosstalk高速信号质量测试仪
- golang学习笔记(进阶篇)
- python面试自我介绍_我的python面试简历
热门文章
- Moscow Pre-Finals Workshop 2020 - Legilimens+Coffee Chicken Contest (XX Open Cup, Grand Prix of Nanj
- mqtt 推送的客户端测试方法
- SuperMap许可驱动安装流程详解
- gimp中文版教程_Gimp中文经典入门实用教程(合辑).pdf
- window操作Python27
- Logisim元件用法详解五:Memory 储存库
- logisim基础(非常基础)----寄存器元件的使用
- java 加密使长度变短
- 常用开发工具、网站、文章、博客、官网、资源、牛人等推荐(持续更新)
- 拟合和统计中的检验参数