2

私は C# で簡単なグラフの実装を作成しました。各ピクセルをそれが表すグラフ上の位置と比較し、その位置を曲線上にあるかどうかを確認する必要がある関数にプラグインすることで、物事をグラフ化できます。それはすべて順調です。

私が抱えている問題は、生成されたテイラー多項式を使用することです。たとえば、次のようにして、c を中心とする超越関数 f の n 次テイラー多項式を作成できます。

k = ((f(c) の k 次導関数) * (xc)^k)/k!

スタックオーバーフローで数学マークアップを行う方法がわかりませんし、ウェブでそれを行う能力がありませんが、それが理解できることを願っています. 左側は sigma _k=0 ^n などのように記述でき、_ は sigma の下のセクションを表し、^ は上の部分を表します...

したがって、次のような 0 (マクローリン、私が知っている) を中心とする cos(x) の 6 次のテイラー多項式を生成することになります。

"1 - x^2/2! + x^4/4! - x^6/6!"

これは、C# での単純な文字列操作によって実行できます。ループして、次の用語を文字列に追加するだけです。

文字列を関数として実際に使用してグラフの位置と比較し、そのグラフの位置が実際にこのグラフ上にあるかどうかを確認してグラフ化する方法を実際に理解することはできません。本質的に:C#で実際の数学関数として文字列を使用するにはどうすればよいですか、またはこれを行うためのより良い方法があります。

混乱を招く場合は本当に申し訳ありません...人々が助けることができる方法で説明するために最善を尽くしています.

4

2 に答える 2

1

文字列 -> 関数のパーサーが必要です。例については、 MathParserを参照してください。

于 2010-10-19T23:43:48.653 に答える
1

一般的な観点から、文字列を機能するものに変換したいときはいつでも、文字列を解釈し、それによって指示されたアクションを実行するパーサーを実装する必要があります。数式の場合、演算の順序とグループ化を維持するために式ツリーが役立つ場合があります。おそらく、これを行う数式ライブラリがいくつか利用可能であるか、独自のものを作成できます。これは簡単な作業ではありませんが、確かに可能です。

式ツリーを取得したら、特定の x の値 f(x) がグラフ化可能かどうかを判断するには、それを評価するだけです。f(x) グラフの場合、最初に x をテストして、グラフ領域の可視領域に収まるかどうかを確認できます。そうであれば、f(x) を評価し、点 (x,f(x)) がグラフ化可能であれば点を描画します。

于 2010-10-19T23:44:07.967 に答える