2017-01-13 10 views
1

私は現在、Sympy 1.0とPython 2.7で作業しています。私の目的は、式のすべての数値パラメータをシンボルで置き換えることです。例えばSympy:式で "-1"を置き換えますか?

2 * x + 3 * y - 10 * z -> a * x + b * y - c * z 

は、これまでのところ、私は後で.subsを使用したり、文字列にすべてを書き込み、.replaceのいずれかを使用してそれらを交換するために、数値パラメータのリストを取得するためにexpression.atoms(Number)を使用。

-zは私が木として表現を分析する場合、実際に -1 * zです...しかし -1 expression.atoms(Number)の結果の中では表示されませんので、私は置き換えることはできません
expression = sympy.simpify("x - z") 

:しかし、私は、次のような表現で問題に直面していますそれ。

.replaceを使用すると、式を文字列に変換しても、-1 * zは常に-zとして書き出されるため、実際には役に立ちません。

おそらく私が見落とした解決策がありますが、これまでのところ私は立ち往生しています。手伝って頂けますか?あなたの時間のために事前にありがとうございます。

+3

本当ですか? 'sympy.simplify( '-x')。atoms()'は{-1、x} 'を返します –

+1

あなたはそうです:初めて' subs'を使ってみると私はおそらく乱暴なエラーになりました。私は 'subs 'と再試行した。ただ今、それは完璧に働いた。 – Alberto

+0

あなたは正しいです、私はそれをやります。 – Alberto

答えて

1

実際には、最初に.subsを使用しようとしたときに私はおそらく乱暴なエラーを出しました。パトリックがコメントで指摘したように、.subsはこの場合完全に動作します。

関連する問題