version plus puissante de "simplify" et "int" ?

Xcas devel: interface utilisateur/user interface

Modérateur : xcasadmin

fjhdavid
Messages : 13
Inscription : mar. mars 23, 2010 8:42 am

version plus puissante de "simplify" et "int" ?

Message par fjhdavid » jeu. mars 25, 2010 9:33 am

Bonjour et bravo pour xcas que j'utilise sur mon PC et iphone!

je me demandais si compte tenu de la montée en puissance des PC et iphone, on ne pourrait pas imaginer une version plus puissante de deux fonctions majeures que sont "simplify" et "int" en terme d'appel d'autres fonctions existantes de factorisation (ou substitution) principalement et essentiellement sur les fonctions trig, log et exp (comme fait mathematica je pense?)

1- pour simplify, une possibilité d'appeller en interne et automatiquement "lin", "tlin","texpand"...afin de trouver des ecritures d'expressions simplifiées:

ex: ln(cos(x^2)+4*cos(x)+4) pourrait se factoriser automatiquement avec "simplify" sans invoquer d'autres fonctions


2- pour "int", il serait bien de pouvoir calculer la primitive de sin(x^(1/2)) sans devoir utiliser la fonction "subst" explicitement; la encore, la fonction "int" pourrait le faire de facon interne et automatique en regardant l'interieur des expressions des exp, log et trig....et essayer elle meme plusieurs "subst"...

qu'en pensez vous?
merci

Francois

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

Re: version plus puissante de "simplify" et "int" ?

Message par parisse » jeu. mars 25, 2010 10:18 am

pour simplify, ce n'est pas si simple malheureusement. Il n'existe pas d'algorithmes miracles car dans certains cas on a interet a factoriser, dans d'autres a developper, ou a lineariser ou a passer en exp complexes, etc. simplify essaie de minimiser le nombre de variables pour se ramener a des variables algebriquement independantes, puis il ecrit l'expression sous forme d'une fraction irreductible. Ensuite on peut retravailler l'expression par morceaux de maniere interactive dans l'editeur d'expressions. Donc je ne peux pas promettre grand chose, en dehors de quelques petites ameliorations comme pour le ln ou lnexpand devrait sans doute factoriser l'interieur du ln.
pour int, ca marche int(sin(sqrt(x))) calcule l'integrale avec des exponentielles complexes, et normal(exp2trig(int(sin(sqrt(x)) renvoie l'integrale sous une forme simplifiee.

fjhdavid
Messages : 13
Inscription : mar. mars 23, 2010 8:42 am

Re: version plus puissante de "simplify" et "int" ?

Message par fjhdavid » jeu. mars 25, 2010 10:39 am

merci pour l'explication et les petits plus possibles sur "simplify" a l'avenir

au sujet de "int", est ce que "int" inclut et donc appelle de facon interne "risch" ou bien est ce que "risch" peut trouver des primitives que "int" ne peut pas trouver?

merci
francois

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

Re: version plus puissante de "simplify" et "int" ?

Message par parisse » jeu. mars 25, 2010 11:25 am

oui, int contient un appel a risch, mais apres avoir teste un certain nombre d'heuristiques auparavant (si ces heuristiques ne fonctionnent pas).

fjhdavid
Messages : 13
Inscription : mar. mars 23, 2010 8:42 am

Re: version plus puissante de "simplify" et "int" ?

Message par fjhdavid » jeu. mars 25, 2010 3:02 pm

merci encore.

au sujet de "int", ne serait il pas judicieux d'integrer dans la fonction meme l'excution systematiquement et a la fin du calcul, d'un:

- simplify(exp2trig(int())

afin de renvoyer quoiqu'il arrive l'integrale sous une forme simplifiee?

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

Re: version plus puissante de "simplify" et "int" ?

Message par parisse » jeu. mars 25, 2010 3:31 pm

oui, mais on se heurte au fait que simplify ne renvoie pas forcement une forme plus agreable, et peut etre long. On devrait gagner sur ce point lorsque la version 0.9.0 de giac sera suffisamment stabilisee grace aux ameliorations de l'algo de PGCD, on verra alors si on peut rajouter des instructions de simplification a la sortie d'une integrale.

Répondre