KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Sorry, I'm not comfortable enough with bison and flex to change the parser and recognize more implicit multiplications. I'm not a fan of implicit multiplication anyway, I added it for simple cases easy to handle with bison/flex like a number times something. Now, if someone knows how to handle more complicate situations, he is welcome to modify the parser and send me something working!
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3662
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
parisse wrote:I added it for simple cases easy to handle with bison/flex like a number times something.
since e^x expands to exp(x), I would do :
expr "(" args ")" expr => mult(func($1, $2), $3)
expr "(" args ")" => func($1, $2)
Other example :
https://github.com/miromannino/MExpr/bl ... ser.y#L199
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Perhaps. The parser file from giac is input_parser.yy, feel free to make changes there. Unfortunately, it's a more complicated parser than for a math evaluator, it also handles the programming language. I don't want to make changes myself because I'm almost certain it would break something.
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3662
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
+1/4*asin(x)
instead of -1/4*acos(x)
, right?You do not have the required permissions to view the files attached to this post.
-
stevenmbiz
Niveau 2: MI2 (Membre Initié)- Posts: 10
- Joined: 29 Aug 2014, 00:07
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
The answer is correct too, as
acos(x)+asin(x)=pi/2
for all x in [-1,1], and two primitive functions of a given function may differ by a constant.-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
make sense, thank you.
-
stevenmbiz
Niveau 2: MI2 (Membre Initié)- Posts: 10
- Joined: 29 Aug 2014, 00:07
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Mise a jour avec quelques corrections de bugs, par ex.
http://www-fourier.ujf-grenoble.fr/~parisse/calc/khicas.zip
simplify(exp(2*i*pi/7)+exp(4*i*pi/7)+exp(8*i*pi/7))
http://www-fourier.ujf-grenoble.fr/~parisse/calc/khicas.zip
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3662
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
@parisse : J'ai réutilisé Khicas aujourd'hui pour tester le solveur d'équa diff... et j'ai noté des erreurs flagrantes !
En fait, le solveur oublie des constantes d'intégration ou bien oublie de changer leur nom au fur et à mesure que de nouvelles constantes apparaissent, même dans des cas très simples.
Par exemple :
On voit apparaître également très souvent des "Error : Bad Argument Value", par exemple avec
Enfin, dans des cas que je n'ai pas réussi à reproduire, j'ai obtenu une transformée inverse de Laplace... mais non calculée.
Bref, la fonction "desolve" semble avoir de gros ennuis...
En fait, le solveur oublie des constantes d'intégration ou bien oublie de changer leur nom au fur et à mesure que de nouvelles constantes apparaissent, même dans des cas très simples.
Par exemple :
-
desolve(y''=y',x,y)
renvoiec_0 e^x
au lieu dec_0 e^x + c_1
-
desolve(y''=0,x,y)
renvoiex c_0 + c_0
au lieu dex c_0 + c_1
-
desolve(y'''=0,x,y)
renvoie(x^2 c_0 + 2x c_0 + c_0)/2
au lieu de(x^2 c_0 + 2x c_1 + c_2)/2
-
desolve(y'''-3y'+2y=0,x,y)
renvoiec_0 e^x
au lieu de(x c_0 +c_1) e^x + c_2 e^(-2*x)
On voit apparaître également très souvent des "Error : Bad Argument Value", par exemple avec
desolve(y''+y=0,x,y)
, l'erreur complète dans ce cas étant "Unable to divide, perhaps due to rounding error"Enfin, dans des cas que je n'ai pas réussi à reproduire, j'ai obtenu une transformée inverse de Laplace... mais non calculée.
Bref, la fonction "desolve" semble avoir de gros ennuis...
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Bisam wrote:Bref, la fonction "desolve" semble avoir de gros ennuis...
En fin de compte, si la plupart des erreurs viennent d'un problème de notation des constantes, il est possible que la correction de ce bug là suffise pour beaucoup de choses...
Enfin bref, attendons l'avis de l'expert
Edit : d'apres le source, ca serait la fonction
diffeq_constante
qui serait toujours appelée avec 0 en paramètre... ? Autrement dit, parameters.size()
qui renverrait toujours 0). Toujours est-il que ca marche sur xcas en ligne, par exemple, donc... étrange.MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14744
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: KhiCAS, le moteur formel Giac/Xcas pour toutes TI-Nspire
Autre question, qui n'a rien à voir: comment obtenir avec KhiCAS, et même Xcas desktop, la factorisation symbolique selon b du polynôme
sachant que d1, d2 et d3 sont des éléments de R+.
- Code: Select all
b^3 - 2 * d1 * b^2 + (d1^2+d2) * b + d3 - d1*d2
sachant que d1, d2 et d3 sont des éléments de R+.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6865
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Who is online
Users browsing this forum: ClaudeBot [spider] and 13 guests