Représenter une fonction continue par morceaux

Tout ce qui concerne les différents logiciels mathématiques (Matlab, Maxima, Scilab, R, Maple, Mathematica, ...) et les calculatrices scientifiques.
Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.
> Préciser le nom du logiciel concerné dans le titre de votre message.

Représenter une fonction continue par morceaux

Messagepar guiguiche » Lundi 02 Novembre 2009, 18:58

Bonsoir

Y a-t-il une bonne âme pour m'expliquer comment obtenir simplement la représentation graphique de la fonction mentionnée en remarque ici avec Maxima ou GeoGebra. Avec GeoGebra, je peux bien sûr effectuer le tracé des différents segments mais j'aimerai que ce soit un peu plus automatique.

Merci
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8073
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Représenter une fonction continue par morceaux

Messagepar plop08 » Lundi 02 Novembre 2009, 19:11

alors il semblerait qu'avec géogebra tu puisses faire des if then else :
http://megamaths.free.fr/pdf/aidememoire.pdf (tout à la fin)

et c'est la structure qu'emploie ma HP pour les fonctions définies par morceau.
plop08
Téra-utilisateur
 
Messages: 1127
Inscription: Mardi 28 Avril 2009, 18:05
Localisation: Reims
Statut actuel: Actif et salarié | Enseignant

Re: Représenter une fonction continue par morceaux

Messagepar guiguiche » Lundi 02 Novembre 2009, 19:23

Je sais qu'on peut en faire, même si je n'ai jamais pratiqué, mais j'ai trop de conditions. J'aimerai un truc qui puisse utiliser un compteur entier n puis faire le tracé pour un certain nombre de valeurs de n.
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8073
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: Représenter une fonction continue par morceaux

Messagepar plop08 » Lundi 02 Novembre 2009, 19:37

Image

avec un n variable ?
plop08
Téra-utilisateur
 
Messages: 1127
Inscription: Mardi 28 Avril 2009, 18:05
Localisation: Reims
Statut actuel: Actif et salarié | Enseignant

Re: Représenter une fonction continue par morceaux

Messagepar oleanet » Lundi 02 Novembre 2009, 19:46

guiguiche a écrit:Je sais qu'on peut en faire, même si je n'ai jamais pratiqué, mais j'ai trop de conditions. J'aimerai un truc qui puisse utiliser un compteur entier n puis faire le tracé pour un certain nombre de valeurs de n.


Avec TeXgraph bien sûr! Il suffit de remarquer que le n est la partie entière de x. Dans un élément graphique Utilisateur:

Code: Tout sélectionner
[
view(-0.5,5,-0.5,1), Marges(0,0,0,0), size(12,0),
NewMac("f", {on défnit la fonction f}
"[$n:=Ent(x), u:=1/(n+1)^2,
  if x<n+u/2 then (n+1)^2*(x-n)
  elif x<n+u then (n+1)^2*(n+u-x)
  else 0
fi]", x),
Axes(0,1+i/2), Width:=8,
Color:=red, ForMinToMax:=1,
Cartesienne( f(x),5,1)
]   


Image

PS: la définition de $f$ n'est pas tout à fait correcte dans le lien proposé, je me suis permise de rectifier :wink:
oleanet
Méga-utilisateur
 
Messages: 258
Inscription: Dimanche 24 Décembre 2006, 15:17

Re: Représenter une fonction continue par morceaux

Messagepar kojak » Lundi 02 Novembre 2009, 20:34

Avec GeoGebra, pour faire la partie entière c'est floor(x).

ensuite faut imbriquer des Si, j'ai un bug dans mon truc, j'arrive pas à redescendre
pas d'aide par MP
kojak
Modérateur
 
Messages: 10404
Inscription: Samedi 18 Novembre 2006, 19:50
Statut actuel: Actif et salarié | Enseignant

Re: Représenter une fonction continue par morceaux

Messagepar guiguiche » Lundi 02 Novembre 2009, 21:04

oleanet a écrit:Avec TeXgraph bien sûr!

Je ne sais pas pourquoi mais je le sentais bien arriver sur le tapis :D
Pour le moment, je n'ai jamais accroché à TeXgraph, mais c'est peut-être l'occasion de m'y mettre vraiment. Je vais regarder ça.
Merci pour la coquille.
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8073
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: Représenter une fonction continue par morceaux

Messagepar guiguiche » Lundi 02 Novembre 2009, 21:32

Curieusement, après copier/coller, j'ai les axes mais pas la courbe dans TeXgraph (1.93 installé chez moi). :cry:

Edit : après installation de la 1.94, ça fonctionne mieux mais ce n'est pas encore ça (il y a une courbe mais elle n'est pas correcte).
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8073
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: Représenter une fonction continue par morceaux

Messagepar oleanet » Lundi 02 Novembre 2009, 22:06

guiguiche a écrit:Curieusement, après copier/coller, j'ai les axes mais pas la courbe dans TeXgraph (1.93 installé chez moi). :cry:


Trop vieux! Cette version ne connaît pas la commande Cartesienne.

Edit : après installation de la 1.94, ça fonctionne mieux mais ce n'est pas encore ça (il y a une courbe mais elle n'est pas correcte).


Avec le nombre de points proposé par défaut c'est normal (les pics ne redescendent pas jusqu'à l'axe). J'ai du mettre un nombre de points égal à 500 avec le boutons Attributs, ou alors tu ajoutes NbPoints:=500 dans la commande avant le tracé:

Code: Tout sélectionner
[
view(-0.5,5,-0.5,1), Marges(0,0,0,0), size(12,0),
NewMac("f", {on définit la fonction f}
"[$n:=Ent(x), u:=1/(n+1)^2,
  if x<n+u/2 then (n+1)^2*(x-n)
  elif x<n+u then (n+1)^2*(n+u-x)
  else 0
fi]", x),
Axes(0,1+i/2), Width:=8,
Color:=red, ForMinToMax:=1,NbPoints:=500,
Cartesienne( f(x),5,1)
]   


Ps: je pense que tu peux transposer ce code en maxima pour définir la fonction, non?
oleanet
Méga-utilisateur
 
Messages: 258
Inscription: Dimanche 24 Décembre 2006, 15:17

Re: Représenter une fonction continue par morceaux

Messagepar guiguiche » Lundi 02 Novembre 2009, 22:26

C'est effectivement mieux avec un plus grand nombre de points. Merci.

Pour Maxima, on peut sûrement faire de même mais je n'ai jamais pratiqué que des graphiques très, très simples.
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8073
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: Représenter une fonction continue par morceaux

Messagepar OG » Mardi 03 Novembre 2009, 16:58

Bonjour

La fonction est continue sur $[0,+\infty[$, en plus d'être continue par morceaux...
Pour les graphiques de ce genre de fonctions, il vaut mieux générer les points des pics (à la main) plutôt que d'avoir à augmenter le nombre de points en passant par graph(fonction, intervalle). Vrai pour Maple, Scilab, etc....

(après un oubli: voici le code Asymptote pour le fameux tracé en 3 solutions)

Code: Tout sélectionner
import graph;
size(10cm,IgnoreAspect);
real  f(real x)
{
  int n=floor(x);
  real s=1/(n+1)^2;
  real v=0;
  if (x<n+s/2)
  {
    v=(n+1)^2*(x-n);
  }
  else if (x<n+s)
    {
      v=(n+1)^2*(n+s-x);
    }
  return v;
}
xaxis("$x$",RightTicks,Arrow);
yaxis("$y$",RightTicks,Arrow);

// version 1, non satisfaisante
// draw(graph(f,0,5,800),red+1bp);

// Version 2
int n=5;
real [] xpt={0};
for(int i=0;i<n;++i)
  {
    real u=1/(1+i)^2;
    xpt.push(i+u/2);xpt.push(i+u);xpt.push(i+1);
  }

real [] ypt=map(f,xpt);
draw(graph(xpt,ypt),red+.5bp);

// Version 3, pas besoin de f

int n=5;
real [] xpt={0};
real [] ypt={0};
for(int i=0;i<n;++i)
  {
    real u=1/(1+i)^2;
    xpt.push(i+u/2);xpt.push(i+u);xpt.push(i+1);
    ypt.insert(ypt.length,0.5,0,0);
  }
draw(graph(xpt,ypt),red+.5bp);
OG
Modérateur
 
Messages: 2286
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence


Retourner vers Logiciels mathématiques

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité