Python中与R语言solve()函数功能等效的函数是什么
Python中与R语言
solve()等效的函数 和R中求解线性方程组a*x = b的solve(a, b)功能完全匹配的是NumPy库提供的numpy.linalg.solve()函数。
对应使用规则
- 传入形状为
(M, M)的可逆方阵a(你提到的协方差矩阵只要是满秩可逆的就可以直接传入)、形状匹配的右端项b(长度为M的一维数组,或者形状为(M, N)的二维矩阵),函数会直接返回方程组的解x,计算逻辑和返回结果规则与R语言的solve(a, b)完全一致。 - 注意R语言中如果调用
solve(a)不传入b参数,默认返回矩阵a的逆矩阵,这个单参数求逆的场景对应Python里的numpy.linalg.inv(a)函数,不要和求解方程组的用法混淆。
简单用法示例
import numpy as np # 构造示例系数矩阵a a = np.array([[2, 1], [1, 1]]) # 构造示例右端项b b = np.array([3, 2]) # 求解线性方程组a*x = b x = np.linalg.solve(a, b)
运行上述代码得到的x为array([1., 1.]),和R中运行solve(matrix(c(2,1,1,1), nrow=2), c(3,2))得到的结果完全一致。
注意:两个函数都要求传入的系数矩阵
a是满秩可逆方阵,如果传入奇异矩阵会直接抛出计算错误。
内容的提问来源于stack exchange,提问作者Jasper
相关产品推荐
相关产品推荐

