2

これが基本的な問題であるか、すでに豊富な解決策がある場合はご容赦ください。ただし、この問題を簡潔に表現する方法がわかりません。これに対する結果は見つかりませんでした。この問題について長い間考えてきましたが、解決策が見つからないようです。

私がやりたいのは、文字列を介してシンボリックステートメントを比較することです。例えば、数学では、

4x = 4x is true.  

しかし、どうですか

(12/3)x = 4x
(5-1)x = (4/1)x 
((5-1)/1)x = (4/1)x
so on . . .

証明では、

1 = sin(x)^2 + cos(x)^2
tan(x) = sin(x)/cos(x)
sin(2x) = 2*sin(x)*cos(x)
and so on . . .

ロジックでは、

~~p <-> p
~(p * q) <-> (~p v ~q)
~(p v q) <-> (~p * ~q)
(p v q) <-> (q v p)
(p * q) <-> (q * p)
and so on . . .

これらの入力は文字列であることに注意してください。私が直面している問題は、理論的には両側が等しくなるケースが無限にあるということです。

もちろん、最初の問題は、数値と記号値を解析して列挙する方法です。私はこれでOKです。

どこから始めればいいのかわからないので、どんな指針でもいただければ幸いです。

4

1 に答える 1

3

シンボリック代数パッケージを入手します。彼らは、派生、単純化、還元との比較などを行うことができます。また、多くはプログラム可能です。そこにはいくつかの良い無料のものがあります。

ここにリストがあります: http://en.wikipedia.org/wiki/List_of_computer_algebra_systems

コードでこれを行う方法を探している場合は、おそらく、選択した言語の記号代数ライブラリを見つけることができます。

于 2012-12-21T00:39:39.400 に答える