diag对角矩阵_矩阵的行列式的求法

diag对角矩阵_矩阵的行列式的求法做三次样条曲线时,需要解三对角矩阵(TridiagonalMatrices)。常用解法为ThomasAlgorithm,又叫Thetridiagonalmatrixalgorithm(TDMA)。它是一种基于高斯消元法的算法,分为两个阶段:向前消元forwardelimination

大家好,欢迎来到IT知识分享网。

做三次样条曲线时,需要解三对角矩阵(Tridiagonal Matrices)。常用解法为Thomas Algorithm,又叫The tridiagonal matrix algorithm (TDMA)。它是一种基于高斯消元法的算法, 分为两个阶段:向前消元forward elimination和回代backward substitution。本文以一个6乘6矩阵为例,介绍一下使用TDMA的求解过程。

1.范例求解

diag对角矩阵_矩阵的行列式的求法

步骤1: 将矩阵变为上三角矩阵

首先要把上面公式中的系数矩阵变为一个上三角矩阵。

第一行:

diag对角矩阵_矩阵的行列式的求法

将上式除以b1:

diag对角矩阵_矩阵的行列式的求法

可写作:

diag对角矩阵_矩阵的行列式的求法

所以矩阵方程可写为:

diag对角矩阵_矩阵的行列式的求法

第二行:

diag对角矩阵_矩阵的行列式的求法

将变换后的第一行乘以a2,再与第二行相减,即可消去x1,得:

diag对角矩阵_矩阵的行列式的求法

所以新的矩阵方程为:

diag对角矩阵_矩阵的行列式的求法

同理可推,

第三行:

diag对角矩阵_矩阵的行列式的求法

第四行:

diag对角矩阵_矩阵的行列式的求法

第五行:

diag对角矩阵_矩阵的行列式的求法

第六行:

diag对角矩阵_矩阵的行列式的求法

最后得到新的上三角矩阵公式为:

diag对角矩阵_矩阵的行列式的求法

步骤2:求解

x逆序可以求出,如下:

diag对角矩阵_矩阵的行列式的求法

diag对角矩阵_矩阵的行列式的求法

diag对角矩阵_矩阵的行列式的求法

diag对角矩阵_矩阵的行列式的求法

diag对角矩阵_矩阵的行列式的求法

diag对角矩阵_矩阵的行列式的求法

2. 一般性公式:

diag对角矩阵_矩阵的行列式的求法

diag对角矩阵_矩阵的行列式的求法

diag对角矩阵_矩阵的行列式的求法

diag对角矩阵_矩阵的行列式的求法

注意:

使用TDMA求解,系数矩阵需时diagonally dominant, 即:

diag对角矩阵_矩阵的行列式的求法

3. 实现代码(C语言)

void tdma(float x[], const size_t N, const float a[], const float b[], float c[]) 
{
        size_t n;
 
        c[0] = c[0] / b[0];
        x[0] = x[0] / b[0];

        for (n = 1; n < N; n++) {
                float m = 1.0f / (b[n] - a[n] * c[n - 1]);
                c[n] = c[n] * m;
                x[n] = (x[n] - a[n] * x[n - 1]) * m;
        }
 
        for (n = N - 1; n-- > 0; )
                x[n] = x[n] - c[n] * x[n + 1];
}

 

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/28153.html

(0)
上一篇 2023-09-29 10:15
下一篇 2023-10-03 18:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信