作者:欧新宇(Xinyu OU)
当前版本:Release v1.0
开发平台:Python3.11
运行环境:Intel Core i7-7700K CPU 4.2GHz, nVidia GeForce GTX 1080 Ti
本教案所涉及的数据集仅用于教学和交流使用,请勿用作商用。
最后更新:2024年2月27日
插值与拟合
使用word文档或Markdown文档进行作答,使用Python编写程序,最终结果合并为一个word文档或Markdown文档,并另存为PDF格式进行提交。
注意:可以使用手机拍照文档进行提交,但请不要使用word文档直接进行提交。
[习题7.8-P219] 已知某放射性物质衰减的观测数据记录如表7.2所列。试用表中数据拟合出函数
中参数 的估计值。
表7.2 观测数据
时间 | 0.0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 |
浓度 | 5.8955 | 3.5639 | 2.5173 | 1.9790 | 1.8990 | 1.3938 | 1.1359 |
时间 | 0.7 | 0.8 | 0.9 | 1.0 | 1.1 | 1.2 | 1.3 |
浓度 | 1.0096 | 1.0343 | 0.8435 | 0.6856 | 0.6100 | 0.5392 | 0.3946 |
时间 | 1.4 | 1.5 | 1.6 | 1.7 | 1.8 | 1.9 | 2.0 |
浓度 | 0.3903 | 0.5474 | 0.3459 | 0.1730 | 0.2211 | 0.1704 | 0.2636 |
根据题意编写Python程序如下:
Python代码如下:
import numpy as np
from scipy.optimize import curve_fit
a = np.loadtxt('../../Data/Homeworks/homework02.txt')
t0 = np.arange(0, 2.1, 0.1)
y0 = a[1::2,:].flatten()
y = lambda t, b1, L1, b2, L2: b1 * np.exp(-L1 * t) + b2 * np.exp(-L2 * t)
bd = (0, [np.inf]*4)
p, pcov = curve_fit(y, t0, y0, bounds=bd)
print('拟合的参数值为:{}'.format(np.round(p, 4)))
拟合的参数值为:[ 3.0229 10.509 2.8726 1.3911]
最终结果: