在 Octave 中,如何指定矩阵方程的解应该超过整数?

计算科学 线性代数 矩阵 八度
2021-12-08 18:30:17

在 Octave 中,如何指定矩阵方程的解应该超过整数?即,给定矩阵,向量找到向量使得它的所有条目都是整数。虽然我主要关注 Octave,但您的答案可能会考虑 Wolfram|Alpha,或任何其他可提供免费在线界面的软件。如果讨论 Wolfram|Alpha 或其他系统,还请解释如何加载当前为行、列、值格式的稀疏矩阵(即,我希望进行最少的格式转换)。AxbAx=bx=A1b

A,稀疏格式(行、列、值):

1 1 1
2 1 1
3 2 1
4 3 1
5 3 1
6 4 1
7 4 1
8 4 1
9 5 1
10 5 1
11 6 1
12 6 1
13 7 1
14 9 1
15 9 1
16 10 1
17 11 1
18 12 1
19 12 1
20 13 1
21 13 1
22 14 1
23 14 1
24 14 1
25 15 1
26 15 1
27 16 1
28 17 1
29 17 1
30 17 1
31 18 1
32 19 1
33 20 1
34 20 1

系数:

30
27
26
26
24
25
25
20
17
21
13
14
17
18
17
13
14
13
12
12
11
6
2
3
3
2
4
2
3
0
2
1
4
4
1个回答

如果只有一个解,它要么是整数,要么不是整数。AAx=b

如果不是满秩的,这个问题开始看起来像是在零空间或整数规划中搜索最小公倍数。A

这不是像 Octave 中的一般数值线性代数求解器能够自行完成的事情。如果您的问题很大,您可以尝试将其作为可行性问题输入到整数规划求解器中,例如lpsolveCOIN-CBC如果不是那么大或接近满秩,那么您可以尝试特征值分解并在零空间中搜索最近的整数集。A