【问题标题】:How to extract mathematica output如何提取数学输出
【发布时间】:2010-09-23 06:32:42
【问题描述】:

我的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]}]

但这里 % 并不能完全解决问题。关于如何实现这一目标的任何想法?

【问题讨论】:

  • 案例[%[[1, 1, 2]], 下标[u, _, _], 无穷大]

标签: wolfram-mathematica


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果想通了,Mathematica 会返回嵌套列表,可以通过 %[[1]][[1]] 访问它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      相关资源
      最近更新 更多