学術的な目的で、次のようなユーザー入力式をプロットするアプリケーションを作成する必要があります。f(x)= 1 --exp(3 ^(5 * ln(cosx))+ x)
パーサーを作成するために私が選択したアプローチは、RPNの式をShunting-Yardアルゴリズムで変換し、「cos」などのプリミティブ関数を単項演算子として扱うことです。これは、上記の関数が次のような一連のトークンに変換されることを意味します。
1, x, cos, ln, 5, *,3, ^, exp, -
問題は、関数をプロットするために何度も評価する必要があるため、各入力値にスタック評価アルゴリズムを適用することは非常に非効率的であるということです。どうすればこれを解決できますか?RPNのアイデアを忘れる必要がありますか?