Question

Je suis en train d'utiliser un polynôme de Taylor programme dans Maple, mais ce qui suit ne semble pas fonctionner ...

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

Tous les éléments suivants ne fonctionnent pas aussi:

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

Est-il possible de le faire sans copier et coller la sortie de convertir dans la définition de f?

Était-ce utile?

La solution

Il pourrait aussi être naturel de définir T en fonction.

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

T(1);

Autres conseils

Si je vous ai bien compris, ce que vous voulez accomplit:

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

Plusieurs réponses antérieures portant sur les procédures et les sous-marins feront toute la dérivation de la série taylor, ainsi que la conversion en polynom, pour chaque entrée. C'est très inefficace.

Il vous suffit de produire le résultat taylor, et les convertir en polynom, une fois. Avec ce résultat à la main, vous pouvez alors créer un opérateur (avec pour agir sur autant d'entrées que vous le souhaitez, simplement en évaluant le polynôme au point, mais sans avoir à recalculer toute réponse taylor).

Ci-dessous, un moyen de créer une procédure f permettant d'évaluer, à tout point donné de l'argument x. Il calcule la série taylor (tronquée) et se transforme en polynom simplement une fois .

> f:=unapply(convert(taylor(sin(x),x=Pi/4,6),polynom),x):
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top