fonctions affines par morceaux

Voir le sujet précédent Voir le sujet suivant Aller en bas

fonctions affines par morceaux

Message  Joffrey le Lun 29 Sep - 22:19

Bonsoir,

Juste une petite question, n'existait-il pas sur ce forum ou sur l'ancien un petit topic sur les fonctions affines par morceaux?
N'aurais-tu pas sous la main le lien? ou un petite macro?

Merci

Joffrey

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: fonctions affines par morceaux

Message  P.Fradin le Lun 29 Sep - 23:31

Joffrey a écrit:Bonsoir,

Juste une petite question, n'existait-il pas sur ce forum ou sur l'ancien un petit topic sur les fonctions affines par morceaux?
N'aurais-tu pas sous la main le lien? ou un petite macro?

Merci

Joffrey

Bonsoir Jeoffrey,

Pour une fonction définie par morceaux il y a la structure

if ...then...elif... then ...else ... fi


Exemple:
Code:

Cartesienne( if x<=-1 then 2*x+3
            elif x<2 then -x+1
            elif x<4 then 3*x-6
            else 3*x
            fi, 5,1) 

Mais ce code n'est pas optimal, car si la courbe est effectivement affine par morceaux, il s'agit de dessiner des segments de droite, donc 2 points seulement par morceau. A ce moment là on peut envisager une macro, par exemple:
affine( intervalle1, expression1, intervalle2, ...)


Code:

{affine(intervalle1, expression1, ...)}
Ligne(
for k from 1 to Nargs()/2 do
    $x:=Args(2*k-1), $x1:=x[1], $x2:=x[2],
    $y1:=Eval(["[x:=",x1,",",StrArgs(2*k),"]"]),
    $y2:=Eval(["[x:=",x2,",",StrArgs(2*k),"]"]),
    x1+i*y1,x2+i*y2,jump
od,0) 

Exemple:
Code:

[Axes(0,1+i),
Color:=red, Width:=8,
affine([-5,-1],2*x+1, [-1,1],-3*x+2, [1,2],-x, [2,5],2*x-6) ] 

ce qui donne:

La macro est basique. Toute idée d'amélioration est la bienvenue. Mais cette macro ne fait que le dessin, alors que le premier exemple définit une fonction ce qui peut parfois être mieux suivant ce que l'on veut faire.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re,

Message  Joffrey le Lun 29 Sep - 23:44

Désolé, je me suis mal exprimé, j'avais le souvenir d'une macro qui gérait le type de fonction suivante :

avec les points inclus et exclus.

Joffrey

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: fonctions affines par morceaux

Message  P.Fradin le Lun 29 Sep - 23:59

Joffrey a écrit:Désolé, je me suis mal exprimé, j'avais le souvenir d'une macro qui gérait le type de fonction suivante :

avec les points inclus et exclus.

Joffrey

Ah! Ok! C'était au sujet du modèle marker.mod.

Charge ce modèle et essaie ce code:

Code:

[
 Color:=red, Width:=8,
 withMark(
        Cartesienne( if -2<x And x<=0 then 1 elif 0<x And x<=2 then x-2 fi, 5, 1),
        Oarc, Carc
        )
]


ce qui donne:

Bon, ce modèle n'est pas encore documenté ...

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: fonctions affines par morceaux

Message  Joffrey le Mar 30 Sep - 0:08

Oui c'est bien cela, mais comme je ne me souvenais pas du nom du modèle...

Après essai, tout est nickel

Merci

Joffrey

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: fonctions affines par morceaux

Message  Contenu sponsorisé Aujourd'hui à 6:00


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum