计算科学与工程 学习笔记 Au=b

这里是MIT 18.085 computational science and engineering的学习笔记

LEC 3 介绍了解方程 中的unknowns 的三种方法:

  1. Matlab中的backlash

  2. 针对sparse matrix, reorder rows, and do elimination. 变成对角阵或者三角阵之后,就变得简单了。

  3. 针对大规模的对称矩阵,使用conjugate gradient方法,也称作multigrid(多重网格),incomplete LU。 不了解

下面重点讲Matlab中的backlash算力: 实际问题中,经常会遇到需要解 ,甚至更多的情况,例如设计问题中,尝试给不同的设计参数后的系统响应如何?

  • 如果使用消元法,意味着每一个方程都需要做一遍消元,效率太低了

  • 如果使用 的方法,会有以下问题

    1. 不容易获得,例如当A的size是矩形的时候

    2. 可能A本身是稀疏矩阵或者对角阵,A的逆矩阵却是dense

    3. A的逆矩阵是dense的时候, 的乘法操作takes long

  • Matlab的实现方式是: 将 右侧的 看作是系统的输入/激励,未知量 看作是系统的响应。由于A矩阵是constant,意味着系统是线性时不变的。假设我们可以获得每个独立impulse输入对应的响应,当输入是多个impulse的线性组合,那么 也是每个独立impulse产生的响应的线性组合。 假设 是一个3x3矩阵,对应有3个独立的impulses,分别是 ,它们对应的系统响应为 . 由于 组成的block matrix 是单位矩阵,那么 组成的block matrix 应当是 . 如何获得 ?对block matrix [A, I]做消元,当A矩阵消元变成I的时候,对应地,右侧由I变成

No comment found.

Add a comment

You must log in to post a comment.