Bizarre

Utilisation de Xcas

Modérateur : xcasadmin

Répondre
slejoly
Messages : 194
Inscription : sam. oct. 14, 2006 10:17 am
Localisation : Lorient

Bizarre

Message par slejoly » mar. oct. 20, 2009 7:43 am

Bonjour, quand je rentre :

ApproxNombredOr(n):={
a:=sqrt(1);
k:=1;
Or:=(1+sqrt(5))/2;
tantque Or-a>10^(-n)faire a:=sqrt(1+a) ; k:=1+k;ftantque;
return(k); }

ApproxNombredOr(14) renvoie 29
puis
ApproxNombredOr(15) renvoie 31
et ApproxNombredOr(16) puis 17 18 etc. renvoient toujours 32.

Qu'est-ce qui bloque ce compteur à 32 ?

Testé sous windows+ xcas 0.8.1
Stéphane Lejoly

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

Re: Bizarre

Message par parisse » mar. oct. 20, 2009 8:14 am

C'est la facon dont le test > est effectue. En effet, il y a evaluation numerique en utilisant la precision en vigueur au moment du test. Il y a donc meme un risque de bouclage infini. Il faut en effet s'assurer que la perte de precision due a la soustraction de 2 nombres flottants proches ne perturbe pas la validite du test, ce qui se fait en changeant la precision, disons au moins a n+4 ou n+5 Digits.
Je viens d'ailleurs de detecter et corriger un petit bug sur ce type de tests grace a cet exemple.

slejoly
Messages : 194
Inscription : sam. oct. 14, 2006 10:17 am
Localisation : Lorient

Re: Bizarre

Message par slejoly » mar. oct. 20, 2009 11:40 am

Cela signifie qu'en modifiant comme cela :

ApproxNombredOr(n):={
a:=sqrt(1);
k:=1;
Or:=(1+sqrt(5))/2;
DIGITS:=n+5;
tantque Or-a>10^(-n)faire a:=sqrt(1+a) ; k:=1+k;ftantque;
return(k); }

cela devrait marcher ?

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

Re: Bizarre

Message par parisse » mar. oct. 20, 2009 12:22 pm

oui (sauf si vous tombez sur le bug que j'ai corrige ce matin).

slejoly
Messages : 194
Inscription : sam. oct. 14, 2006 10:17 am
Localisation : Lorient

Re: Bizarre

Message par slejoly » mar. oct. 20, 2009 3:45 pm

D'accord, donc au lycée il faudrait je demande de réinstaller (dans quelque jours) Xcas et les élèves qui font le TPE réinstalleront Xcas chez eux une fois le paquet corrigé.

Merci.

Stéphane Lejoly

slejoly
Messages : 194
Inscription : sam. oct. 14, 2006 10:17 am
Localisation : Lorient

Re: Bizarre

Message par slejoly » lun. nov. 09, 2009 2:11 pm

Bonjour, avec la dernière version Debian :

Code : Tout sélectionner

ApproxNombredOr(n):={
a:=sqrt(1);
k:=1;
Or:=(1+sqrt(5))/2;
DIGITS:=999;
tantque Or-a>10^(-n)faire a:=sqrt(1+a) ; k:=1+k;ftantque;
return(k); }:;
semble bien marcher mais

Code : Tout sélectionner

ApproxNombredOrBis(n):={
a:=sqrt(1);
k:=1;
Or:=(1+sqrt(5))/2;
DIGITS:=n+5;
tantque Or-a>10^(-n)faire a:=sqrt(1+a) ; k:=1+k;ftantque;
return(k); }
:;
me renvoie une erreur syntaxe xcas pour la ligne

Code : Tout sélectionner

DIGITS:=n+5;
?

Stéphane Lejoly

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

Re: Bizarre

Message par parisse » lun. nov. 09, 2009 3:22 pm

en effet, il faut que je modifie ça, actuellement le membre de droite de l'affectation de Digits doit etre un nombre.

slejoly
Messages : 194
Inscription : sam. oct. 14, 2006 10:17 am
Localisation : Lorient

Re: Bizarre +

Message par slejoly » lun. nov. 30, 2009 8:09 pm

Bonsoir, en prenant beaucoup de précautions : DIGITS(n+10)

Code : Tout sélectionner

ApproxNombredOr(n):={
local a,k,Or;
DIGITS(n+10);
a:=sqrt(1);
k:=1;
Or:=(1+sqrt(5))/2;
tantque Or-a>10^(-n)faire 
a:=sqrt(1+a) ;
 k:=1+k;
ftantque;
return(k); }:;
je suis toujours avec ApproxNombredOr(16) -> 32 ; ApproxNombredOr(25) -> 32 ?

De plus, l'export LaTeX ne marche plus bien sous Ubuntu : il ne me sauve que le premier niveau de la session, et surtout Xcas quitte après cet export ? Je n'ai pas ce problème sous Mac.

Stéphane Lejoly

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

Re: Bizarre

Message par parisse » lun. nov. 30, 2009 8:44 pm

C'est l'écriture de la commande Digits, il faut mettre Digits:=n+10;
Pour l'export Latex, je verrai demain!

slejoly
Messages : 194
Inscription : sam. oct. 14, 2006 10:17 am
Localisation : Lorient

Re: Bizarre

Message par slejoly » lun. nov. 30, 2009 9:44 pm

mettre Digits:=n+10;
très bien, ça marche merci.

Répondre