我的mathematica单元格的输出只是一个由Solve[%, Subscript[u, i, j + 1]]
生成的长代数方程。
{{Subscript[u, i, 1 + j] -> (1/(
2 h^2))(-2 h^2 k Subscript[f, i, j] + 2 h^2 Subscript[u, i, j] +
2 b h^2 k Subscript[u, i, j] -
h k Subscript[u, -1 + i, j] Subscript[\[Mu], i, j] +
h k Subscript[u, 1 + i, j] Subscript[\[Mu], i, j] +
2 k Subscript[u, -1 + i, j] Subscript[\[Sigma], i, j] -
4 k Subscript[u, i, j] Subscript[\[Sigma], i, j] +
2 k Subscript[u, 1 + i, j] Subscript[\[Sigma], i, j])}}
我想在这个表达式的右侧收集$ u_ {i,j} $这些术语,但我不知道如何处理Solve []的输出。即我想做点什么
Collect[%, {Subscript[u, i, j - 1], Subscript[u, i, j], Subscript[u,
i, j + 1]}]
但是这里%并没有完全解决问题。关于如何实现这一目标的任何想法?
答案 0 :(得分:3)
Mathematica返回嵌套列表,因为通常会有多个带有多个变量的解决方案。
提取替换规则的RHS的最有效方法是实际使用它,例如
In[1]:= x/.Solve[x - m b - m c == 0,x]
Collect[First[%],m]
Out[1]= {b m + c m}
Out[2]= (b + c) m
也就是说,命令Part [](或[[]])可以使用多个参数,因此不需要重复:
In[3]:= Solve[x-m b-m c==0,x]
Collect[%[[1,1,2]],m]
Out[3]= {{x->b m+c m}}
Out[4]= (b + c) m
答案 1 :(得分:1)
如果计算出来,Mathematica会返回嵌套列表,可以通过%[[1]] [[1]]
访问