Encore un lot de 3

Utilisation de Xcas

Modérateur : xcasadmin

Paulm
Messages : 27
Inscription : jeu. mai 29, 2008 6:06 am
Localisation : Epinal Vosges France

Encore un lot de 3

Message par Paulm » ven. juin 06, 2008 9:16 am

1-
La séquence suivante est étonnante:
expression:=exp((3*(ln(2400)+2*ln(1920))-3*(ln(3000)+ln(2400)+ln(1920)))/6)
simplifier(expression) donne exp((ln(4096/15625))/6)
simplifier(simplifier(expression)) donne enfin 4/5

(l'expression a été récupérée derrière le "Done" d'une régression exponentielle)

Pourquoi pas une simplication itérée jusqu'à stabilité?

2-
Avec une regression exponentielle par exemple dans un tableur t en case (l,c),les paramètres sont accessibles par t[l,c] et t[l,c+1] et non comme dans le tableur par t[l,c][0] et t[l,c][1]. Du coup, en dehors du tableur les lignes n'ont plus le même nombre de colonnes et les éléments d'une même colonne ont des indices différents. Il suffit de le savoir mais est-ce voulu?

3-
La commande
droite(y=(b*c*x-a^2*b*c+1/a))
est retournée
droite(y=(b*c*x-a^3*b*c+1/a)) . Ce doit être le même problème qu'avec 1+i/2 retourné 2+i/2 il y a quelques jours?

Merci encore

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

Message par parisse » sam. juin 07, 2008 6:23 am

Paulm a écrit :1-
La séquence suivante est étonnante:
expression:=exp((3*(ln(2400)+2*ln(1920))-3*(ln(3000)+ln(2400)+ln(1920)))/6)
simplifier(expression) donne exp((ln(4096/15625))/6)
simplifier(simplifier(expression)) donne enfin 4/5

(l'expression a été récupérée derrière le "Done" d'une régression exponentielle)

Pourquoi pas une simplication itérée jusqu'à stabilité?
La simplification ne sera malheureusement jamais complètement automatique (contrairement au cas des fractions rationnelles). Il y a un équilibre entre le temps nécessaire et l'automaticité: par exemple réexecuter une commande simplify jusqu'à ce que le résultat soit le même multiplierait par un facteur proche de 2 le temps moyen de simplification et le risque de bug avec boucle infinie existe.
Pour votre cas, il est probablement judicieux de travailler sur les données en mode approché. Peut-etre qu'il faudrait que je rajoute un evalf par défaut dans les commandes générées par les menus du tableur.
2-
Avec une regression exponentielle par exemple dans un tableur t en case (l,c),les paramètres sont accessibles par t[l,c] et t[l,c+1] et non comme dans le tableur par t[l,c][0] et t[l,c][1]. Du coup, en dehors du tableur les lignes n'ont plus le même nombre de colonnes et les éléments d'une même colonne ont des indices différents. Il suffit de le savoir mais est-ce voulu?
Ca dépend comment vous remplissez votre case du tableur. Si vous mettez le = en début de formule, les valeurs des coefficients sont dans une seule cellule. Par exemple avec
=exponential_regression(evalf(matrix(4,2,(A1):(B4))))
Et bien sur ces coefficients sont modifiés si vous changez une cellule de la plage de données.
Par contre si vous tapez la formule sans le signe =, alors exponential_regression est évalué une fois pour toutes, et comme le résultat est une séquence il est distribué sur 2 cellules par défaut (on peut changer ca dans le menu Edit->Configuration du tableur en sélectionnant Conserver une matrice dans une seule cellule, et dans la ligne d'état fill devient cell).
3-
La commande
droite(y=(b*c*x-a^2*b*c+1/a))
est retournée
droite(y=(b*c*x-a^3*b*c+1/a)) . Ce doit être le même problème qu'avec 1+i/2 retourné 2+i/2 il y a quelques jours?
Que valent a,b,c?

a+

Paulm
Messages : 27
Inscription : jeu. mai 29, 2008 6:06 am
Localisation : Epinal Vosges France

Message par Paulm » sam. juin 07, 2008 7:07 am

Bonjour.

2-
la commande
=exponential_regression(matrix(3,2,(A1):(A3),(E1):(E3))) fonctionne mais
exponential_regression(matrix(3,2,(A1):(A3),(E1):(E3))) donne "matrix Bad Argument Type"?

3- a,b,c sont 3 curseurs définis par 3 assume(..

Merci.

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

Message par parisse » sam. juin 07, 2008 9:26 am

Paulm a écrit :Bonjour.

2-
la commande
=exponential_regression(matrix(3,2,(A1):(A3),(E1):(E3))) fonctionne mais
exponential_regression(matrix(3,2,(A1):(A3),(E1):(E3))) donne "matrix Bad Argument Type"?

3- a,b,c sont 3 curseurs définis par 3 assume(..

Merci.
re-bonjour,

2- Le 2ème ne fonctionne pas, car comme il n'y a pas de signe égal, ce n'est pas considéré comme une formule dépendant de cellules. L'évaluation est faite comme si on était en ligne de commande en-dehors du tableur.

3- l'équation de la droite saisie avait-elle des parenthèses placées différemment? Je ne vois pas la différence dans votre saisie. Si c'est le cas, c'est probablement le même bug que (1+i)/2.

Paulm
Messages : 27
Inscription : jeu. mai 29, 2008 6:06 am
Localisation : Epinal Vosges France

Message par Paulm » sam. juin 07, 2008 9:50 am

2- je ne comprends pas alors comment obtenir les coefficients dans 2 cases du tableur.

3- voici un copier-coller de la commande :
droite(y=(b*c*x-a^2*b*c+1/a))
et de la réponse:
droite(y=(b*c*x-a^3*b*c+1/a))
où le a² est devenu a cube.

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

Message par parisse » sam. juin 07, 2008 10:22 am

pour obtenir les 2 coefficients séparément, s'ils sont ensemble par exemple dans la cellule F1, on devrait pouvoir mettre dans F2 la formule =F1[0] et dans F3 =F1[1]
Pour la droite, je n'avais pas vu le cube/carré. C'était bien un bug, j'avais inversé une clause vraie et fausse, c'est corrigé dans le code source maintenant, merci!

Répondre