0

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ますか?

4

3 に答える 3

2

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

テイラーの結果を生成し、多項式に変換する必要があるのは1回だけです。その結果が手元にあると、演算子を作成できます(その時点で多項式を評価するだけで、テイラーの回答全体を再計算することなく、必要な数の入力を操作できます)。

以下は、引数xの任意の時点で評価するためのプロシージャfを作成する方法です。(切り捨てられた)テイラー級数を計算し、 1回だけ多項式に変換します。

> f:=unapply(convert(taylor(sin(x),x=Pi/4,6),polynom),x):
于 2010-05-11T23:31:01.497 に答える
2

私があなたを正しく理解していれば、これはあなたが望むことを達成します:

f := proc(z)
    local p :: polynom;
    p := convert(T[6], polynom); 
    return subs(x = z, p)
end proc
于 2009-12-02T09:28:07.677 に答える
1

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

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

T(1);
于 2009-12-02T14:53:40.063 に答える