Frage

Ich versuche, eine Taylor programmatisch in Maple Polynom zu verwenden, aber die folgenden scheint nicht zu funktionieren ...

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);

Alle folgenden auch nicht funktionieren:

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

Gibt es eine Möglichkeit, dies zu tun, ohne zu kopieren und einfügen und die Ausgabe in die Definition von f umwandeln?

War es hilfreich?

Lösung

Es könnte auch natürlich sein T als eine Funktion zu definieren.

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

T(1);

Andere Tipps

Wenn ich Sie richtig verstanden habe, erreicht dies, was Sie wollen:

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

Mehrere frühere Antworten beteiligt Verfahren und U-Boote wird die gesamte Taylorreihe Ableitung tun, sowie die Umstellung auf polynom, für jeden Eingang. Das ist sehr ineffizient.

Sie müssen nur die taylor Ergebnis, produzieren und zu polynom, einmal zu konvertieren. Mit diesem Ergebnis in der Hand kann man dann einen Operator erstellen (mit dem auf so viele Eingänge handeln, wie Sie wollen, nur durch das Polynom an dem Punkt Auswertung aber ohne , die die ganze taylor Antwort auf neu berechnet).

Im Folgenden finden Sie eine Möglichkeit, ein Verfahren f, mit denen zu schaffen, zu einem bestimmten Zeitpunkt für das Argument x zu bewerten. Es berechnet die (verkürzten) Taylorreihe und wandelt in polynom nur einmal .

> f:=unapply(convert(taylor(sin(x),x=Pi/4,6),polynom),x):
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top