用符号表达式求解线性方程组

时间:2014-09-19 10:33:30

标签: wolfram-mathematica symbolic-math equation-solving linear-equation

您好我正在尝试使用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解决这个问题? 有没有办法解决这个问题?

感谢您的帮助,

安德烈亚斯

1 个答案:

答案 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]

enter image description here

外推到n = 18,我们可以看到你只需要大约10 ^ 8千兆字节..

(对于没有得到重点的人来说,这比最大的超级计算机多1000倍)