Cette fonction permet de calculer :
^
2-n)/2=F(n) qui est la primitive discréte de n
(sum(n,n=1..5)=F(5+1)-F(1)),
Voici quelques exercices...
On a :
2*s1=∑k=1nk)+∑k=1nn+1−k)=∑k=1nn+1)=n(n+1)
Donc :
s0(n)= |
|
On peut aussi remarquer que :
p(p+1)/2−(p−1)p/2=p
On dit que le polynôme x(x−1)/2 est la primitive discrète du polynôme
x
On a donc :
2s1=∑p=1n2p=∑p=1n(p(p+1)−(p−1)p)=n(n+1)
Avec Xcas, on tape :
sum(k,k=1..n)
On obtient :
(n*(n+1))/2
Remarque
On peut en déduire le calcul de s=∑k=1n(2k−1)).
On a en effet :
s=2∑k=1nk−n=n*(n+1)−n=n2
On aurait aussi pu remarquer que :
2p−1=(p+1)(p−1)−p(p−2)
Donc que la primitive discète du polynôme
2x−1 est le polynôme x(x−2).
On a donc :
s=∑p=1n2p−1=∑p=1n(p2−(p−1)2)=n2
Avec Xcas, on tape :
normal(sum(2k-1,k=1..n))
On obtient :
n^
2
On a :
13=1
23=13+3*12+3*1+1
....
k3=(k−1)3+3*(k−1)2+3*(k−1)+1
(k+1)2=k3+3*k2+3*k+1
....
n3=(n−1)3+3*(n−1)2+3*(n−1)+1
(n+1)3=n3+3*n2+3*n+1
En sommant tous les termes :
(n+1)3=3*∑k=1nk2+3∑k=1nk+n=3s2+3n(n+1)/2+n+1
Donc :
3s2(n)=(n+1)((n+1)2−3n/2−n−1)=(n+1)(2n2+n)/2
s2(n)= |
|
On peut aussi remarquer que :
p(p+1)*(2p+1)/6−(p−1)*p*(2p−1)/6=p2
Donc que la primitive discète du polynôme
x2 est le polynôme x(x−1)(2x−1)/6.
On a donc :
6s2=∑p=1n6p2=∑p=1n(p(p+1)(2p+1)−(p−1)p(2p−1))=n(n+1)(2*n+1)
Avec Xcas, on tape :
factor(sum(k^
2,k=1..n))
On obtient :
n*(n+1)*(2*n+1)/6
On a :
14=1
24=14+4*13+6*12+4+1
....
k4=(k−1)4+4*(k−1)3+6*(k−1)2+4*(k−1)+1
(k+1)4=k4+4*k3+6*k2+4*k+1
....
(n+1)4=n4+4*n3+6n2+4*n+1
Donc :
(n+1)4=n4+4s3(n)+6s2(n)+4s1(n)+n
Donc :
4s3(n)= (n+1)4−n*(n+1)*(2*n+1)−2n(n+1)−n−1=(n+1)((n+1)3−n(2*n+1)−2n−1)
4s3(n)=(n+1)2((n+1)2−(2*n+1))=(n+1)2n2
s3(n)= |
|
On peut aussi remarquer que :
p2*(p+1)2/4−(p−1)2*p2/4=p3
Donc la primitive discète du polynôme
x3 est le polynôme (x−1)2x2/4.
On a donc :
4s3=∑p=1n4p3=∑p=1n(p2(p+1)2−(p−1)2p2)=n2(n+1)2
Avec Xcas, on tape :
factor(sum(k^
3,k=1..n))
On obtient :
(n^
2*(n+1)^
2)/4
Soit P un polynôme de degré d.
On veut calculer pour tout entier n ∈ ℕ les sommes :
∑k=0nP(k)
On cherche donc une primitive discrète de P c’est à dire une fonction f
telle qu’on ait pour tout x ∈ ℝ f(x+1)−f(x)=P(x).
Cela entraine que pour tout entier n ∈ ℕ on a :
f(n+1)−f(0)=∑k=pnP(k).
Donc pour tout entier n ∈ ℕ on doit avoir f(n+1)−f(n)=P(n)
On cherche si P a comme primitive discrète un polynôme Q.
Si c’est le cas le polynôme Q doit vérifier :
Q(x+1)−Q(x)=P(x) avec P un polynôme de degré d donc Q est défini
à une constante près et est de degré d+1. Donc Q est
entièrement défini par d+2 valeurs qui sont par exemple :
Q(0)=0=q0
Q(1)=P(0)=q1
Q(2)=P(0)+P(1)=q2
Q(3)=P(0)+P(1)+P(2)=q3
.....
Q(d+1)=P(0)+P(1)+...+P(d)=qd+1
On calcule q0,q1...,qd+1 et on définit Q comme étant le polynôme
d’interpolation de Lagrange des points (k,pk) pour k=0..d+1.
Soit R le polynôme définit par R(x)=Q(x+1)−Q(x).
Puisque Q est de degré d+1, on en déduit que R est de degré d.
Comme Q(k+1)−Q(k)=P(k) pour k=0..d, on a :
R(k)=P(k) pour k=0..d.
R et P ont même degré d et ils sont égaux en d+1 valeurs donc :
pour tout x ∈ ℝ on a P(x)=R(x)=Q(x+1)−Q(x).
Donc Q est bien une primitive discrète de P.
Cherchons la primitive discrète de P(x)=x
La primitive discrète de P(x)=x est égale au
polynôme de d’interpolation de Lagrange des points :
(0,0), (1,0), (2,1).
On tape :
factor(lagrange([0,1,2],[0,0,1]))
On obtient :
(x*(x-1))/2x
Cherchons la primitive discrète de P(x)=2*x−1
La primitive discrète de P(x)=x2 est égale au
polynôme de d’interpolation de Lagrange des points :
(0,0), (1,−1), (2,0).
On tape :
factor(lagrange([0,1,2],[0,-1,0]))
On obtient :
x*(x-2)
Cherchons la primitive discrète de P(x)=x2.
La primitive discrète de P(x)=x2 est égale au polynôme de
d’interpolation de Lagrange des points :
(0,0), (1,0), (2,1), (3,5).
On tape :
factor(lagrange([0,1,2,3],[0,0,1,5]))
On obtient :
(x*(x-1)*(2*x-1))/6
Cherchons la primitive discrète de P(x)=x3.
La primitive discrète de P(x)=x3 est égale au polynôme de
d’interpolation de Lagrange des points :
(0,0), (1,0), (2,1), (3,9), (4,36).
On tape :
factor(lagrange([0,1,2,3,4],[0,0,1,9,36]))
On obtient :
(x^
2*(x-1)^
2)/4
Cherchons la primitive discrète de P(x)=x4.
La primitive discrète de P(x)=x4 est égale au polynôme de
d’interpolation de Lagrange des points :
(0,0), (1,0), (2,1), (3,17), (4,98), (5,354).
On tape :
factor(lagrange([0,1,2,3,4,5],[0,0,1,17,98,354]))
On obtient :
(x*(x-1)*(2*x-1)*(3*x^
2-3*x-1))/30
On en déduit le calcul de s4(n)=∑k=1nk4 :
On tape :
factor(subst((x*(x-1)*(2*x-1)*(3*x^
2-3*x-1))/30,x=n+1))
On obtient :
(n*(n+1)*(2*n+1)*(3*n^
2+3*n-1))/30
s4(n)=n*(n+1)*(2*n+1)*(3*n2+3*n−1)/30
Ou on tape :
factor(sum(k^
4,k=1..n))
On obtient :
(n*(n+1)*(2*n+1)*(3*n^
2+3*n-1))/30
Calculer ∑k=410k2+2*k−1
et ∑k=4+√210+√2k2+2*k−1
Cherchons la primitive discrète de P(x)=x2+2x−1.
La primitive discrète de P(x)=x2+2x−1 est égale au polynôme de
d’interpolation de Lagrange des points :
(0,0), (1,−1), (2,1), (3,8).
On tape :
factor(lagrange([0,1,2,3],[0,-1,1,8]))
On obtient :
(x*(2*x^
2+3*x-11))/6
On tape :
f(x):=(x*(2*x^
2+3*x-11))/6
Ou on tape directement pour définir f :
f:=unapply(factor(lagrange([0,1,2,3],[0,-1,1,8])),x)
On tape :
f(11)-f(4)
On obtient :
462
On vérifie :
On tape :
sum(k^
2+2*k-1,k=4..10)
On obtient :
462
On tape :
normal(f(11+sqrt(2))-f(4+sqrt(2)))
On obtient :
112*sqrt(2)+476
On vérifie :
On tape :
normal(sum(k^
2+2*k-1,k=4+sqrt(2)..10+sqrt(2)))
On obtient :
112*sqrt(2)+476
On sait que :
(a+b)n=∑k=0ncomb(n,k)akbn−k
donc
s0(n)=∑k=0ncomb(n,k)=(1+1)n=2n
Donc :
s0(n)=2n |
Avec Xcas, on tape :
sum(comb(n,k),k=0..n)
On obtient :
2^
n
On sait que :
comb(n,k)=n!/k!(n−k)!
Donc :
k*comb(n,k)=n*comb(n−1,k−1)
On a :
s1(n)=∑k=0nk*comb(n,k)=∑k=1nk*comb(n,k)=
n*∑k=1ncomb(n−1,k−1)=n*∑k=0n−1comb(n−1,k)=n*2n−1
Donc :
s1(n)=n*2n−1 |
Avec Xcas, on tape :
sum(k*comb(n,k),k=0..n)
On obtient :
n*2^
(n-1)
On sait que :
comb(n,k)=n!/k!(n−k)! et
∑k=0nk*comb(n,k)=n*2n−1
Donc :
k2*comb(n,k)=n*k*comb(n−1,k−1)
On a :
s2(n)=∑k=0nk2*comb(n,k)=∑k=1nk2*comb(n,k)=
n*∑k=1nk*comb(n−1,k−1)=n*∑k=0n−1(k+1)*comb(n−1,k)=
n*∑k=0n−1k*comb(n−1,k)+n*∑k=0n−1comb(n−1,k)=
n*(n−1)*2n−2+n*2n−1=n(n+1)2n−2=n(s(n−1)+s0(n−1))
Donc :
s2(n)=n(n+1)2n−2 |
Avec Xcas, on tape :
s2:=sum(k^
2*comb(n,k),k=0..n)
factor(subst(s2,2^
(n-1),2*2^
(n-2)))
On obtient :
n*(n+1)*2^
(n-2)
On sait que :
comb(n,k)=n!/k!(n−k)! et
∑k=0nk2*comb(n,k)=n(n+1)2n−2
Donc :
s3(n)=k3*comb(n,k)=n*k2*comb(n−1,k−1)
On a :
∑k=0nk3*comb(n,k)=∑k=1nk3*comb(n,k)=
n*∑k=1nk2*comb(n−1,k−1)=n*∑k=0n−1(k+1)2*comb(n−1,k)=
n(s2(n−1)+2*s1(n−1)+s0(n−1))=
n(n(n−1)*2n−3+2(n−1)2n−2+2n−1)=n(n(n−1)+4(n−1)+4)2n−3=n2(n+3)2n−3
Donc :
s3(n)=n2(n+3)2n−3 |
Avec Xcas, on tape :
s3:=sum(k^
3*comb(n,k),k=0..n)
factor(subst(subst(s3,2^
(n-2),2^
(n-3)*2),2^
(n-1),2^
(n-3)*4))
On obtient :
n^
2*(n+3)*2^
(n-3)
On remarque que :
1/k(k+1)=1/k−1/k+1
Donc que :
s=∑k=1n1/k(k+1)=∑k=1n1/k−1/k+1=1−1/n+1=n/n+1
Avec Xcas, on tape :
normal(sum(1/(k*(k+1)),k=1..n))
On obtient :
n/(n+1)
On remarque que :
2/(2k−1)(2k+1)=1/2k−1−1/2k+1
Donc que :
2s=∑k=1n1/(2k−1)(2k+1)=∑k=1n1/2k−1−1/2k+1=1−1/2n+1=2n/2n+1
Donc :
s= |
|
Avec Xcas, on tape :
normal(sum(1/((2k-1)*(2k+1)),k=1..n))
On obtient :
n/(2n+1)
On remarque que :
2/(k)(k+2)=1/k−1/k+2
Donc que :
2s=∑k=1n1/k(k+2)=∑k=1n1/k−1/k+2=∑p=1n1/p−∑p=3n+21/p=1+1/2−1/n+1−1/n+2=3*n2+5*n/2*n2+6*n+4
Donc :
s= |
|
Avec Xcas, on tape :
normal(sum(1/(k*(k+2)),k=1..n))
On obtient :
(3*n^
2+5*n)/(4*n^
2+12*n+8)
On tape :
partfrac(1/(k*(k+1)*(k+2)),k)
On obtient :
1/(k*2)-1/(k+1)+1/((k+2)*2)
Donc :
2*s=∑k=1n1/k−1/(k+1)−(1/(k+1)−1/(k+2))=
∑p=1n1/p−1/(p+1)−∑k=2n+11/p−1/(p+1)=
2s=1−1/2−1/n+1+1/(n+2)=(n2+3*n)/(2*n2+6*n+4)
Donc :
s= |
|
Avec Xcas, on tape :
normal(sum(1/(k*(k+2)),k=1..n))
On obtient :
(n^
2+3*n)/(4*n^
2+12*n+8))
On veut savoir si la convergence d’une série est lente ou rapide, par exemple
savoir combien il faut de termes pour que
∑k=1n1/k>10.
On peut taper :
sum(1./n,n=1..20000)
On obtient :
0.1048072821722932757281444e2
ou faire un calcul exact plus long :
s:=sum(1/n,n=1..20000)
On obtient :
Integer_too_large_for_display/Integer_too_large_for_display
On tape alors :
evalf(s)
On obtient :
0.1048072821722932757281444e2
On veut voir l’incidence qu’il y a sur la précision et sur le temmps
d’exécution selon que l’on commence à faire la somme par le plus petit
indice ou par le plus grand indice ou faire la somme avec une procédure
récursive.
On suppose a≤ b sinon on échange a et b.
//som1 fait la somme de a jusque b som1(u,a,b):={ local k,c,s; si b<a alors c:=b;b:=a;a:=c;fsi; s:=0; pour k de a jusque b faire s:=s+u(k); fpour; return s; } :; //som2 fait la somme de b jusque a som2(u,a,b):={ local k,c,s; si b<a alors c:=b;b:=a;a:=c;fsi; s:=0; pour k de b jusque a pas -1 faire s:=s+u(k); fpour; return s; } :; //som3 fait la somme recusivement en partageant en 2 som3(u,a,b):={ local k,c,s; si a>b alors return som3(u,b,a); fsi; si a==b alors return u(a); fsi; si b==a+1 alors return u(a)+u(b); fsi; c:=floor((a+b)/2); return som3(u,a,c)+som3(u,c+1,b); }:;
On pose :
u(n):=1/n
et
v(n):=1./n
Pour faire des calculs exacts, on tape :
evalf(som1(u,1,100000)) (Evaluation time: 22.6)
evalf(som2(u,1,100000)) (Evaluation time: 33.24)
evalf(som3(u,1,100000)) (Evaluation time: 29.92)
On obtient avec 24 digits :
0.1209014612986342794736320e2
Le résultat est bien sûr le même car les calculs sont faits de façon
exacte et seule la réponse est donnée de façon approchée. som1 est plus rapide car on ajoute au début des fractions qui
ont un petit dénominateur, som2 est plus lente car on ajoute au
toujours des fractions qui ont un grand dénominateur et som3 est
intermédiaire mais plutot plus lente car on fait appel à som3(u,c+1,b)
où on ajoute des fractions qui ont un grand dénominateur à
som3(u,a,c) qui elle aussi comporte des termes ayant un grand
dénominateur.
Pour faire des calculs approchés, on tape :
som1(v,1,100000)
On obtient avec 24 digits (Evaluation time: 7.14) :
0.1209014612986342794736311e2
som2(v,1,100000)
On obtient avec 24 digits (Evaluation time: 7.16) :
0.1209014612986342794736294e2
som3(v,1,100000)
On obtient avec 24 digits (Evaluation time: 30.74) :
0.1209014612986342794736320e2
La procédure récursive est nettement plus longue à exécuter mais par
contre elle donne un meilleur résultat.