Mathematicaは、代数を操作するための多くの高水準関数も提供しています。これらの中には、Expand
,Apart
およびTogether
およびCancel
がありますが、それ以上の数があります。
また、(つまり、ヘッドEqual
と表現)式の両辺に同じ変換を適用し、あなたの具体的な例のために、あなたは自分のMultBothSides
機能と同じように動作Thread
機能を、使用していますが、持つことができます非常に多くの一般性。提示のソリューションのいずれかで
In[1]:= expression = 2 a == a b
Out[1]:= 2 a == a b
In[2]:= Thread[expression /a, Equal]
Out[2]:= 2 == b
In[3]:= Thread[expression - c, Equal]
Out[3]:= 2 a - c == a b - c
、ステップを伴うものを見ることは比較的容易でなければなりません。あなたはもう少し明示的な何かをしたい場合は、そのようなあなた自身の関数を書くことができます。
In[4]:= ApplyToBothSides[f_, eq_Equal] := Map[f, eq]
In[5]:= ApplyToBothSides[4 * #&, expression]
Out[5]:= 8 a == 4 a b
これは、任意の頭部を持つ式の事実はMap
作品だけでなく、頭を活用して、あなたのMultBothSides
機能の一般化ですList
。 Mathematicaに慣れていないオーディエンスとコミュニケーションしようとしている場合は、このような名前を使用すると、より明確に伝えることができます。関連する文脈では、Ira Baxterが提案した置換ルールを使用する場合は、/.
構文砂糖を使用する代わりにReplaceまたはReplaceAllを記述すると便利です。あなたはあなたの入力には、代わりに変数名expression
の、実際の式を持つことが明確になると思うし、あなたのマウスを使って強調表示し、単語expression
をノートブック・インターフェースを使用している場合
In[6]:= ReplaceAll[expression, a -> (x + y)]
Out[6]:= 2 (x + y) == b (x + y)
、呼び出しますコンテキストメニューを開き、「評価」を選択します。
ノートブックのインターフェイスは、 "文章のプログラミング"を行うための非常に快適な環境ですので、すぐにはっきりとわからないことも説明できます。私は、これが媒体にかかわらず数学的な校正を書くときの良い練習であると信じています。
申し訳ありません私は数年遅れています...しかし、私がここで言及している小さなパッケージhttp://stackoverflow.com/q/5701159/667867は、あなたがしたいことをする必要があります。警告の質問とディスカッションを読む! – telefunkenvf14