python解线性方程组

 A=\begin{bmatrix} 1 & -2 & 1 \\ 0 & 2 & -8 \\ 5 & 0 &-5 \end{bmatrix}, b=\begin{bmatrix} 0\\ 8\\ 10 \end{bmatrix}, Ax=b

import numpy as np

# 定义系数矩阵A和结果矩阵b
#
#     | 1  -2   1 |        | 0  |
# A = | 0   2  -8 |,   b = | 8  |
#     | 5   0  -5 |        | 10 |
#
A = np.array([[1, -2, 1], [0, 2, -8], [5, 0, -5]])
b = np.array([0, 8, 10])

# 使用numpy.linalg.solve求解线性方程组 Ax = b
x = np.linalg.solve(A, b)

print(x)  # 输出x的值,结果为[ 1.  0. -1.]

numpy.linalg.solve() 只能解非奇异矩阵(Nonsingular matrix),也就是满秩的方阵,意味着Ax=b只有一个解。

如果传入一个奇异矩阵(Singular matrix),意味着Ax=b有无穷解或者无解,就会报错

numpy.linalg.LinAlgError: Singular matrix

如果要解奇异矩阵,那么应该用numpy.linalg.svd()方法。

附录:

奇异矩阵_百度百科

奇异矩阵是线性代数的概念,就是该矩阵的秩不是满秩。

首先,看这个矩阵是不是方阵(即行数和列数相等的矩阵,若行数和列数不相等,那就谈不上奇异矩阵和非奇异矩阵)。如是方阵,再看此矩阵的行列式|A|是否等于0,若等于0,称矩阵A为奇异矩阵;若不等于0,称矩阵A为非奇异矩阵。 同时,由|A|≠0可知矩阵A可逆,这样可以得出另外一个重要结论:可逆矩阵就是非奇异矩阵,非奇异矩阵也是可逆矩阵。 如果A为奇异矩阵,则AX=0有无穷解,AX=b有无穷解或者无解。如果A为非奇异矩阵,则AX=0有且只有唯一零解,AX=b有唯一解。

奇异矩阵是线性代数的概念,就是对应的行列式等于0的方阵。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值