Page 1 sur 1

opération sur les listes

Publié : mer. mars 25, 2015 9:00 pm
par Denizou
Bonjour,

à partir d'une liste X=x_i de nombres aléatoires dans [0,1], je souhaiterais obtenir la liste des sqrt(1-x_i^2)
Je pensais m'en sortir avec sqrt(1.-X.^2) mais :

1) on ne peut pas calculer 1.-X.^2 (résultats incompréhensibles pour moi), il faut donc taper X.^2.-1 C'est bien cohérent avec l'exemple proposé dans l'index mais l'importance de l'ordre dans lequel on effectue les opérations ne m'avait pas paru si important.

2) Si dans un programme ou une ligne de commande, je fais le calcul direct X:=sqrt(abs(X.^2.-1)) les résultats ne sont pas cohérents. Je dois donc effectuer le calcul en 2 étapes X:=X.^2.-1 puis X:=sqrt(abs(X))

Pourriez vous m'indiquer la raison pour laquelle on ne peut pas demander à Xcas de calculer directement la liste souhaitée.

Merci

Re: opération sur les listes

Publié : mer. mars 25, 2015 10:25 pm
par alb
salut, quelque chose de ce style ?

Code : Tout sélectionner

L:=randvector(10,'rand(0,1)');
apply(x->sqrt(1-x^2),L);

Re: opération sur les listes

Publié : jeu. mars 26, 2015 8:28 am
par parisse
Attention, il faut ecrire 1 .-x.^2 avec un espace entre le 1 et le point, sinon le point est reuni avec 1 par le lexer pour former un flottant (1.0) et non avec le - pour faire l'operateur .-

Re: opération sur les listes

Publié : jeu. mars 26, 2015 8:34 am
par Denizou
Ok maintenant je comprends pourquoi l'opération ne se faisait pas élément par élément.

Merci pour vos réponses