C#でテイラー多項式を生成してから使用する
-
09-10-2019 - |
質問
C#で簡単なグラフ化の実装を作成しましたが、各ピクセルを表すグラフの位置と比較し、その位置を関数に接続することで、曲線上にあるかどうかを確認することで、物事をグラフ化できます。それはすべて順調で良いです。
私が抱えている問題は、生成されたテイラー多項式を使用することです。たとえば、Cを中心とした超越関数fのNth Taylor Polunomialを作成することができます。
0からnまでのこの合計は、k =((c)) *(xc)^k)/kのkth誘導体です。
Stackoverflowで数学のマークアップを行う方法がわかりません。また、Webでそれを行うことにあまりにも能力がありますが、それが理解できることを願っています。左側は、_k = 0 ^ nまたはそのようなものとして書くことができます。
だから私は、0(マクラウリン、私は知っている)を中心としたcos(x)の6度のテイラー多項式を生成することになります。
「1 -x^2/2! + x^4/4! - x^6/6!」
これは、C#での単純な文字列操作を通じて実行できます。ループして、次の用語を文字列に追加できます。
グラフの位置と比較して、そのグラフの位置が実際にこのグラフ上にあるかどうかを確認するためにグラフであるかどうかを確認するために、実際に文字列を関数として使用できる方法を理解することはできません。基本的に:文字列をC#の実際の数学的関数として使用する方法、またはこれを行うより良い方法がありますか。
混乱している場合は本当に申し訳ありません...人々が助けることができる方法でそれを説明しようと最善を尽くしています。
解決
文字列 - >関数のパーサーが必要です。見る Mathparser 例として、それはおそらくあなたが必要とするあなたが言及したすべてを行うでしょう。
他のヒント
一般的な観点から、文字列を機能するものに変換したいときはいつでも、文字列を解釈し、それによって指示されたアクションを実行するパーサーを実装する必要があります。数学的式の場合、式の式とグループ化の順序を維持するために式ツリーが使用される場合があります。おそらくこれを行う数学表現ライブラリが利用可能であるか、自分でロールすることができます。これは些細な作業ではありませんが、確かに可能です。
式ツリーができたら、特定のxの値f(x)がグラフ可能かどうかを把握するには、評価するだけです。 f(x)グラフの場合、最初にxをテストして、グラフ領域の可視ドメインに収まるかどうかを確認できます。もしそうなら、f(x)を評価し、ポイント(x、f(x))がグラフ可能な場合、ポイントを描画します。