有没有人知道Linux命令从其标准输入读取线性方程组并将解决方案(如果存在)写入其标准输出中?
我想做这样的事情:
generate_system | solve_system
答案 0 :(得分:1)
您可以使用this包编写自己的命令。
答案 1 :(得分:1)
这是一个老问题,但在我搜索此问题时出现了,所以我在这里添加答案。
我使用了maxima
的{{1}}功能。将输入/输出与/ solve
进行争夺是一个挑战,但可以做到。
maxima
。我想要一个针对未知数量变量的解决方案,所以我使用了EQs="C[1]+C[2]=1,C[1]-C[2]=2"
,但你可以使用变量名。C[n]
EQ_VARS="C[1],C[2]"
形式返回解决方案。我们需要解决所有这些问题。合在一起,这就变成了
[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' ' ') )
。
请注意,如果您的问题得到正确约束,这只会正确处理Maxima输出 - 如果您有零个或多个解决方案,则无法正确解析输出。