当前位置: 首页 > news >正文

数值计算-例题

线性方程组的直接解法

A. 消元/分解类(直接法)

  1. 高斯消元(Gaussian Elimination)

    • 本质:前向消元 + 回代;等价于做 LU 分解。

    • 主元策略

      • 不选主元:快,但可能不稳(遇零/极小主元会炸)。

      • 部分选主元(默认推荐):每列选最大者换行,稳且代价低;得到 (PA=LU)

      • 完全选主元:行列都换,更稳但更慢。

    • 适用:通用方阵。

    • Pythonnp.linalg.solve(A,b)(内部即 LU+部分主元)。

  2. LU 分解(带主元)

    • 本质:(PA=LU);一次分解,多次前/回代解不同右端。

    • 适用:同一 (A) 多个 (b)。

    • 稳定性:部分选主元稳健。

    • Python

      • 一次性:np.linalg.solve(A,b)

      • 复用版:scipy.linalg.lu_factor(A)scipy.linalg.lu_solve((lu,piv), b)

      • 教学拆解:scipy.linalg.lu(A) + solve_triangular(...)

  3. Cholesky 分解(A=LL^\top

    • 本质:SPD 矩阵的“平方根”分解;存储/计算约为 LU 的一半。

    • 适用:**对称正定(SPD)**最优选择,快且稳;不需主元。

    • Pythonscipy.linalg.cho_factor/cho_solvenp.linalg.cholesky + solve_triangular

  4. LDLᵀ 分解

    • 本质:对称矩阵通用分解 (A=LDL^\top);SPD 时 (D) 对角元全正,可转为 Cholesky。

    • 适用:对称(含不定)问题;不定时常配 Bunch–Kaufman 枢轴。

    • Pythonscipy.linalg.ldl(较新版本提供)+ solve_triangular

  5. QR 分解 / 最小二乘(LS)

    • 本质:(A=QR),解超定或病态方程的 LS;比 LU 更适合最小二乘。

    • 适用:超定系统、拟合、近奇异下的 LS。

    • Pythonnp.linalg.lstsq(A,b),或 scipy.linalg.qr 系列


B. 迭代/预条件

  1. 共轭梯度 CG / 预条件共轭梯度 PCG

    • 本质:迭代法;对 SPD 大规模稀疏矩阵高效。

    • 预条件:常配 不完全 Cholesky (IC) 等,显著加速。

    • 适用:超大规模 SPD(直接法成本/内存高时)。

    • Pythonscipy.sparse.linalg.cg(如需)


C. 数值策略与配套概念

  • 主元选择(Pivoting)

    • 不选主元:可能不稳;

    • 部分选主元(工程默认):稳健且便宜;

    • 完全选主元:最稳更慢。
      → 我们在第 7、8 题实际都用“带部分选主元的高斯消元”。

  • 条件数 (\kappa(A))

    • 定义:\kappa_p(A)=|A|_p|A^{-1}|_p(用同一向量范数诱导的矩阵范数)。

    • 解释:误差放大倍数;(\kappa) 越大越病态。

    • Hilbert 矩阵:\kappa(H_n)\sim c,4^n/\sqrt{n})—— 随 (n) 指数级爆炸

  • 误差 vs 残差

    • 残差小((|b-A\hat x|) 小)≠ 误差小;病态矩阵可使小残差对应大求解误差。


D. 何时选用哪种方法

  • SPDCholeskycho_factor/cho_solve)> LU。

  • 一般方阵LU(部分主元)solvelu_factor/lu_solve)。

  • 最小二乘/超定/近奇异QR / lstsq

  • 同一 (A) 多 RHS:先分解(LU/Cholesky),多次前/回代。

  • 大稀疏 SPDCG/PCG

  • 极病态(如 Hilbert):任何双精度直接法都会失准;若必须高精度,考虑多重精度库或正则化/重缩放/预条件。

例题

这里与原来LU分解的区别是,可以交换主元;保存P矩阵的目的就是为了记录交换行的情况

继续求解LU示例

http://www.dtcms.com/a/491229.html

相关文章:

  • 合肥市建设通网站十堰网站建设哪家好
  • 拼车平台网站开发提高网站打开速度
  • C++ 继承(1)
  • uniapp——配置鸿蒙环境,进行真机调试
  • 鸿蒙仓颉:如何自定义带Tag的日志打印信息
  • 带你了解STM32:RTC实时时钟(第一部分)
  • 前端 JavaScript 面试题大全(含答案及解析)
  • 网站页面设计报告wordpress 门户插件
  • 国外营销型网站建设容城网站建设
  • 将.idea取消git托管
  • YOLOv1和YOLOv2目标检测算法总结
  • 系统移植篇之uboot-4:UART
  • net和cn哪个做网站好wordpress企业主题 视频
  • 石家庄网站排名优化360网站建设服务
  • 苍穹外卖-购物车 前端修改(小程序主页与购物车模块显示不一致)
  • 聊聊 Unity(小白专享、C# 小程序 之 小算盘、计算器)
  • 江苏金安建设公司网站在线设计平台官网
  • 专业网站建设公司哪里济南兴田德润什么活动电子商务网站的整个建设流程
  • 【2025年湖南省赛misc复盘】
  • 北京建设教育协会官方网站做产品推广得网站
  • 牙刮匙与牙周治疗疗效的相关性分析
  • 三星XR头显发布会正式敲定,苹果/Meta/微美全息竞逐AR底层核心卡位“军备竞赛”
  • 【C++进阶系列】:类型转换和IO流
  • 卡板技术支持 东莞网站建设动态设计是什么意思
  • 宠物服务平台(程序+文档)
  • Maven再次认识
  • 【STM32项目开源】基于STM32的智能厨房环境监控系统
  • 策略模式详情
  • 省级网站 开发建设 资质企业员工培训课程
  • VS Code settings.json配置(终端篇)