通过提供解一个线性方程组QMR.
使用计算的函数句柄斧头
和斧头
代替系数矩阵一种
.
创建一个非对称三对角矩阵。预览矩阵。
A =21×2110 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 7 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 1 5 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 1 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 20 0 0 0 0 0 0 0 0 0⋮
因为这个三对角矩阵有一个特殊的结构,你可以表示这个操作斧头
使用函数句柄。什么时候一种
乘以向量,得到的矢量中的大多数元素是零。结果中的非零元素对应于非零三角形元素一种
.
表达方式
成为:
.
得到的向量可以写成三个向量的总和:
=
.
同样,for的表达式
成为:
.
.
在Matlab®中,写一个创建这些向量的函数并将它们添加在一起,从而提供值斧头
或者斧头
,取决于标志输入:
功能y = afun (x,国旗)如果Strcmp(旗帜,“notransp”)%compute a * xy = [0;x(1:20)]...+ ((10: 1:0) ';(1:10)”)。* x...+ 2 * [x(2:结束);0);elseifStrcmp(旗帜,“透明”)%compute'* xy = 2 * [0;x(1:20)]...+ ((10: 1:0) ';(1:10)”)。* x...+ (x(2:结束);0);结尾结尾
(此函数在示例结束时保存为本地功能。)
现在,解线性方程组
通过提供QMR.
使用函数处理来计算斧头
和斧头
.使用宽容1 e-6
和25次迭代。指定
的行和
这样真正的解决方案
是一个矢量。
QMR在迭代19融合到具有相对残差4.7E-07的溶液。
x1 =21×11.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000⋮