Aide sur table_fonction

Utilisation de Xcas

Modérateur : xcasadmin

dlefur
Messages : 60
Inscription : dim. mai 04, 2008 1:58 pm
Localisation : São Paulo, Brésil
Contact :

Aide sur table_fonction

Message par dlefur » mar. juin 03, 2008 10:36 pm

Bonjour,

je viens de découvrir la fonction table_fonction. Mieux vaut tard que jamais ...

Dans l'aide sur table_fonction, on propose les exemple suivants :
- table_fonction
- table_fonction(sin(x),x)
- table_fonction(x^2-x-2,x)

Il me semble important de mettre au moins un exemple sur les paramètres suivants (xo et h). Je tiens par ailleurs à signaler que cette aide sur les fonctions est vraiment extrêmement pratique, un gros plus d'Xcas !

Autre point. Sur le manuel du tableur, /doc/fr/cassim/node26.html ,
on indique que dans la deuxième colonne, deuxième ligne, on écrit "Tablefunc".

Voici mon exemple : j'ai tapé en A0 : table_fonction(f,x,-3,1)
Je me retrouve en B1 avec une formule :" =plotfunc(B0,A0=((-3) .. 10.0))".

Si c'est normal, il faudrait ajuster la doc. Sinon, comment visualiser le résultat de cette formule ? dans le tableur ? C'est surprenant de se retrouver avec une commande de tracé alors qu'on a demandé un tableau de valeurs !

Désolé pour toutes mes questions mais Xcas donne tellement de possibilités que je suis curieux et que je teste un peu tout dans le désordre.

jjbat
Messages : 29
Inscription : jeu. juin 28, 2007 8:11 am
Localisation : Toulouse
Contact :

Message par jjbat » mer. juin 04, 2008 7:19 am

Salut,
Sinon, comment visualiser le résultat de cette formule ? dans le tableur ?
il me semble que la fonction tablefunc() n'est à utiliser qu'à l'intérieur du tableur.
Pour de simples calculs de tableaux de valeurs, il est inutile d'ouvrir un niveau tableur, la commande seq() fait parfaitement l'affaire.
En écrivant dans une ligne de commande:

Code : Tout sélectionner

seq([k,k^2],k,0,10,2)
tu obtiens un tableau de valeurs de la fonction carré;

Code : Tout sélectionner

prepend(seq([k,k^2],k,0,10,2),[x,x^2])
la fonction prepend() qui ajoute un élément en tête d'une liste te permettra, entre autres choses de mettre des titres de colonnes (ou de lignes);

Code : Tout sélectionner

tran(prepend(seq([k,k^2],k,0,10,2),[x,x^2]))
et comme Xcas ne recule pas devant l'algèbre linéaire et sait transposer les matrices par la fonction tran() tu peux changer l'orientation.

À+

J-Joël Bataille

dlefur
Messages : 60
Inscription : dim. mai 04, 2008 1:58 pm
Localisation : São Paulo, Brésil
Contact :

Message par dlefur » mer. juin 04, 2008 11:09 am

merci pour cette suggestion.

Le résultat est parfait mais la syntaxe est longue donc difficile à retenir. L'idéal serait une fonction Xcas qui fasse cela ...

Par ailleurs l'appel de table_fonction dans un tableur n'a pas que des inconvénients. On peut ainsi changer une des valeurs de x pour avoir l'image correspondante.

jjbat
Messages : 29
Inscription : jeu. juin 28, 2007 8:11 am
Localisation : Toulouse
Contact :

Message par jjbat » mer. juin 04, 2008 12:59 pm

L'idéal serait une fonction Xcas qui fasse cela
Xcas te permet de créer tes propres fonctions que tu peux sauvegarder et réutiliser dans d'autres sections. Par exemple:

Code : Tout sélectionner

MonTabVal(f,a,b,p):={
local t,l,n;
l:=[];
t:=a;
n:=floor((b-a)/p);
for(j:=0;j<=n;j++)
{l:=append(l,[t,f(t)]);t:=t+p;};
l:=prepend(l,[x,f(x)]);
l:=tran(l);
l:=simplifier(l)
return(l); 
}
ce code définit la fonction MonTabVal() qui pourra être appelée avec les paramètres de ton choix par exemple

Code : Tout sélectionner

f(x):=sin(x);g(x):=x^3;
MonTabVal(f,0,pi,pi/3);
MonTabVal(g,0,5,1);

dlefur
Messages : 60
Inscription : dim. mai 04, 2008 1:58 pm
Localisation : São Paulo, Brésil
Contact :

Message par dlefur » mer. juin 04, 2008 6:27 pm

Merci pour la fonction.

A ce sujet, où enregistrer cette fonction dans Xcas pour la rendre accessible par la suite, à l'ouverture d'une nouvelle session ?

jjbat
Messages : 29
Inscription : jeu. juin 28, 2007 8:11 am
Localisation : Toulouse
Contact :

Message par jjbat » mer. juin 04, 2008 9:19 pm

Dans une session Xcas:
1) tu ouvres un niveau d'edition de programme (raccourci Alt+p ou bien edit->add->program)
2) dans ce niveau tu edites le code de tes fonctions puis tu les valides en utilisant le bouton OK. Xcas procède à une vérification de la syntaxe, si c'est bon tes fonctions sont désormais disponibles dans tous les niveaux de ta session.
3) Si tu veux pouvoir les réutiliser tu sauvegardes le contenu de ton niveau d'édition de programme ( bouton Save de ce niveau)
4) pour les réutiliser dans une session ultérieure, tu les recharges par file->insert->program ce qui te redonnes le niveau d'edition que tu valides par le bouton OK

parisse
Messages : 5739
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » ven. juin 06, 2008 6:59 am

quelques remarques complementaires:
- pour table_fonction (tablefunc), c'est une fonction qui etait destinee a n'etre utilisee que dans le tableur. Mais il est plus simple dans le tableur d'ouvrir l'item Fonction du menu Maths et de remplir les cases, ce qui appelle tablefunc avec tous ses arguments. Ca doit etre pour cela que la doc n'est pas a jour:-)
- en general dans le tableur, il peut y avoir des instructions graphiques 2-d. Celles-ci apparaissen alors dans le graphe du tableur, pour voir ce graphe il peut etre necessaire de cliquer dans la ligne d'etat du tableur (au-dessus des noms de colonnes) et cocher Graphe. C'est ce que fait tablefunc en introduuisant dans une cellule une formule dont le resultat est le graphe de la fonction. Mais on peut bien sur creer soi-meme des instructions graphiques, par exemple pour tracer la suite
u_(n+1)=u_n/(n+1)+1
on ne peut pas le faire avec le menu Maths->Sequences->Suites recurrentes a cause du n+1, on met dans A1 =A0+1 on recopie vers le bas, dans B1 la valeur de u_1, dans B2 =B1/(A1+1)+1, on recopie vers le bas,
dans C1 on met =point(A1,B1) et on recopie vers le bas, on voit alors le nuage de points (n,u_n).
- on peut sauvegarder dans le fichier .xcasrc des commandes xcas executees au lancement (mais ce fichier est ecrase si on change la config dans xcas et si on la sauve). De maniere plus perenne, on peut stocker des procedures dans un fichier, par exemple "proc.cas", et on les lit par read("proc.cas"):; en 1er niveau.

Répondre