2012-05-05 12 views
1

ちょうどキックのために、代数方程式を単純化、因子分解、拡張できるアプリケーションを作成しようとしています。方程式をうまく実行可能な形式にすることができれば、ルールをプログラミングすることはまっすぐ進むように思えます。方程式を解析することは面倒です。現在はPythonで作業していますが、私は新しい何かを学ばなくてはなりません。数学方程式の解析

このプロジェクトを非常にシンプルにするライブラリがありますか(それともパイプの夢ですか?)

[私は「シンプル」であるところだ気持ちを持っているので、Haskellのでこれをタグ付け]

+10

シンプル:

あなたはでそれを見つけることができますか?プログラミング?あなたはこれに新しい人でなければなりません...;-) –

+3

扱う代数方程式の種類は定義していません。 AFAIKは、これらの妥当な定義(三角関数、指数関数、対数関数、多項式関数、およびそれらの構成)について、それらを単純化するという問題は決めることができません。 –

+0

方程式ではなく、一般的な演算子 '+' '' '' '' ''などを使用する式の解析は、HaskellのParsecライブラリではかなり簡単です。 Parsecの影響を受けたライブラリは他の言語用に作成されていますが、おそらく式パーサキットの定義には至っていません。 Daan Leijenは、式パーサーの作成など、Parsecの優れたドキュメントを書いています。残念ながら、マニュアルは現在古くなっています。http://research.microsoft.com/en-us/um/people/daan/download/parsec/parsec pdf –

答えて

6

はい、Haskellは書き込みパーサは合理的に簡単に多くの多くのライブラリを持っています。 Parsecは良いスタートで、Pythonを含むclones in other languagesもあります(その記事もpyparsingにリンクしているようです)。

This answer of mineの例です(これはおそらくトップクラスのParsecやHaskellではありません)。これは、Haskellの解析ライブラリの能力を示しています。まさに4行のコードがパーサー全体を実装しています。

また、古い質問と回答を参照すると、さまざまな図書館や技術の感覚を得ることができます。 ,parsing+haskellおよびparsing+python

大きなプロジェクトの攻撃行を解消する最も良い方法は、小さなツールを使い、ツールに慣れるまで試してみることです:ライブラリを選択して、構文解析のような比較的簡単なパーサを実装しようとする+*の数字だけでなく、数字と+のブラケットを使った式もあります。小さいものですが小さすぎるものではありませんが、2つの例それぞれが非自明で、最初は演算子の優先順位、2番目の例は再帰的な入れ子です。 。ライブラリがあまり好きでない場合は、別のライブラリを試してみてください。

0

Pythonまたはmatlabが私の提案です。方程式全体を文字列に格納し、分割して要素化し単純化する予定ですか?

クールなプロジェクトのいくつかの詳細な情報を提供してください。

4

これはほぼすべての言語で行われています。

Pythonは代数方程式と行くためにすべての準備ができてシンボリック数学を解析するためのライブラリを持っています

http://code.google.com/p/sympy/

あなたの目的は、そのようなことを書く方法を学ぶことでない限り、私は、再利用をお勧めしたいです。

0

これは古い質問ですが、私はあなたにMathParseKitを提案したいと思います。

これはC++ライブラリで、 "2 * 3/4"のような文字列を指定すると、式を定義する関数/変数/定数のツリーが得られます。

解決できますが、変更して文字列形式で再入力することもできます。

https://github.com/B3rn475/MathParseKit