2021物理化学实验2:分光光度法测溴酚蓝的电离平衡常数
#作者:王日睿
#中国科学技术大学生命科学学院
#2021.11.3
#物理化学实验:实验02 分光光度法测BPB的电离平衡常数import numpy as np
import matplotlib.pyplot as plt
import osdef readfile(filename):x, y = [], [] file = open(filename, 'r')count = 0for line in file.readlines():count = count + 1if count >= 2:x.append(float(line[0:6]))y.append(float(line[7:len(line)]))return x, yFILE_PATH = "C:\\Users\\29070\\Desktop\\我的笔记\\物化实验\\分光光度法测BPB的电离平衡常数\\王日睿PB19081616\\王日睿PB19081616"
FILE_NAME = os.listdir(FILE_PATH)
# 顺序依次为:sample 1-7, sample acid, sample baseWaveLength = []
D_Value = [] # 按文件名依次储存在WaveLength[],和D_Valve[]里
PH_list = [3.15, 3.40, 3.60, 3.79, 4.22, 4.39, 4.58]for file in FILE_NAME:x, y = readfile(FILE_PATH + r'\\' + file)WaveLength.append(x)D_Value.append(y)# 找到sample1-7的右边的峰值(为电离后离子的特征峰)
max_list = []
wavelength_list = []
for i in range(7):max_value = max(D_Value[i][:len(D_Value[i])//2])index = D_Value[i].index(max_value)max_list.append(max_value)wavelength_list.append(WaveLength[i][index])
#print(max_list)
#[0.096, 0.15, 0.209, 0.272, 0.421, 0.495, 0.543]
#print(wavelength_list)
#[593.0, 593.0, 593.0, 592.2, 592.4, 592.4, 592.4]
# 将sample_acid 和base的数据也录入
for i in range(7,9):max_value = max(D_Value[i])index = D_Value[i].index(max_value)max_list.append(max_value)wavelength_list.append(WaveLength[i][index])
#print(max_list)
#[0.096, 0.15, 0.209, 0.272, 0.421, 0.495, 0.543, 0.236, 0.693]
#print(wavelength_list)
#[593.0, 593.0, 593.0, 592.2, 592.4, 592.4, 592.4, 438.0, 591.8]# 特征峰可认为是除极酸条件外,其余8种的平均proper_value = (sum(wavelength_list)-wavelength_list[7])/8
#print(proper_value) 592.525
#最接近极酸条件下的592.6nm
proper_wavelength = 592.6
proper_index = WaveLength[7].index(proper_wavelength)
proper_D = D_Value[7][proper_index]#替换该值
wavelength_list[7] = proper_wavelength
max_list[7] = proper_D# 画图
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
fig,ax = plt.subplots(4, 2, figsize=(10, 10), dpi=400)
count = 0
for i in range(4):for j in range(2):ax[i][j].plot(WaveLength[count], D_Value[count])ax[i][j].set_xlabel("波长/nm")ax[i][j].set_ylabel("透光度D")ax[i][j].axvline(wavelength_list[count],ls=":")ax[i][j].annotate(text="(%4.1f,%4.3f)"%(wavelength_list[count],max_list[count]),xy=(wavelength_list[count],max_list[count]),xytext=(wavelength_list[count]+50,max_list[count]-0.05),arrowprops=dict(arrowstyle="->", color="black"))ax[i][j].scatter(wavelength_list[count],max_list[count],color="red")count = count + 1 ax[3][1].plot(WaveLength[8], D_Value[8],color="green",label="极碱条件")
ax[3][1].plot(WaveLength[7], D_Value[7],color="b",label="极酸条件")
ax[3][1].annotate(text="(%4.1f,%4.3f)"%(wavelength_list[8],max_list[8]),xy=(wavelength_list[8],max_list[8]),xytext=(wavelength_list[8]+50,max_list[8]-0.05),arrowprops=dict(arrowstyle="->", color="black"))
ax[3][1].scatter(wavelength_list[8],max_list[8],color="red")
ax[3][1].axvline(wavelength_list[8],ls=":")
ax[3][1].set_title("极酸和极碱条件")
ax[3][1].legend(loc='upper left')count_ = 0
for i in range(3):for j in range(2):ax[i][j].set_title("sample_%d"%(count_+1)+ " " + "pH=%3.2f"%PH_list[count_])count_ = count_ + 1
ax[3][0].set_title("sample %d"%(count_+1)+ " " + "pH=%3.2f"%PH_list[count_])
plt.tight_layout()
plt.savefig("output_1.png")
plt.show()# 对得到的结果进行拟合
import math
from scipy import optimizeD1 = 0.002
D2 = 0.693
y = [math.log((data-D1)/(D2-data),10) for data in max_list[:7]]
x = PH_listdef func(x, k, b):return k * x + bk, b = optimize.curve_fit(func, x, y)[0]
#print(k,b)
#k=0.950320079281087 b=-3.7957755480692774plt.figure(2)
plt.rcParams['text.usetex'] = False
x0 = np.arange(min(PH_list),max(PH_list),0.0001)
y0 = k * x0 + b
plt.plot(x0, y0, color="blue")
plt.scatter(x, y, color="r")
plt.title("$log_{10}(D-D_1)/(D_2-D)-pH$ 拟合曲线")
plt.annotate(text="y=%4.4fx%4.4f"%(k, b), xy=(3.2,0.4), xytext=(3.1,0.5),fontsize=15,color="r")
plt.xlabel("pH",fontsize=15)
plt.savefig("output_2.png")
plt.show()# 计算电离平衡常数
# y=kx+b=pH-pK
# b=-pK
# b=lgpK
# pK = 10^b
K = pow(10, b)
#print(K)
# K=1.60*10^-4
2021物理化学实验2:分光光度法测溴酚蓝的电离平衡常数相关推荐
- 2021物理化学实验4:液体饱和蒸气压的测定
#作者:王日睿 #中国科学技术大学生命科学学院 #2021.11.20 #物理化学实验:实验04 液体饱和蒸气压的测定 # Jupyter labimport numpy as np import m ...
- 2021物理化学实验8:乙酸乙酯皂化反应动力学研究
#作者:王日睿 #中国科学技术大学生命科学学院 #2021.12.23 #物理化学实验:实验08 乙酸乙酯皂化反应动力学研究 # Jupyter labimport pandas as pd impo ...
- 2021物理化学实验5:双液系的气液平衡相图
#作者:王日睿 #中国科学技术大学生命科学学院 #2021.12.1 #物理化学实验:实验04 液体饱和蒸气压的测定 # Jupyter lab# 1. 绘制工作曲线 # 原始数据: propanol ...
- 2021物理化学实验3:燃烧热的测定
#作者:王日睿 #中国科学技术大学生命科学学院 #2021.11.12 #物理化学实验:实验03 燃烧热的测定 # Jupyter labimport numpy as np import matpl ...
- 计算机量子化学计算焓变,物理化学实验
绪论 1.1 物理化学实验目的与要求 1.2 误差及数据处理 1.3 计算机处理物理化学实验数据的方法 1.4 学生实验规则与安全 实验内容 2.1 热力学 实验1 恒温槽控温精度的研究 实验2 燃烧 ...
- 古典密码算法实验c语言,2021信息安全 实验一 古典密码算法C语言.docx
2021信息安全 实验一 古典密码算法C语言.docx 信息安全信息安全 实验一实验一 古典密码算法古典密码算法 C C 语言语言 信息安全实验报告 课程名称 _ 专业计算机科学与技术 _2010_级 ...
- Matlab×物理化学实验:乙醇水溶液偏摩尔体积测定
MATLAB×物理化学实验:乙醇水溶液偏摩尔体积测定 摘要 理论依据 一.比重瓶法测密度 二.多组分液体的体积 加和公式 求解思想 核心语句: 绘图相关语句: 程序实现 程序内容 范例 输入数据 调用 ...
- tim计时器读出为0_高中物理 必修1 (12) 第一章 运动的描述 课时4 实验:用打点计时器测速度(1)...
高中物理满分计划 高一微课300-12 必修一:第一章 运动的描述 课时4 实验:用打点计时器测速度(1) [基本装备]知识点 1 两种打点计时器的比较 1.构造 电磁打点计时器 电火花计时器 2.电 ...
- Matlab×物理化学实验:蔗糖水解反应速率常数测定
Matlab×物理化学实验:蔗糖水解反应速率常数测定 摘要 理论依据 一.蔗糖水解 化学反应式 半衰期 一级反应有如下特点 二.旋光度α\alphaα 求解思想 核心语句: 绘图相关语句: 程序实现 ...
- 计算机辅助物理化学实验 唐典勇课后答案,计算机辅助物理化学实验(第2版)...
第1章 绪论 1.1 物理化学实验的目的和要求 1.1.1 学习物理化学实验课程的目的 1.1.2 实验前的准备 1.1.3 实验注意事项 1.1.4 实验报告要求 1.1.5 实验室规 ...
最新文章
- Form_通过FND_FNDFLUPL标准功能上传CSV控件(案例)
- rgb fusion检测不到显卡_7000元AMD平台装机:3600X配RTX2060显卡怎么样
- python3.7.4-Centos7升级Python3.7.4
- 数据库连接池之_DButils
- 自定义Checkbox让复选框居中对于RadioButton同样适用
- JUC重要辅助类(同步组件及锁)
- 获取html滚动条位置,pc和移动端获取滚动条的位置
- bugku 管理员系统 后台代码_不会吧,这也行?iOS后台锁屏监听摇一摇
- Kindle 助手上线啦
- PAT 甲级 1003
- c语言怎么设计程序框图,C语言课程设计————写下流程图! 谢谢
- 服务器数据收发测试软件,sokit TCP/UDP 数据包收发测试(调试)工具(Win32)
- javascript new对象的过程
- 芒果iOS开发之App Transport Security has blocked a cleartext HTTP (http://) resource load since it is inse
- 该内存不能为 read/written解决办法
- 认识网络号与子网划分
- 梦幻西游唯美版3D模型展示
- 站长还应该发布外链吗?
- ShaderForge 之霓虹旋涡
- Docker容器总结
热门文章
- 录入姓名完成座位表,学习前端的小伙伴可以关注一波,用js+html+css构成
- phicomm虚拟服务器怎么设置方法,斐讯(PHICOMM)路由器设置步骤
- pytorch中为Module和Tensor指定GPU
- echarts柱形图X轴Y轴相关配置
- 基金仓位“88%魔咒”再现 百点长阳能否击破?
- win8.1删除桌面的IE图标
- that being said
- 身份证上传尺寸太大如何缩小?改照片尺寸的简单方法
- c语言编译器tc2.0,Wintc软件下载
- base_url 是什么