如何在Linux shell中求解线性系统?
有人知道Linux命令从标准输入读取线性方程组,并将解(如果存在)写入标准输出吗 我想这样做:如何在Linux shell中求解线性系统?,linux,shell,linear-algebra,equations,Linux,Shell,Linear Algebra,Equations,有人知道Linux命令从标准输入读取线性方程组,并将解(如果存在)写入标准输出吗 我想这样做: generate_system | solve_system 您可能可以使用package编写自己的此类命令。这是一个老问题,但在我搜索这个问题时出现了,所以我在这里添加了一个答案 我使用了maxima的solve函数。将输入/输出与maxima进行争论有点困难,但可以做到 以逗号分隔的列表形式准备方程组——例如,EQs=“C[1]+C[2]=1,C[1]-C[2]=2”。我想要一个未知数量变量的解
generate_system | solve_system
您可能可以使用package编写自己的此类命令。这是一个老问题,但在我搜索这个问题时出现了,所以我在这里添加了一个答案 我使用了
maxima
的solve
函数。将输入/输出与maxima
进行争论有点困难,但可以做到
EQs=“C[1]+C[2]=1,C[1]-C[2]=2”
。我想要一个未知数量变量的解决方案,所以我使用了C[n]
,但您可以使用变量名[C[1]=…,C[2]=…]
的形式返回解决方案。我们需要解决所有这些问题OUT_VALS=( \
$(maxima --very-quiet \
--batch-string="display2d:false\$linel:9999\$print(map(rhs,float(solve([$EQs],[$EQ_VARS]))[1]))\$" \
| tail -n 1 \
| tr -c '0-9-.e' ' ') )
将解决方案值放入数组$OUT\u VALS
请注意,只有在问题得到正确约束的情况下,这才能正确处理最大输出——如果您没有或有多个解决方案,输出将无法正确解析