gpt4 book ai didi

c - 高斯消元法 - 线性方程矩阵,算法

转载 作者:太空狗 更新时间:2023-10-29 15:30:11 25 4
gpt4 key购买 nike

假设我们有一个 3 行 x 7 列的简单矩阵。矩阵仅包含零 (0) 和 (1),如:

1 0 1 1 1 0 0
0 0 1 1 0 0 0
0 0 1 0 1 1 0

塞纳里奥:如果我们知道每一行中非零的总和,

(第一行4个,第二行2个,第三行3个)(蓝线)

另外,如果我们知道每个列 (1 , 0, 3, 2, 2, 1, 0) 的总和(绿线)

另外,如果我们知道从左上角到右下角 (1,0,1,2,3,0,1,1,0)(红线)逆时针方向的每条对角线的总和

最后我们知道从左下角到右上角的每条对角线的总和 (0,0,2,1,3,2,1,0,0)(黄线)

enter image description here

我的问题是:将这些值作为输入(以及矩阵 3x7 的长度),

4, 2, 3
1, 0, 3, 2, 2, 1, 0
1, 0, 1, 2, 3, 0, 1, 1, 0
0, 0, 2, 1, 3, 2, 1, 0, 0

我们如何绘制第一个矩阵?想了很多之后,我得出的结论是,这是一个包含 3x7 个未知值和一些方程的线性方程组。对吧?

我如何用 C 语言或其他语言编写算法来求解这些方程式?我应该使用像高斯方程这样的方法吗?

如有任何帮助,我们将不胜感激!

最佳答案

从第一列开始。您知道最高值和最低值(来自红色和黄色列表的第一个值)。从绿色列表中的第一个减去这两个的总和,现在您也有中间值。

现在向右工作。

用红色列表中的下一个值减去第一列的中间值,得到第二列的最高值。从黄色列表中的下一个值中减去相同的中间值,您将得到第二列的底部值。从绿色列表中的下一个值中减去这两个值的总和,现在您得到了第二列的中间值。

等等

如果您要对其进行编码,您会发现前两列是特例,这会使代码难看。我建议在左侧使用两个全部为零的“幽灵”列,这样您就可以使用一种方法来确定每列的顶部、底部和中间值。

这也很容易推广。您只需要使用 (#rows)-1 幽灵列。

享受吧。

关于c - 高斯消元法 - 线性方程矩阵,算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9050450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com