IanHawke/NumericalMethods 项目解析:线性代数与数值计算基础教程

IanHawke/NumericalMethods 项目解析:线性代数与数值计算基础教程

NumericalMethods Some open material relating to the Southampton Numerical Methods course NumericalMethods 项目地址: https://gitcode.com/gh_mirrors/nu/NumericalMethods

本文基于IanHawke/NumericalMethods项目中的第一个工作表内容,深入讲解线性代数和数值计算的基础知识,包括向量/矩阵范数、条件数计算以及二分法等核心数值方法。

向量范数计算与应用

向量范数是衡量向量"大小"的重要工具,在数值计算中有着广泛应用。常见的三种范数定义如下:

  1. 1-范数(曼哈顿范数):向量元素绝对值之和
  2. 2-范数(欧几里得范数):向量元素平方和的平方根
  3. ∞-范数(最大范数):向量元素绝对值的最大值

以向量v₁ = [1, 3, -1]为例:

  • 1-范数:|1| + |3| + |-1| = 5
  • 2-范数:√(1² + 3² + (-1)²) ≈ 3.3166
  • ∞-范数:max(|1|, |3|, |-1|) = 3

在实际编程中,可以使用NumPy的linalg.norm函数方便地计算各种范数:

import numpy as np
v = np.array([1.0, 3.0, -1.0])
print(np.linalg.norm(v, 1))  # 1-范数
print(np.linalg.norm(v, 2))  # 2-范数
print(np.linalg.norm(v, np.inf))  # ∞-范数

矩阵范数与条件数

矩阵范数是向量范数的推广,用于衡量矩阵的"大小"。特别地:

  1. 矩阵1-范数:列向量的1-范数最大值
  2. 矩阵∞-范数:行向量的1-范数最大值

以矩阵A₁ = [[1, 2], [3, 4]]为例:

  • 1-范数:max(1+3, 2+4) = 6
  • ∞-范数:max(1+2, 3+4) = 7

条件数是矩阵数值稳定性的重要指标,定义为矩阵范数与其逆矩阵范数的乘积:

K(A) = ||A||·||A⁻¹||

条件数越大,矩阵求逆或解线性方程组时对误差越敏感。在NumPy中可直接计算:

A = np.array([[1.0, 2.0], [3.0, 4.0]])
print(np.linalg.cond(A, 1))  # 1-范数条件数
print(np.linalg.cond(A, np.inf))  # ∞-范数条件数

直接法与迭代法对比

解线性方程组的方法可分为两大类:

直接法:通过有限步变换将矩阵化为易解形式(如LU分解、高斯消元)

  • 优点:精确,适合中小规模稠密矩阵
  • 缺点:存储需求大,不适合稀疏矩阵

迭代法:通过迭代逼近解(如Jacobi、Gauss-Seidel)

  • 优点:内存效率高,适合大规模稀疏矩阵
  • 缺点:可能需要很多迭代,收敛性不确定

二分法求根实践

二分法是求解非线性方程f(x)=0的可靠方法,基于连续函数的中值定理。以求解tan(x)-e⁻ˣ=0在[0,1]内的根为例:

def bisection(f, interval, tolerance=1e-10):
    # 实现细节...
    pass

def f(x):
    return np.tan(x) - np.exp(-x)

root = bisection(f, [0, 1])

二分法保证收敛但速度较慢,每次迭代将区间减半,适合作为其他快速方法的初始估计。

数值计算实践建议

  1. 计算条件数应成为解线性方程组前的标准检查步骤
  2. 对于病态矩阵(条件数大),应考虑正则化或特殊算法
  3. 二分法虽然简单,但在工程应用中仍很有价值
  4. 理解不同范数的物理意义有助于选择合适的方法

通过掌握这些基础数值方法,可以为进一步学习更复杂的数值算法奠定坚实基础。

NumericalMethods Some open material relating to the Southampton Numerical Methods course NumericalMethods 项目地址: https://gitcode.com/gh_mirrors/nu/NumericalMethods

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

尚绮令Imogen

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值