solve
位于 base
包(package)。 说明
此通用函数可求解方程 a %*% x = b
得到 x
,其中 b
可以是向量或矩阵。
用法
solve(a, b, ...)
## Default S3 method:
solve(a, b, tol, LINPACK = FALSE, ...)
参数
a |
包含线性系统系数的方数值或复矩阵。逻辑矩阵被强制转换为数字。 |
b |
给出线性系统右侧的数值或复数向量或矩阵。如果丢失, |
tol |
检测 |
LINPACK |
合乎逻辑的。失效并出现错误。 |
... |
传递给其他方法或从其他方法传递的进一步参数 |
细节
a
或 b
可能很复杂,但这使用双复数算术,可能并非在所有平台上都可用。
结果的行名称和列名称分别取自a
和b
的列名称。如果 b
丢失,则结果的列名称是 a
的行名称。不检查 a
的列名称是否与 b
的行名称匹配。
为了向后兼容,a
可以是(真正的)QR 分解,尽管在这种情况下应该调用 qr.solve
。 qr.solve
可以处理非方形系统。
底层 LAPACK 代码的不成功结果将导致错误,并给出正错误代码:这些只能通过详细研究 FORTRAN 代码来解释。
如果 a
和/或 b
包含缺失、NaN
或无限值,会发生什么情况取决于平台,包括正在使用的 LAPACK 版本。
tol
是(估计的 1-范数)‘倒数条件数’的容差:如果 tol <= 0
则跳过检查。
由于历史原因,默认方法接受 a
作为类 "qr"
的对象(带有警告)并将其传递给 solve.qr
。
例子
hilbert <- function(n) { i <- 1:n; 1 / outer(i - 1, i, `+`) }
h8 <- hilbert(8); h8
sh8 <- solve(h8)
round(sh8 %*% h8, 3)
A <- hilbert(4)
A[] <- as.complex(A)
## might not be supported on all platforms
try(solve(A))
来源
默认方法是 LAPACK 例程 DGESV
和 ZGESV
的接口。
LAPACK 来自https://netlib.org/lapack/。
参考
Anderson. E. and ten others (1999)
LAPACK Users' Guide. Third Edition. SIAM.
Available on-line at
https://netlib.org/lapack/lug/lapack_lug.html.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
solve.qr
用于 qr
方法,chol2inv
用于从 Cholesky 因子反转 backsolve
、 qr.solve
。
相关用法
- R source 从文件、连接或表达式中读取 R 代码
- R sort 对向量进行排序或排序
- R socketSelect 等待套接字连接
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R search 给出 R 对象的搜索路径
- R scan 读取数据值
- R sprintf 使用 C 风格字符串格式化命令
- R stop 停止函数执行
- R sign 标志函数
- R svd 矩阵的奇异值分解
- R strtoi 将字符串转换为整数
- R sQuote 引用文字
- R switch 选择替代方案列表之一
- R substitute 替换和引用表达式
- R strrep 重复字符向量的元素
- R split 分组并重新集合
- R slice.index 数组中的切片索引
- R standardGeneric 形式化方法系统 – 调度 S4 方法
- R sequence 创建序列向量
- R startsWith 字符串是否以另一个字符串开头或结尾?
- R system.file 查找 R 系统文件的名称
- R sample 随机样本和排列
- R strwrap 将字符串换行以设置段落格式
- R seek 重新定位连接的函数
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Solve a System of Equations。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。