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...
Questions de débutant
Modérateur : xcasadmin
Re: Questions de débutant
Oui, si on tape par exemplealbenic 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 ?
l:=solve(1-a*x^2=x)
alors l est une liste, size(l) vaut 2, s[0] et s[1] sont les racines.
assume(a>0);Comment extraire la solution positive nommée par exemple s ?
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.
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.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.
Voici comment faire
f(x):=1-a*x^2;
f1:=function_diff(f);
solve(f1(s)=-1,a)
J'obtiens a=3/4
Non, c'est plutot plus simple, car il n'y a pas de calcul formel la-dedans. Menu Edit->ajouter->graphe & geo2d.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...
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).
Re: Questions de débutant
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 ?parisse a écrit :Oui, si on tape par exemplealbenic 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 ?
l:=solve(1-a*x^2=x)
alors l est une liste, size(l) vaut 2, s[0] et s[1] sont les racines.
assume(a>0);Comment extraire la solution positive nommée par exemple s ?
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.
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.
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 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.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.
Voici comment faire
f(x):=1-a*x^2;
f1:=function_diff(f);
solve(f1(s)=-1,a)
J'obtiens a=3/4
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 ?
Ce n'est que cela alors j'y vais de ce pas.Non, c'est plutot plus simple, car il n'y a pas de calcul formel la-dedans. Menu Edit->ajouter->graphe & geo2d.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...
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).
Encore merci et certainement à bientôt sur le forum pour d'autres soucis.
Re: Questions de débutant
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.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 ?
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).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 ?
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).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 ?
N'hesitez pas a nous faire part de vos soucis et de vos suggestions!Encore merci et certainement à bientôt sur le forum pour d'autres soucis.
Re: Questions de débutant
Je viens de refaire la manip et effectivement, xcas retourne immédiatement [].parisse a écrit :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.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 ?
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).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 ?
J'avais du faire une autre erreur mais laquelle ? Désolé.
Merci pour le temps consacré à m'aider, j'ai réellement appris.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).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 ?
N'hesitez pas a nous faire part de vos soucis et de vos suggestions!Encore merci et certainement à bientôt sur le forum pour d'autres soucis.
A bientôt, Benoît GUY.