Как извлечь вывод Mathematica - PullRequest
       5

Как извлечь вывод Mathematica

1 голос
/ 23 сентября 2010

Вывод в мою ячейку математики - просто длинное алгебраическое уравнение, полученное из 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]}]

Но здесь% не совсем справляется. Любые идеи о том, как я мог бы достичь этого?

Ответы [ 2 ]

3 голосов
/ 23 сентября 2010

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 голос
/ 23 сентября 2010

Если понял, Mathematica возвращает вложенные списки, к которым может обращаться% [[1]] [[1]]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...