質問

Maple でテイラー多項式をプログラムで使用しようとしていますが、次のような動作はしないようです...

T[6]:=taylor(sin(x),x=Pi/4,6);convert(T[6], polynom, x);
f:=proc(x)
  convert(T[6], polynom, x);
end proc;
f(1);

次のすべても機能しません。

  • f:=convert(T[6], polynom);
  • f:=convert(T[6], polynom, x);
  • f:=x->convert(T[6], polynom);
  • f:=x->convert(T[6], polynom, x);.

Convert の出力をコピーして の定義に貼り付けずにこれを行う方法はありますか? f?

役に立ちましたか?

解決

また、関数としてTを定義するのが自然かもしれません。

T:=y->subs(x=y,convert(taylor(sin(x),x=Pi/4,6),polynom));

T(1);

他のヒント

私が正しくあなたを理解している場合、これはあなたが望むものを達成します:

f := proc(z)
    local p :: polynom;
    p := convert(T[6], polynom); 
    return subs(x = z, p)
end proc

手順や潜水艦を含むいくつかの以前の回答は全体のテイラー級数の導出と同様に、それぞれ、すべての入力に対して、多項式への変換を行います。それは非常に非効率的である。

あなたは一度だけ、テイラーの結果を生成し、多項式に変換する必要があります。その結果、手の中にあなたがして(が全体テイラーの答えを再計算することなく、あなたが望むように、単にポイントで多項式を評価することにより、できるだけ多くの入力に作用するためにどのではなくの)演算子を作成することができます。

以下は、引数xの任意の時点で評価すると手順Fを作成する方法です。これは、(切り捨て)Taylor級数を計算し、一度

ちょうどを多項式に変換し、
> f:=unapply(convert(taylor(sin(x),x=Pi/4,6),polynom),x):
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top