用切比雪夫多项式拟合指数函数和调和函数
chebyfit的Python项目详细描述
chebyfit是一个python库,它实现了如下所述的算法:
Analytic solutions to modelling exponential and harmonic functions using Chebyshev polynomials: fitting frequency-domain lifetime images with photobleaching. G C Malachowski, R M Clegg, and G I Redford. J Microsc. 2007; 228(3): 282-295. doi: 10.1111/j.1365-2818.2007.01846.x
Authors: | Christoph Gohlke |
---|---|
Organization: | Laboratory for Fluorescence Dynamics. University of California, Irvine |
License: | 3-clause BSD |
Version: | 2019.4.22 |
修订版
- 2019.4.22
- 修复设置要求。
- 2019.1.28
- 将模块移到chebyfit包中。 为chebyfit c扩展模块添加python包装。 修复chebyfit.c.中的静态分析问题。
示例
拟合两个指数衰减函数:
>>> deltat = 0.5 >>> t = numpy.arange(0, 128, deltat) >>> data = 1.1 + 2.2*numpy.exp(-t/33.3) + 4.4*numpy.exp(-t/55.5) >>> params, fitted = fit_exponentials(data, numexps=2, deltat=deltat) >>> numpy.allclose(data, fitted) True >>> params['offset'] array([ 1.1]) >>> params['amplitude'] array([[ 4.4, 2.2]]) >>> params['rate'] array([[ 55.5, 33.3]])
用指数衰减拟合调和函数:
>>> tt = t * (2*math.pi / (t[-1] + deltat)) >>> data = 1.1 + numpy.exp(-t/22.2) * (3.3 - 4.4*numpy.sin(tt) ... + 5.5*numpy.cos(tt)) >>> params, fitted = fit_harmonic_decay(data, deltat=0.5) >>> numpy.allclose(data, fitted) True >>> params['offset'] array([ 1.1]) >>> params['rate'] array([ 22.2]) >>> params['amplitude'] array([[ 3.3, 4.4, 5.5]])
拟合实验时域图像:
>>> data = numpy.fromfile('test.b&h', dtype='float32').reshape((256, 256, 256)) >>> data = data[64:64+64] >>> params, fitted = fit_exponentials(data, numexps=1, numcoef=16, axis=0) >>> numpy.allclose(data.sum(axis=0), fitted.sum(axis=0)) True