CRAN 任务视图:数值数学

维护者Hans W. Borchers, Robin Hankin, Serguei Sokol
联系方式hwb at mailbox.org
版本2023-08-18
网址https://CRAN.R-project.org/view=NumericalMathematics
源代码https://github.com/cran-task-views/NumericalMathematics/
贡献欢迎对本任务视图提出建议和改进,可以通过 GitHub 上的问题或拉取请求,或通过电子邮件发送给维护者地址。有关更多详细信息,请参阅 贡献指南
引用Hans W. Borchers, Robin Hankin, Serguei Sokol (2023). CRAN 任务视图:数值数学。版本 2023-08-18。网址 https://CRAN.R-project.org/view=NumericalMathematics。
安装可以使用 ctv 包自动安装本任务视图中的包。例如,ctv::install.views("NumericalMathematics", coreOnly = TRUE) 安装所有核心包,或 ctv::update.views("NumericalMathematics") 安装所有尚未安装和更新的包。有关更多详细信息,请参阅 CRAN 任务视图计划

本数值数学任务视图列出了 R 包和函数,这些包和函数可用于解决线性代数和分析中的数值问题。它表明 R 是一个可行的计算环境,用于实现和应用数值方法,也适用于统计领域之外。

本任务视图不会涵盖微分方程、优化问题和求解器,或对时间序列进行操作的包和函数,因为所有这些主题都在相应的任务视图中进行了广泛的处理,例如 DifferentialEquationsOptimizationTimeSeries。所有这些任务视图共同将提供 R 在数值数学领域中可用的内容的良好选择。HighPerformanceComputing 任务视图及其许多关于并行计算的链接也可能令人感兴趣。

内容

此任务视图旨在提供对该主题的概述。如果缺少某些包或某些数值数学主题需要更详细地处理,请联系维护者,可以通过电子邮件或在上面链接的 GitHub 存储库中提交问题或拉取请求。

数值线性代数

由于统计在很大程度上基于线性代数,因此 R 中存在许多数值线性代数例程,有些是隐式的。显式可用函数的示例包括向量和矩阵运算、矩阵(QR)分解、求解线性方程、特征值/特征向量、奇异值分解或最小二乘逼近。

特殊函数

R 中存在许多特殊的数学函数,尤其是对数和指数、三角函数和双曲函数,或贝塞尔函数和伽马函数。贡献包中提供了更多特殊的函数。

多项式

基本 R 中的函数 polyroot() 基于 Jenkins-Traub 算法确定多项式的所有零点。线性回归函数 lm() 在模型公式中使用 poly()(使用选项 raw = TRUE)时可以执行多项式拟合。

微分和积分

D()deriv() 在基础 R 中用于符号计算简单表达式的导数。函数 integrate() 实现了一种在 R 中数值积分单变量函数的方法。它应用自适应 Gauss-Kronrod 求积法,并在一定程度上可以处理奇点和无界域。

插值和逼近

基础 R 提供了用于常数和线性插值的函数 approx(),以及用于三次 (厄米特) 样条插值的 spline(),而 smooth.spline() 执行三次样条逼近。基础包 splines 在函数 periodicSpline() 中创建周期性插值样条。

求根和不动点

uniroot()(实现 Brent-Decker 算法)是 R 中用于查找单变量函数根的基本例程。在几个贡献的包中都有二分算法的实现。对于更高精度的根查找,在多精度包 Rmpfr 中有函数 unirootR()。有关查找单变量和多变量函数根的信息,请参阅以下包

离散数学和数论

用于计算数论的函数并不多。请注意,双精度整数可以精确地表示到 2^53 - 1,超过该限制,需要使用多精度包,例如 gmp,见下文。

多精度和符号计算

Python 和 SAGE 接口

Python 通过其模块“NumPy”、“SciPy”、“Matplotlib”、“SymPy”和“pandas”,提供了完善且高效的数值和图形工具。

SageMath 是一个基于 Python 的开源数学系统,允许运行 R 函数,但也提供对 Maxima、GAP、FLINT 和许多其他数学程序等系统的访问。SageMath 可以通过 CoCalc 上的 Web 界面免费使用。

MATLAB Octave Julia 和其他接口

当解决复杂的数值问题时,与数值计算软件(如 MATLAB(商业)或 Octave(免费))的接口将非常重要。不幸的是,目前还没有包允许从 R 内部调用 Octave 函数。

Julia 是一种“用于数值计算的高级、高性能动态编程语言”,这使得它对 R 中的优化问题和其他要求苛刻的科学计算很有吸引力。

可以通过“rjava”或“rscala”接口使用 Java 数学函数。然后包 commonsMath 允许调用 Apache Commons Mathematics Library 的 Java JAR 文件,这是一个专门用于数值、优化和微分方程各个方面的库。

请注意,MATLAB、Maple 或 Mathematica 等商业程序具有调用 R 函数的功能。

CRAN 包

核心cubatureMatrixnumDerivPolynomF.
常规ADPF, akima, arrangements, BB, Bessel, bignum, Brobdingnag, bspline, calculus, caracas, Carlson, clifford, combinat, commonsMath, conicfit, contfrac, contFracR, daarem, Deriv, dual, elliptic, expint, expm, fastGHQuad, feather, features, FixedPoint, fourierin, freealg, freegroup, gaussquad, geigen, gmp, GramQuad, gsl, hypergeo, HypergeoMat, interp, irlba, itp, jack, jacobi, jordan, JuliaCall, JuliaConnectoR, ktsolve, lamW, logOfGamma, m2r, magic, MASS, matlab, matlib, matrixcalc, mbend, minimaxApprox, MonoPoly, mpoly, multipol, mvp, mvQuad, nleqslv, numbers, onion, optR, orthopolynom, Pade, partitions, permutations, polyCub, polyMatrix, polynom, pracma, primefactr, primes, PRIMME, qspray, R.matlab, rARPACK, Rcpp, RcppAlgos, RcppArmadillo, RcppBigIntAlgos, RcppEigen, RcppGSL, reticulate, rim, Rlinsolve, rmatio, Rmpfr, rmumps, RootsExtremaInflections, rootSolve, Rserve, RSpectra, Ryacas, sanic, schumaker, signal, SimplicialCubature, SparseGrid, SparseM, SphericalCubature, splines2, spray, SQUAREM, statmod, stinepack, svd, symengine, tripack, turboEM, VeryLargeIntegers, weyl, XR, XRJulia, XRPython, Zseq.

相关链接

其他资源