Questions de débutant

Utilisation de Xcas

Modérateur : xcasadmin

albenic
Messages : 40
Inscription : mer. oct. 08, 2008 7:19 pm

Questions de débutant

Message par albenic » jeu. oct. 09, 2008 12:44 pm

Bonjour,

Depuis quelques temps, j'essaye d'apprivoiser ce logiciel. J'arrive à faire des trucs simples mais pour la première fois, j'aimerai me lancer dans un calcul plus sophistiqué.
La situation, j'ai une fonction f définie par f(x)=1-ax^2 a est un paramètre réel positif et x est la variable réelle positive.
Tout d'abord je cherche les solutions de l'équation f(x)=x. Il y en a deux dont une positive celle qui m'intéresse.
Premier souci, xcas me retourne les deux mais sous quelle forme ? Est-ce une liste ? Comment extraire la solution positive nommée par exemple s ?
Puis je veux la valeur de la dérivée de f en s.
Second souci, je crois avoir réussi à extraire la solution s mais lorsque je lance le calcul de f'(s) xcas rame voire se ferme. Pourtant sur papier cela se fait plutôt bien.
Dernier souci, je cherche ensuite à résoudre f'(s) = -1 (f'(s) dépend de a donc la solution s'exprime en fonction de a).
Là je n'ai pas pu essayer vu que je n'ai pas franchi l'étape précédente.
Par choix, je préfère ne pas vous donner les commandes que j'ai utilisé pour voir lesquelles utilise quelqu'un qui maitrise ce logiciel ?
Par avance merci, Benoît.

PS : l'étape suivante est la représentation graphique et l'étude de la vitesse de convergence éventuelle d'une suite définie par u_0 et u_{n+1} = f(u_n) en faisant varier les paramètres a et u_0. Mais là je crois que j'ai encore du boulot...

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

Re: Questions de débutant

Message par parisse » jeu. oct. 09, 2008 4:56 pm

albenic a écrit :Bonjour,

Depuis quelques temps, j'essaye d'apprivoiser ce logiciel. J'arrive à faire des trucs simples mais pour la première fois, j'aimerai me lancer dans un calcul plus sophistiqué.
La situation, j'ai une fonction f définie par f(x)=1-ax^2 a est un paramètre réel positif et x est la variable réelle positive.
Tout d'abord je cherche les solutions de l'équation f(x)=x. Il y en a deux dont une positive celle qui m'intéresse.
Premier souci, xcas me retourne les deux mais sous quelle forme ? Est-ce une liste ?
Oui, si on tape par exemple
l:=solve(1-a*x^2=x)
alors l est une liste, size(l) vaut 2, s[0] et s[1] sont les racines.
Comment extraire la solution positive nommée par exemple s ?
assume(a>0);
s:=max(l[0],l[1]);
Mais il vous faudra attendre que je mette a jour les binaires (sauf sous linux ou ca vient d'etre fait pour xcas_root), car en testant il est apparu un bug que je viens de corriger. Donc s:=l[1] pour le moment.
Puis je veux la valeur de la dérivée de f en s.
Second souci, je crois avoir réussi à extraire la solution s mais lorsque je lance le calcul de f'(s) xcas rame voire se ferme. Pourtant sur papier cela se fait plutôt bien.
je présume que c'est la facon de définir f' qui a posé problème, vous nous direz quelle instruction vous avez utilisé pour qu'on puisse savoir.
Voici comment faire
f(x):=1-a*x^2;
f1:=function_diff(f);
solve(f1(s)=-1,a)
J'obtiens a=3/4
PS : l'étape suivante est la représentation graphique et l'étude de la vitesse de convergence éventuelle d'une suite définie par u_0 et u_{n+1} = f(u_n) en faisant varier les paramètres a et u_0. Mais là je crois que j'ai encore du boulot...
Non, c'est plutot plus simple, car il n'y a pas de calcul formel la-dedans. Menu Edit->ajouter->graphe & geo2d.
Puis menu Edit du niveau de géométrie, ajouter paramètre, modifiez les champs si nécessaire (ici par défaut c'est pas mal). Puis menu du niveau de géométrie, Graphe->Suite récurrente, mettre f(x) dans expression.
Vous pouvez ensuite faire varier a et u0 à la souris (ou entrer une valeur numérique en cliquant avec le bouton droit de la souris sur le curseur).
Pour avoir les valeurs numériques, on peut faire l'étude au tableur (mais on ne peut pas faire bouger a et u0 à la souris).

albenic
Messages : 40
Inscription : mer. oct. 08, 2008 7:19 pm

Re: Questions de débutant

Message par albenic » jeu. oct. 09, 2008 7:13 pm

parisse a écrit :
albenic a écrit :Bonjour,

Depuis quelques temps, j'essaye d'apprivoiser ce logiciel. J'arrive à faire des trucs simples mais pour la première fois, j'aimerai me lancer dans un calcul plus sophistiqué.
La situation, j'ai une fonction f définie par f(x)=1-ax^2 a est un paramètre réel positif et x est la variable réelle positive.
Tout d'abord je cherche les solutions de l'équation f(x)=x. Il y en a deux dont une positive celle qui m'intéresse.
Premier souci, xcas me retourne les deux mais sous quelle forme ? Est-ce une liste ?
Oui, si on tape par exemple
l:=solve(1-a*x^2=x)
alors l est une liste, size(l) vaut 2, s[0] et s[1] sont les racines.
Comment extraire la solution positive nommée par exemple s ?
assume(a>0);
s:=max(l[0],l[1]);
Mais il vous faudra attendre que je mette a jour les binaires (sauf sous linux ou ca vient d'etre fait pour xcas_root), car en testant il est apparu un bug que je viens de corriger. Donc s:=l[1] pour le moment.
Comment êtes-vous sur que l[1] est la racine positive, grâce à la commande assume(a>0) et parce que xcas range les solutions par ordre croissant ?
Quoi qu'il en soit, c'est ce que j'avais trouvé mais je n'aimais pas cette solution à cause du doute cité précédemment.
Puis je veux la valeur de la dérivée de f en s.
Second souci, je crois avoir réussi à extraire la solution s mais lorsque je lance le calcul de f'(s) xcas rame voire se ferme. Pourtant sur papier cela se fait plutôt bien.
je présume que c'est la facon de définir f' qui a posé problème, vous nous direz quelle instruction vous avez utilisé pour qu'on puisse savoir.
Voici comment faire
f(x):=1-a*x^2;
f1:=function_diff(f);
solve(f1(s)=-1,a)
J'obtiens a=3/4
Alors là mystère, j'ai fait cela, la seule différence et que dans solve(f1(s)=-1,a) je n'ai pas précisé l'argument ",a".
Je viens de réessayer et effectivement l'argument "a" est prépondérant. Cela signifie t-il que sans précision, xcas résout les équations avec comme inconnue x. S'il n'y en a pas et sans précision, il mouline à vide ?

Quoi qu'il en soit merci de votre aide. J'appréhendais de me lancer dans xcas mais en fait, il reste assez intuitif et je pense que je vais même me lancer avec mes élèves de terminale S.

Un dernier détail. J'avais codé cela :

assume(a>0);
f(x):=1-a*x^2;

Et là j'ai eu droit à un :
// Parsing f
// Warning: a declared as global variable(s) compiling f
Que cela signifie t-il ?
PS : l'étape suivante est la représentation graphique et l'étude de la vitesse de convergence éventuelle d'une suite définie par u_0 et u_{n+1} = f(u_n) en faisant varier les paramètres a et u_0. Mais là je crois que j'ai encore du boulot...
Non, c'est plutot plus simple, car il n'y a pas de calcul formel la-dedans. Menu Edit->ajouter->graphe & geo2d.
Puis menu Edit du niveau de géométrie, ajouter paramètre, modifiez les champs si nécessaire (ici par défaut c'est pas mal). Puis menu du niveau de géométrie, Graphe->Suite récurrente, mettre f(x) dans expression.
Vous pouvez ensuite faire varier a et u0 à la souris (ou entrer une valeur numérique en cliquant avec le bouton droit de la souris sur le curseur).
Pour avoir les valeurs numériques, on peut faire l'étude au tableur (mais on ne peut pas faire bouger a et u0 à la souris).
Ce n'est que cela alors j'y vais de ce pas.

Encore merci et certainement à bientôt sur le forum pour d'autres soucis.

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

Re: Questions de débutant

Message par parisse » ven. oct. 10, 2008 8:19 am

albenic a écrit : Comment êtes-vous sur que l[1] est la racine positive, grâce à la commande assume(a>0) et parce que xcas range les solutions par ordre croissant ?
Non, il n'y a pas d'ordre. J'ai simplement fait normal(l[1]-l[0]) pour voir par moi-meme que l[1] etait plus grand. Mais avec le bug corrige, max donne la plus grande racine.
Alors là mystère, j'ai fait cela, la seule différence et que dans solve(f1(s)=-1,a) je n'ai pas précisé l'argument ",a".
Je viens de réessayer et effectivement l'argument "a" est prépondérant. Cela signifie t-il que sans précision, xcas résout les équations avec comme inconnue x. S'il n'y en a pas et sans précision, il mouline à vide ?
Oui, si on ne met qu'un argument a solve, il resoud par rapport a x. Par contre je n'ai pas de moulinage a vide si je fais solve(f1(s)=-1) ca me repond tout de suite []. Pouvez-vous m'envoyer la session precise .xws ou poster ici la liste des instructions (vous pouvez les obtenir en utilisant le menu Fich->Exporter->texte xcas).
Un dernier détail. J'avais codé cela :

assume(a>0);
f(x):=1-a*x^2;

Et là j'ai eu droit à un :
// Parsing f
// Warning: a declared as global variable(s) compiling f
Que cela signifie t-il ?
Que la definition de f fait intervenir une variable globale a. Ici c'est intentionnel, dans un programme, cela permet de detecter un oubli de declaration de variable locale ou une faute de frappe (utilisation d'un nom de variable errone).
Encore merci et certainement à bientôt sur le forum pour d'autres soucis.
N'hesitez pas a nous faire part de vos soucis et de vos suggestions!

albenic
Messages : 40
Inscription : mer. oct. 08, 2008 7:19 pm

Re: Questions de débutant

Message par albenic » dim. oct. 12, 2008 6:29 pm

parisse a écrit :
albenic a écrit : Comment êtes-vous sur que l[1] est la racine positive, grâce à la commande assume(a>0) et parce que xcas range les solutions par ordre croissant ?
Non, il n'y a pas d'ordre. J'ai simplement fait normal(l[1]-l[0]) pour voir par moi-meme que l[1] etait plus grand. Mais avec le bug corrige, max donne la plus grande racine.
Alors là mystère, j'ai fait cela, la seule différence et que dans solve(f1(s)=-1,a) je n'ai pas précisé l'argument ",a".
Je viens de réessayer et effectivement l'argument "a" est prépondérant. Cela signifie t-il que sans précision, xcas résout les équations avec comme inconnue x. S'il n'y en a pas et sans précision, il mouline à vide ?
Oui, si on ne met qu'un argument a solve, il resoud par rapport a x. Par contre je n'ai pas de moulinage a vide si je fais solve(f1(s)=-1) ca me repond tout de suite []. Pouvez-vous m'envoyer la session precise .xws ou poster ici la liste des instructions (vous pouvez les obtenir en utilisant le menu Fich->Exporter->texte xcas).
Je viens de refaire la manip et effectivement, xcas retourne immédiatement [].
J'avais du faire une autre erreur mais laquelle ? Désolé.
Un dernier détail. J'avais codé cela :

assume(a>0);
f(x):=1-a*x^2;

Et là j'ai eu droit à un :
// Parsing f
// Warning: a declared as global variable(s) compiling f
Que cela signifie t-il ?
Que la definition de f fait intervenir une variable globale a. Ici c'est intentionnel, dans un programme, cela permet de detecter un oubli de declaration de variable locale ou une faute de frappe (utilisation d'un nom de variable errone).
Encore merci et certainement à bientôt sur le forum pour d'autres soucis.
N'hesitez pas a nous faire part de vos soucis et de vos suggestions!
Merci pour le temps consacré à m'aider, j'ai réellement appris.
A bientôt, Benoît GUY.

Répondre