Fortran Coder

标题: 这各矩阵变换是怎么做的呢? [打印本页]

作者: 静待花开    时间: 2023-9-22 19:50
标题: 这各矩阵变换是怎么做的呢?
遇到解线方程组的问题,需要编码解决。算法里面提到把(2-16)式这样的矩阵,用消元法变成(2-17)式这样的,有点头疼,线性代数学得不怎么样,请教高手,这种变化怎么做到的,只查到需要用到初等变换,但是怎么个变换,有点儿想不明白。请高手指点。还有就是,lapack和blas是否有这样的函数呢?坐等高手



作者: li913    时间: 2023-9-23 12:21
比如计算第一行:先和第三行,消掉a13,;和第4行,消掉a14;和第n行,消掉a1n。
计算第二行:和第一行消掉a22,和第4行消掉a24......
作者: 静待花开    时间: 2023-9-23 15:12
li913 发表于 2023-9-23 12:21
比如计算第一行:先和第三行,消掉a13,;和第4行,消掉a14;和第n行,消掉a1n。
计算第二行:和第一行消掉a ...

非常感谢您的回答。
但您可能没有注意到,矩阵是一个n行,n+3列的矩阵。
用第3行消掉a13,会引入a14,a15,它们变为了非0
用第4行消掉a14,会引入a15,a16,它们变为了非0。
用第5行消掉a15,会引入a16,a17,它们变为了非0。
用第6行消掉a16,会引入a17,a18,它们变为了非0。
....
用第n-1行消掉a1_(n-1),会引入a1_(n),a1_(n+1),它们变为了非0。
用第n行消掉a1_(n),会引入a1_(n+1), a1_(n+2),它们变为了非0。

最后,第1行变成了包含a11,a12,a1_(n+1), a1_(n+2), a1_(n+3)。多了非零的a1_(n+1),与(2-17)式不一样。
作者: li913    时间: 2023-9-24 10:19
静待花开 发表于 2023-9-23 15:12
非常感谢您的回答。
但您可能没有注意到,矩阵是一个n行,n+3列的矩阵。
用第3行消掉a13,会引入a14,a15 ...

是的,第一个矩阵不能直接得到第二个,因为缺少边界条件。
作者: 静待花开    时间: 2024-1-7 19:02
li913 发表于 2023-9-24 10:19
是的,第一个矩阵不能直接得到第二个,因为缺少边界条件。

是的,我也这么认为




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2