Php et les maths... calcul formel?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Php et les maths... calcul formel?

par Melchior » 22 août 2005, 15:14

J'en avais fait un autrefois en Pascal.
Je suis sûr que ce sera beaucoup plus simple en PHP,
grâce aux expressions régulières, notamment ! :idea:
si tu as toujours le script ou l'algorithme utilisé (l'algo m'irait mieux étant donné que j'ai pas été loin en pascal... les bases des Delphi, c'est tout...), je suis preneur!
Et à des lycéens, t'as déjà essayé ?
Moi, oui...
J'ai déjà essayer! des lycéens, des collégiens, des primaires (c t pas avec des cos pour eux^^) et aussi à des deug maths, c'est vrai que des fois on a envie de lacher une petite larme...
Mais quelle joie quand ils ont enfin compris ne serait-ce que la moitié!!! vivement que je sois prof ^^. mais là n'est aps le sujet du topic, ne dévions pas trop...

par albat » 22 août 2005, 14:57

Bon... en gros, si j'ai bien compris, je suis mal!
Excellent esprit de synthèse ! :langue:
(si je demande à OVH d'installer maple sachant que j'ai aps de licence pour utiliser maple, vous croyez qu'ils voudront bien? :P )
Moi, je dis : il faut tenter ! :lol:
J'ai pas envie de faire un analyseur syntaxique, c'est trop dur !!!
J'en avais fait un autrefois en Pascal.
Je suis sûr que ce sera beaucoup plus simple en PHP,
grâce aux expressions régulières, notamment ! :idea:
Allez faire comprendre à une machine que sin(x)²=(1- cos(2x) )/2 :cry:
Et à des lycéens, t'as déjà essayé ?
Moi, oui... (sanglots dépressifs) :cry:

par Melchior » 22 août 2005, 14:52

Bon... en gros, si j'ai bien compris, je suis mal!

ça va être difficile de trouver un script pour faire du calcul formel avec php et tout aussi difficile de créer une passerelle entre php et autre chose qui saurait résoudre le pb... (si je demande à OVH d'installer maple sachant que j'ai aps de licence pour utiliser maple, vous croyez qu'ils voudront bien? :P )

J'ai pas envie de faire un analyseur syntaxique, c'est trop dur !!!
Allez faire comprendre à une machine que sin(x)²=(1- cos(2x) )/2 :cry:

EDIT: D'un autre côté, pour ne faire que comparer des expressions (c'est ce que je veux dans un premier temps), est-ce qu'il ne suffirait pas d'évaluer les deux expressions à comparer en disons 10 valeurs avec une précision de 8 chiffres et de comparé les deux jeux de valeurs...

les seules difficultés seraient alors de trouver les variables, les opérateurs, de rentre l'expression intelligible pour la machine, de savoir quelles valeurs tester...

par sweetking » 22 août 2005, 13:50

Fortran = Formula Translator

c'est fait pour la programation efficace des algorithmes mathématiques...; mais de la à faire tourner des scripts ou exe "fortran" (ou LISP, ou autre) sur un serv PHP.....

par albat » 22 août 2005, 12:14

Possible. Je ne connais pas le Fortran.
Je crois juste savoir que c'est un langage destiné à des applications mathématiques.

Le LISP n'est de toute manière pas le seul langage capable de faire du calcul formel.
Mais... c'est le seul qui m'est venu à l'idée. :lol:

par sweetking » 22 août 2005, 12:06

pour le calcul formel, c'est pas le Fortran90 le mieux adapté ?

par Beg0 » 21 août 2005, 18:27

bon, finalement apres une rapide remise en jambe, je peux vous dire que mon code devais resembler a ceci :

//commande(s) maple a executer (recuperer par un formulaire par exemple)
$maple_cmd="evalb( sqrt(x^2) = abs(x) )";   //pour ceux qui connaisent rien a Maple, ceci va juste dire si la racine carree de x est egale a la valeur absolue de x

//on place la (ou les) commande(s) a executer dans un fichier
$file_to_execut=fopen("calcul_formel.txt","w");
fprintf($file_to_execut,$maple_cmd."quit;");
fclose($file_to_execut);

echo "la reponse a votre question est : ";
echo shell_exec("$path_to_maple/cmaple9.5 -q < calcul_formel.txt");
voila, le plus drole c'est que dans mon exemple, maple renvoit false, mais si on met $maple_cmp="evalb( x^3 + 3*x +7 = 3*x + x^3 + 7)"; ca renvoit bien true :D :D (vi, Maple est tres puissant, surtout pour dire des betises :p)
Sinon, je sais pas si ca pose un probleme au niveau de la license, et de toute facon, il faut pouvoir installer et executer maple sur le serveur, et ca, c'est pas gagné !

par beg0 » 21 août 2005, 17:54

Je pense qu'en passant par un cgi (en lips par exemple) ca doit pouvoir se faire
ou alors en executant un program sur le serveur, a partir du script php. j'avais essayer de faire un truc comme ca avec Maple (avec la version en mode console et en ligne de commande), en redirigant l'entree et la sortie standard. J'avais plus ou moins reussi, mais c'etait sur un serveur que je controlais totalement et ou je pouvais faire absolument tout ce que je voulais (bha oui, c'etait mon ordi perso :p) Malheureusement je n'ai plus les scripts :(

par albat » 21 août 2005, 11:06

NB : Le LISP est un "vieux" langage, bien antérieur au web.
Je n'ai jamais vu un exemple de LISP appliqué au web.

Pour la culture générale :
Tutoriel LISP : http://www.moteurprog.com/?url=tuto_aff ... utorial=28

par albat » 21 août 2005, 11:02

Le LISP n'est pas réservé aux maths au sens arithmétique (quoique... pourquoi pas ?),
mais il est bien adapté à tout ce qui est calcul formel.

Cependant, j'ignore si une passerelle PHP/LISP est possible, même souhaitable.

par Melchior » 21 août 2005, 10:52

Sinon, tu es bon pour développer un analyseur syntaxique... :ordi:
Depuis une semaine je me tate pour savoir si je dois en faire un ou pas, mais ça m'embale pas du tout^^ rien qu'à imaginer le boulot...
NB : Originellement, LISP signifie List Processing,
mais à l'usage, on le renomme rapidement : Lots of Insipid and Silly Parentheses... :lol:
Qu'est-ce que Lisp exactement? je n'en avais jamais entendu parlé...
C'est un langage réservé aux maths?

par albat » 21 août 2005, 09:09

Les langages de programmation ont tous leurs points forts et leurs points faibles
qui les rendent plus ou moins adaptés à certains besoins spécifiques.

Pour le calcul formel, j'ignore si le PHP présente les mêmes dispositions que le LISP, par exemple.

Existe-t-il des librairies permettant d'inclure du LISP dans du PHP ? :?:
Sinon, tu es bon pour développer un analyseur syntaxique... :ordi:


NB : Originellement, LISP signifie List Processing,
mais à l'usage, on le renomme rapidement : Lots of Insipid and Silly Parentheses... :lol:

par Xenon_54 » 21 août 2005, 00:10

Bonjour,

En effet, moi-même j'ai eu de la difficulté à trouver un programme pour mon humble calculette (TI-83+)

par Melchior » 21 août 2005, 00:09

Tu devrais peut-être regarder du coté des classes mathématiques de PEAR, je ne les connais pas du tout, mais tu y trouveras peut-être ton bonheur :-k
Je viens de jeter un coup d'oeil, je pense que cela me sera utile, mais ça ne résoud aps les pbs évoqués plus haut, hélas.
Peut-être que j'en demande trop... faire un moteur de calcul formel, c'est loin d'etre simple, sinon toutes les calculettes en auraient un...

par Xenon_54 » 21 août 2005, 00:03

Bonjour,
(est-ce normal que tu donnes deux fois le meme lien?)
Désolé, une erreur lors de la copie de l'adresse. Aurais dû lire:
http://www.php.net/manual/fr/ref.math.php

En ce qui concerne les calculs formels, j'en ai aucune idée. Peut-être le lien proposé par Cyrano pourra te procurer quelques éléments de réponses.