simplify(sqrt(a^2-2*a*b+b^2))
retourne abs(a-b)
. Pour obtenir
a-b
, il faut saisir l'hypothèse assume(a>b)
.
f:=x^2
affecte l'expression à la
variable mais ne définit pas une fonction. Pour obtenir 4, il
faudrait définir la fonction par
f:=unapply(x^2,x);
ou bien
f:=x->x^2;
.
f:=x^2; subs(f,x,2);
[a$10]
crée la liste composée par l'élément
a
répété 10 fois. Sa taille est donc 10. À partir de la
séquence où a
est répété 10 fois, la commande
%{a$10%}
crée un ensemble, dont les éléments sont
tous différents. Sa taille est donc 1.
diff
calcule la dérivée partielle d'une
expression par rapport à la variable . Dans le premier cas, on
obtient , dans le second cas on obtient 0, car la variable
n'apparaît pas dans l'expression. Pour obtenir le gradient, il
faut utiliser grad
, en spécifiant les variables :
grad(x^2*y^2,[x,y])
.
assume(x>0); simplify(atan(1/x)+atan(x)); assume(x<0); simplify(atan(1/x)+atan(x));
assume(a>0); assume(b>0); assume(c>0); simplify(subs(atan(1/(a+b))+atan(1/(a+c)),c=(1+a^2)/b))
simplify(atan(1/(a+1))+atan(1/(a^2+a+1)))
apply
pour transformer les
listes:
Machin(n):={ local a,l,j,x; a:=[1]; l:=a; for (j:=0;j<n;j++) { l:=apply(x->x+1,a); a:=apply(x->x^2+x+1,a); a:=append(a,op(l)); } return(a); };Voici une fonction récursive, qui retourne une séquence.
Machin(a,n):={ local b,c; b:=a+1; c:=a^2+a+1; if (n==1) return b,c; return machin1(b,n-1),machin1(c,n-1); } :;
l:=Machin(3) simplify(sum(apply(x->atan(1/x),l)))
taylor_atan(n):=convert(taylor(atan(x),x=0,2*n+1),polynom);ou
taylor_atan(n):=truncate(taylor(atan(x),x=0,2*n+1),2*n+1);ou
taylor_atan(n):={ local s,P; s:=series(atan(x),x,0,2*n+1); P:=convert(s,polynom); return(P); }:;
P14:=unapply(taylor_atan(14),x); s1:=sum(apply(x->P14(1/x),l));
Digits:=25; evalf(pi/4-s1);
simplify(atan(1)-4*atan(1/5)+atan(1/239));
u:=1+5*i; arg(u); v:=1+239*i); arg(v); -4*arg(u)+arg(v); simplify(arg(u^{-4}*v));Les deux calculs d'argument donnent la même valeur : .
s2:=4*P14(1/5)-P14(1/239)
evalf(pi/4-s2)
c:=[44,7,-12,24]; v:=[57,239,682,12943]; simplify(c*apply(x->atan(1/x),v)); s3:=c*apply(x->P14(1/x),v); Digits:=60; evalf(pi/4-s3);
c:=[12,32,-5,12]; v:=[49,57,239,110443]; simplify(c*apply(x->atan(1/x),v)); s4:=c*apply(x->P14(1/x),v); evalf(pi/4-s4);