Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Arthur75
Inscrit le: 07 Jan 2007 Messages: 8
|
Posté le: 09 Jan 2007 16:06 Sujet du message: Problème avec Maple sur polynomes série d'entiers |
|
|
Bonjour tout le monde !
Je suis un petit nouveau ici, et aussi avec Maple ...
Donc j'essaie d'utiliser Maple pour des calculs sur des polynomes d'entiers/séries d'entiers.
Et dans la feuille ci dessous, Maple fait de toute évidence une erreur de calcul !!!
<a href='http://maplenet.maplesoft.com/maplenet/worksheet/mapleprimes/3284_test2.mw'>View 3284_test2.mw on MapleNet</a> or <a href='http://www.mapleprimes.com/files/3284_test2.mw'>Download 3284_test2.mw</a><br/><a href='http://www.mapleprimes.com/viewfile/1175'>View file details</a>
Qu'est que je fais qui ne va pas ?
Et bonne année à tous !
Dernière édition par Arthur75 le 09 Jan 2007 17:38; édité 1 fois |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 09 Jan 2007 16:38 Sujet du message: |
|
|
Salut,
J'ai réécrit sous cette forme et je ne trouve pas d'erreur??
Code: |
> D1 := proc (p) options operator, arrow; 1 end proc;
> D2 := proc (p) options operator, arrow; p-1 end proc;
> D3 := proc (p) options operator, arrow; sum(D2(p-i), i = 1 .. p-2) end proc;
> factor(D3(p));
> D4 := proc (p) options operator, arrow; sum(D3(p-i), i = 1 .. p-3) end proc;
> factor(D4(p));
> D5 := proc (p) options operator, arrow; sum(D4(p-i), i = 1 .. p-4) end proc;
> factor(D5(p));
> D5(14);
D1 := p -> 1
D2 := p -> p - 1
p - 2
-----
\
D3 := p -> ) D2(p - i)
/
-----
i = 1
(p - 1) (p - 2)
---------------
2
p - 3
-----
\
D4 := p -> ) D3(p - i)
/
-----
i = 1
(p - 1) (p - 2) (p - 3)
-----------------------
6
p - 4
-----
\
D5 := p -> ) D4(p - i)
/
-----
i = 1
(p - 2) (p - 3) (p - 4) (p - 7)
- -------------------------------
12
-770
|
C'était quoi d'après toi l'erreur de calcul évidente? |
|
Revenir en haut de page |
|
 |
Arthur75
Inscrit le: 07 Jan 2007 Messages: 8
|
Posté le: 09 Jan 2007 16:57 Sujet du message: |
|
|
ALS a écrit: |
C'était quoi d'après toi l'erreur de calcul évidente? |
Merci beaucoup pour ta réponse
Et bien tout simplement que ces fonctions ne sont jamais négatives !!
J'avoue que je ne comprends vraiment pas !
Ou je fais une grossière erreur ? |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 09 Jan 2007 17:06 Sujet du message: |
|
|
D5(p)=Sum( (p-i-1)*(p-i-2)*(p-i-3)/6, i=1..p-4) donc certains termes peuvent être <0.
en développant: D5(p)=-14+103/6*p+4/3*p^3-89/12*p^2-1/12*p^4.
A+ |
|
Revenir en haut de page |
|
 |
Arthur75
Inscrit le: 07 Jan 2007 Messages: 8
|
Posté le: 09 Jan 2007 17:18 Sujet du message: |
|
|
ALS a écrit: | D5(p)=Sum( (p-i-1)*(p-i-2)*(p-i-3)/6, i=1..p-4) donc certains termes peuvent être <0.
en développant: D5(p)=-14+103/6*p+4/3*p^3-89/12*p^2-1/12*p^4.
A+ |
D4(p) est toujours positive pour p>= 4
donc pour p>=5,
D5(p) est toujours positive ! Car p-i varie entre p-1 et 4, donc tous les D4(p-i) sont positifs ! ??????????  |
|
Revenir en haut de page |
|
 |
Arthur75
Inscrit le: 07 Jan 2007 Messages: 8
|
Posté le: 09 Jan 2007 23:35 Sujet du message: |
|
|
D'ailleurs, la bonne valeur pour D5(14) est : 715
Calculée avec le code Python ci dessous :
Code: |
def D1(p):
return 1
def D2(p):
if p<2:
print "D2 error" , p
else:
return p-1
def D3(p):
r=0
if p<3:
print "D3 error" , p
else :
i=1
while i <= p-2:
r+=D2(p-i)
i+=1
return r
def D4(p):
r=0
if p<4:
print "D4 error" , p
else :
i=1
while i <= p-3:
r+=D3(p-i)
i+=1
return r
def D5(p):
r=0
if p<5:
print "D5 error" , p
else :
i=1
while i <= p-4:
r+=D4(p-i)
i+=1
return r
|
Bizarre non ?! [/code] |
|
Revenir en haut de page |
|
 |
Arthur75
Inscrit le: 07 Jan 2007 Messages: 8
|
Posté le: 10 Jan 2007 12:35 Sujet du message: |
|
|
Je pense que le problème vient de la non définition de l'espace de départ (ou d'application) des fonctions, comment définit on l'espace de départ dans Maple ? |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 10 Jan 2007 14:53 Sujet du message: |
|
|
Bonjour, il faut toujours se méfier des réponses hatives avec la récursivité. J'ai répondu trop vite et avec une erreur dans mon dernier message. J'ai modifié les procédures et j'obtiens biens 715 pour D5(14).
Code: |
D1 := proc(p::posint) 1 end proc;
D2 := proc(p::posint) if 2 <= p then p - 1 end if end proc;
D3 := proc(p::posint)
if 3 <= p then add(D2(p - i), i = 1 .. p - 2) end if
end proc;
D4 := proc(p::posint)
if 4 <= p then add(D3(p - i), i = 1 .. p - 3) end if
end proc;
D5 := proc(p::posint)
if 5 <= p then add(D4(p - i), i = 1 .. p - 4) end if
end proc;
D5(14);
715
|
On peut définir l'ensemble de définition en précisant par exemple un type de variable comme ici posint (entier >0)
A plus tard.
Dernière édition par ALS le 10 Jan 2007 14:59; édité 1 fois |
|
Revenir en haut de page |
|
 |
|