Page 1 sur 1

[Maple] Définir des fonctions par récurrence : PB

Publié : 26 janv. 2010 21:04
par MaxxW
Bonsoir à toutes et à tous !

Voilà je peine à faire faire à Maple ce que je veux...
J'aimerais définir une suite de fonctions définies comme il suit :
N1 : x -> 1 si quand x est dans [0;1[ et 0 sinon ( fonction caractéristique de [0;1[ )
Puis, pour m>1 : $ N_m = \int_0^1 N_{m-1}(x-t) dt $

afin de pouvoir les tracer grâce à plot :

Voici ma feuille Maple :
Image

Comme vous pouvez le voir, Maple n'aime pas trop la récursion... Mais comme ces fonctions sont facilement calculables à la main, je suppose que Maple aussi peut le faire. Il faudrait juste qu'à chaque étape il me sorte une forme explicite de Nm et non pas qu'il garde la définition en fonction du Nm-1...

Un genre de evalf qui le forcerait à calculer l'esxpression de la fonction en fonction des heaviside quoi.

Sauriez-vous comment faire ?

Re: [Maple] Définir des fonctions par récurrence : PB

Publié : 27 janv. 2010 07:33
par phryte
Bonjour.
Je ferais :

Code : Tout sélectionner

restart:creer := proc(n) local i,N;
> N[1]:=x->Heaviside(x) - Heaviside(x-1);
> for i from 2 to n do
> N[i]:=int(N[i-1]*(x-t),t=0..1);
> od;
> end proc;

Re: [Maple] Définir des fonctions par récurrence : PB

Publié : 27 janv. 2010 13:48
par Zitoune
Coucou Maxww,

Comme souvent dans ce genre de cas, c'est une erreur d'écriture. Dans ta récursion, tu utilises H[n-1] au lieu d'utiliser N[n-1]. D'où l'erreur de Maple.
Normalement, int calcule bien une forme explicite de l'intégrale s'il y arrive.

Et une remarque générale, il vaut mieux définir les fonctions comme ceci N:=Heaviside(x), et utiliser ensuite subs, eval(f), diff, etc pour les opérations courantes, plutôt que la notation flèche massivement plébiscitée en prépa. Pour les opérations de base suscitées, la notation flèche est pratique (mais pas irremplaçable), mais c'est une horreur pour toutes les manipulations symboliques (comme... int !). Si tu replaces dans ton programme toutes les notations flèches par ce que j'ai dit, tu obtiens bien des fonctions de x que tu peux ensuite tracer.

Attention, le N de ta procédure est local, tu ne peux pas y accéder ensuite (sauf le dernier terme, qui lui est renvoyé). Pour la cosmétique tu peux faire ce genre de choses :

Code : Tout sélectionner

N[10]:=collect(creer(10), [Heaviside(x), Heaviside(x-1)], factor);
qui va te donner $ \displaystyle \frac{1}{512} (2x-1)^9 Heaviside(x) - \frac{1}{512} (2x-1)^9 Heaviside(x-1) $.


Bien à toi

Re: [Maple] Définir des fonctions par récurrence : PB

Publié : 29 janv. 2010 13:10
par MaxxW
Ok, merci beaucoup pour ta réponse ! Je n'ai pas Maple sous la main mais je testerai dès que possible ;)
Merci encore :)

Re: [Maple] Définir des fonctions par récurrence : PB

Publié : 03 févr. 2010 16:53
par MaxxW
C'est bon j'ai pu tester et ta méthode marche impec', merci beaucoup ! :P

Re: [Maple] Définir des fonctions par récurrence : PB

Publié : 03 févr. 2010 17:18
par Zitoune
You're welcome :wink: