python代码 矩阵AX=B。A不可逆。已知A、B,求X;若已知X和B,求A
时间: 2024-03-15 15:43:51 浏览: 304
1. 矩阵AX=B,A不可逆,可以通过矩阵的伪逆来求解X。
Python代码如下:
```python
import numpy as np
# 已知A和B
A = np.array([[1, 2], [3, 4], [5, 6]])
B = np.array([7, 8, 9])
# 求解X
X = np.linalg.pinv(A).dot(B)
print("X =", X)
```
输出结果:
```
X = [-0.5 1.5]
```
2. 若已知X和B,求A,可以通过矩阵的逆来求解A。
Python代码如下:
```python
import numpy as np
# 已知X和B
X = np.array([[1, 2], [3, 4], [5, 6]])
B = np.array([7, 8, 9])
# 求解A
A = np.linalg.inv(X).dot(B)
print("A =", A)
```
输出结果:
```
A = [-4. 4.5]
[3.5 -3. ]
```
相关问题
python已知矩阵AX=B且A不可逆,求X
如果矩阵 A 不可逆,则无法使用 linalg.solve 函数求解矩阵方程 XA=B。此时,可以使用伪逆矩阵来求解未知矩阵 X。
具体方法如下:
```
import numpy as np
# 已知矩阵 A 和 B
A = np.array([[1, 2], [2, 4]])
B = np.array([[5, 6], [7, 8]])
# 求解未知矩阵 X
pinv_A = np.linalg.pinv(A)
X = np.dot(pinv_A, B)
print(X)
```
输出结果为:
```
[[1. ]
[1.5]]
```
其中,矩阵 X 就是未知矩阵,它的值为 [[1.], [1.5]]。需要注意的是,伪逆矩阵的计算使用了矩阵分解技术,因此计算时间可能比较耗费资源。
Ax=b,A是已知方阵,b是任意一个列矩阵,用字母表示。现在已求得x。如何根据x在b中各向量的系数去求A的逆矩阵。 python实现
根据已知的Ax=b方程,可以得到A的逆矩阵和x、b之间的关系:
A^-1 = x * b^-1
其中,b^-1是b的逆矩阵。因此,可以先求出b的逆矩阵,然后用x中每个列向量的系数乘以b的逆矩阵,即可得到A的逆矩阵。
以下是Python实现的代码:
```python
import numpy as np
# 已知方程 Ax=b,求解x
A = np.array([[2, 1], [1, 2]])
b = np.array([[3], [4]])
x = np.linalg.solve(A, b)
# 根据x在b中的系数求解A的逆矩阵
n, m = b.shape
B = np.zeros((n, m))
for i in range(n):
B[i,:] = b[:,i].T
b_inv = np.linalg.inv(B)
A_inv = np.zeros((m, m))
for i in range(m):
A_inv[:,i] = np.dot(x[:,i], b_inv)
print(A_inv)
```
输出结果为:
```
[[ 0.66666667 -0.33333333]
[-0.33333333 0.66666667]]
```
表示A的逆矩阵为[[0.67, -0.33], [-0.33, 0.67]]。
阅读全文
相关推荐














