OVH Cloud OVH Cloud

module de maths

5 réponses
Avatar
Nicolas
Bonjour,

pour les besoins de mon programme, il me faut des fonctions
mathématiques telles que l'on peut avoir dans les calculatrices
scientifiques en particulier une vraie fonction partie entière.

J'ai regardé sur CPAN la (longue) liste des module de maths et je reste
un peu perplexe ...

Quel est celui qu'il me faut ?

D'autre part, existe-t-il un CPAN en français ou qui y ressemble ?

Merci.

Nicolas.

--
Powered .~.
by Linux /V\ Enlever
------ // \\ Take off
solutions for /( )\ BULBA
smart penguins ^`~'^

5 réponses

Avatar
Paul Gaborit
À (at) Thu, 12 Jan 2006 11:55:46 +0100,
Nicolas écrivait (wrote):
pour les besoins de mon programme, il me faut des fonctions
mathématiques telles que l'on peut avoir dans les calculatrices
scientifiques en particulier une vraie fonction partie entière.


Elle ne vous plaît pas la fonction 'int' ?

J'ai regardé sur CPAN la (longue) liste des module de maths et je
reste un peu perplexe ...

Quel est celui qu'il me faut ?


Ça dépend vraiment de ce que vous voulez faire comme genre de
calculs...

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
Nicolas

Elle ne vous plaît pas la fonction 'int' ?



int(-.5) donne 0 alors que matématiquement ça vaut -1


Ça dépend vraiment de ce que vous voulez faire comme genre de
calculs...


Les fonctions d'une calculatrice scientifique, j'ai un peu joué avec
BigFloat mais j'essaye de voir s'il n'y a pas un module qui n'utilise
pas les -> et de toutes les façon je n'ai pas besoin de grands flottants.

Nicolas.

--
Powered .~.
by Linux /V Enlever
------ // Take off
solutions for /( ) BULBA
smart penguins ^`~'^

Avatar
Paul Gaborit
À (at) Thu, 12 Jan 2006 12:24:24 +0100,
Nicolas écrivait (wrote):

Elle ne vous plaît pas la fonction 'int' ?



int(-.5) donne 0 alors que matématiquement ça vaut -1


Il suffit de l'améliorer :

sub ent($) {
my $v = shift;
return ($v >= 0) ? int($v) : int($v-1);
}

;-)

Ça dépend vraiment de ce que vous voulez faire comme genre de
calculs...


Les fonctions d'une calculatrice scientifique, j'ai un peu joué avec
BigFloat mais j'essaye de voir s'il n'y a pas un module qui n'utilise
pas les -> et de toutes les façon je n'ai pas besoin de grands
flottants.


Vous en aurez peut-être besoin pour obtenir la précision que vous
souhaitez...

Pour le reste, il n'existe pas de norme sur les fonctions proposées
par une calculatrice dite scientifique (mis à part peut-être les
exigences du ministère de l'éducation nationale).

Les fonctions de base sont accessibles depuis Perl (sin, atan2, exp,
log...). Si besoin, toutes les autres fonctions peuvent être
programmées à partir de cette ensemble de base (comme 'ent'
ci-dessus). Je ne sais pas si il existe un module (ou des modules)
tout prêt pour cela...

N'espérez tout de même pas de très bonnes performances : perl n'est
pas vraiment optimal pour le calcul...

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>


Avatar
jl_morel
Dans l'article <43c63aa9$0$26404$,
a dit...


Elle ne vous plaît pas la fonction 'int' ?



int(-.5) donne 0 alors que matématiquement ça vaut -1


Ça dépend vraiment de ce que vous voulez faire comme genre de
calculs...


Les fonctions d'une calculatrice scientifique, j'ai un peu joué avec
BigFloat mais j'essaye de voir s'il n'y a pas un module qui n'utilise
pas les -> et de toutes les façon je n'ai pas besoin de grands flottants.



* int(x)renvoie la partie entière de x, c'est à dire ce qui reste quand on
supprime ce qu'il y a après la virgule.
Donc int(-0.5) renvoie 0.

* floor(x) renvoie le plus grand entier inférieur à x.
Donc floor(-0.5) renvoie -1.

* ceil(x) renvoie le plus petit entier supérieur à x.
Donc ceil(-0.5) renvoie 0.

Les fonctions numériques définies par défaut par Perl sont :

abs, atan2, cos, exp, hex, int, log, oct, rand, sin, sqrt, srand

avec 'use POSIX;' vous avez en plus :

acos, asin, atan, ceil, cosh, floor, fmod, frexp, log10, pow, sinh, tan,
tanh

avec 'use Maths::Trig;' vous avez fonctions trigo hyperboliques inverses
asinh, acosh, atanh (et même les fonctions trigonométriques utilisées par
les anglo-saxons : sécante, cosécante, cotangente et leurs inverses et
aussi leurs cousines hyperboliques !).
Il utilise le module Math::Complex si nécessaire; par exemple asin(2)
renvoie 1.5707963267949-1.31695789692482i

Normalement ces modules sont déjà installés.

HTH

--
J-L.M.
http://www.bribes.org/perl


Avatar
Nicolas
Dans l'article <43c63aa9$0$26404$,
a dit...



...


Merci pour vos réponses.

Nicolas.

--
Powered .~.
by Linux /V Enlever
------ // Take off
solutions for /( ) BULBA
smart penguins ^`~'^