Faddeeva包:复杂的错误函数

c++ MEX插件计算复杂参数的错误函数(erf, erfc, erfi, erfcx, Faddeeva,…

3.1 k下载

更新12月17日

查看许可协议

编译插件(MEX文件)的c++源代码,用于计算复杂参数的各种错误函数:

** Faddeeva_erf(z)——错误函数
** Faddeeva_erfc(z) = 1 - erf(z)——互补误差函数
** Faddeeva_erfi(z) = -i erf(iz)——虚误差函数
** Faddeeva_erfcx(z) = exp(z^2) erfc(z)——缩放的互补误差函数
** Faddeeva_w(z) = exp(-z^2) erfc(-iz)——Faddeeva函数
** Faddeeva_Dawson(z) = 0.5根号(pi) exp(-z^2) erfi(z)—道森函数

从Faddeeva函数,我们也可以得到Voigt函数和其他相关函数。

假设您有一个c++编译器(并在MATLAB中使用mex -setup配置了它),通过运行包含的Faddeeva_build进行编译。m MATLAB脚本:

Faddeeva_build

所有函数都使用如下形式:
w = Faddeeva_w(z)
或Faddeeva_w(z, relerr),其中relerr是期望的相对误差(默认:机器精度)。Z可以是复数或实数的数组或矩阵。

此代码也可以从

http://ab-initio.mit.edu/Faddeeva

以及文档和其他版本。正如源代码中所描述的,该实现使用Faddeeva函数的算法组合:大|z|的连续分式展开[类似于g.p.m. Poppe和c.m.j. Wijers,“复杂误差函数的更有效计算”,ACM Trans。数学。软。16 (1),pp. 38-46(1990)],和一个完全不同的算法较小的|z| [Mofreh R. Zaghloul和Ahmed N. Ali,“算法916:计算Faddeyeva和Voigt函数,”ACM翻译。数学。软。38(2),15(2011)。给定Faddeeva函数,我们就可以计算其他的误差函数,尽管我们必须切换到泰勒展开,并在复平面的某些区域使用其他技巧,以避免抵消错误或其他浮点问题。

引用作为

史蒂文·g·约翰逊(2023年)。Faddeeva包:复杂的错误函数(//www.tianjin-qmedu.com/matlabcentral/fileexchange/38787-faddeeva-package-complex-error-functions), MATLAB中央文件交换。检索

MATLAB版本兼容性
使用R2012a创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux
确认

启发:Voigt模型拟合

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!
版本 发表 发布说明
1.5.0.0

可移植性修复,精度略有提高

1.4.0.0

现在包含了所有错误函数的独立插件。

1.3.0.0

注意如何使用Faddeeva函数计算erfi

1.1.0.0

提高Re[w(z)]本身采取的准确性。

1.0.0.0