线性代数之线性方程组

目录

线性方程组

1. 解的个数

齐次线性方程组:

非齐次线性方程组:

2. 齐次线性方程组的解

3. 非齐次线性方程组的解

4. 使用 Python 和 NumPy 求解线性方程组

示例代码

齐次线性方程组

非齐次线性方程组

示例结果

齐次线性方程组

非齐次线性方程组


线性方程组

1. 解的个数
  • 齐次线性方程组
    • 只有零解:当系数矩阵的秩等于未知量的个数 𝑛n 时,即 rank(𝐴)=𝑛rank(A)=n。
    • 有非零解:当系数矩阵的秩小于未知量的个数 𝑛n 时,即 rank(𝐴)<𝑛rank(A)<n。
  • 非齐次线性方程组
    • 无解:当增广矩阵的秩不等于系数矩阵的秩,即 rank([𝐴∣𝑏])≠rank(𝐴)rank([A∣b])=rank(A)。
    • 有解:
      • 唯一解:当增广矩阵的秩等于系数矩阵的秩且等于未知量的个数 𝑛n,即 rank([𝐴∣𝑏])=rank(𝐴)=𝑛rank([A∣b])=rank(A)=n。
      • 无穷多解:当增广矩阵的秩等于系数矩阵的秩但小于未知量的个数 𝑛n,即 rank([𝐴∣𝑏])=rank(𝐴)<𝑛rank([A∣b])=rank(A)<n。
2. 齐次线性方程组的解
  • 基础解系:齐次线性方程组的基础解系是指一组线性无关的解向量,使得所有解都能表示为这些向量的线性组合。
  • 求解步骤
    1. 化简系数矩阵:将系数矩阵 𝐴A 化简为行阶梯形或行最简形。
    2. 列出方程:根据化简后的矩阵列出相应的方程。
    3. 确定自由未知量:找出方程组中的自由未知量(即那些不是其他未知量表达式的未知量)。
    4. 令自由未知量为线性无关组:设自由未知量为任意实数,并保证它们之间线性无关。
    5. 得到基础解系:利用自由未知量表达出其他未知量的解,从而得到基础解系。
    6. 写出一般解:将基础解系的解向量按自由未知量的不同取值线性组合,得到方程组的一般解。
3. 非齐次线性方程组的解
  • 解的结构:非齐次线性方程组的解集可以表示为一个特解加上齐次方程组的所有解。
  • 求解步骤
    1. 求特解:通过数值方法或符号计算求出一个特解 𝑥𝑝xp​。
    2. 求齐次方程组的基础解系:求出对应的齐次方程组 𝐴𝑥=0Ax=0 的基础解系。
    3. 写出一般解:一般解可以表示为 𝑥=𝑥𝑝+𝑐1𝑣1+𝑐2𝑣2+…+𝑐𝑘𝑣𝑘x=xp​+c1​v1​+c2​v2​+…+ck​vk​,其中 𝑣𝑖vi​ 是齐次方程组的基础解系中的解向量。
4. 使用 Python 和 NumPy 求解线性方程组
  • 齐次线性方程组

    • 通常用于求解特征值问题,例如求解特征向量。
    • 使用 numpy.linalg.eig() 函数求解特征值和特征向量。
  • 非齐次线性方程组

    • 用于确定未知量的值。
    • 使用 numpy.linalg.solve() 函数求解未知量。

下面分别给出齐次和非齐次线性方程组的例子,我们将使用 Python 和 NumPy 来求解这些例子。

示例代码

齐次线性方程组
import numpy as np

# 定义系数矩阵 A
A = np.array([[3, 1], [1, 3]])

# 使用 numpy.linalg.eig() 求解特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)

print("Eigenvalues:", eigenvalues)
print("Eigenvectors:", eigenvectors)
非齐次线性方程组
import numpy as np

# 定义系数矩阵 A 和右侧向量 b
A = np.array([[2, -1, 0], [-1, 2, -1], [0, -1, 2]])
b = np.array([1, 0, -1])
6
# 使用 numpy.linalg.solve() 求解未知量
x = np.linalg.solve(A, b)

print("Solution x:", x)

调用过程

import numpy as np
# 齐次线性方程组示例
# 定义系数矩阵 A
A_homogeneous = np.array([[3, 1], [1, 3]])

# 使用 numpy.linalg.eig() 求解特征值和特征向量
eigenvalues_homogeneous, eigenvectors_homogeneous = np.linalg.eig(A_homogeneous)

# 非齐次线性方程组示例
# 定义系数矩阵 A 和右侧向量 b
A_inhomogeneous = np.array([[2, -1, 0], [-1, 2, -1], [0, -1, 2]])
b_inhomogeneous = np.array([1, 0, -1])
# 使用 numpy.linalg.solve() 求解未知量
x_inhomogeneous = np.linalg.solve(A_inhomogeneous, b_inhomogeneous)
eigenvalues_homogeneous, eigenvectors_homogeneous, x_inhomogeneous

调用结果

 
(array([4., 2.]),
array([[ 0.70710678, -0.70710678],
       [ 0.70710678,  0.70710678]]),
array([ 0.5,  0. , -0.5]))

示例结果

齐次线性方程组
  • 特征值:
     
    Eigenvalues: [4. 2.]
  • 特征向量:
     
    Eigenvectors: [[ 0.70710678 -0.70710678]
                   [ 0.70710678  0.70710678]]
非齐次线性方程组
  • :
    Solution x: [ 0.5  0.  -0.5]

从上面的结果可以看出:

  • 对于齐次线性方程组,我们得到了两个特征值 4 和 2,以及对应的特征向量。特征向量代表了齐次方程组的解向量。
  • 对于非齐次线性方程组,我们得到了未知量 𝑥x 的解为 [0.5,0,−0.5][0.5,0,−0.5]。
  • 22
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ctrl+CV九段手

谢谢大佬的赏识!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值