您好我正在尝试使用mathematica求解线性方程组。我有18个方程和18个未知数,系数矩阵具有满秩。所有条目都是象征性的,因为我试图通过分析来解决问题。不幸的是,Mathematica永远不会停止评估。我准备了一个最小的工作示例:
n = 18
A = Table[AA[i, j], {i, 1, n}, {j, 1, n}];
A // MatrixForm
x = Table[xx[i], {i, 1, n}]
b = Table[bb[i], {i, 1, n}]
MatrixRank[A]
sol = Timing[Solve[{A.x == b}, x, Reals]]
A.x == b //. sol[[2]][[1]] // Simplify
对于n = 2,3,4,...一切都很好。但是当n = 10时......没有任何作用了。 为什么mathematica解决这个问题? 有没有办法解决这个问题?
感谢您的帮助,
安德烈亚斯
答案 0 :(得分:2)
您只需要更多内存:
符号解决方案涉及n + 1个决定因素,这里是对所需内存的估计。
bc[n_] := (A = Det[Array[a, {n, n}]];ByteCount[A])
ListLogPlot[
t = Table[ {n, (n + 1) bc[n] /1024^3 // N} , {n,2,10}], Joined -> True]
外推到n = 18,我们可以看到你只需要大约10 ^ 8千兆字节..
(对于没有得到重点的人来说,这比最大的超级计算机多1000倍)