Aller au contenu

Où trouver un logiciel de calcul simple


dokuan

Messages recommandés

Posté

Bonjour à tous,

 

J'avais l'habitude d'utiliser Fortran77 pour le calcul scientifique. J'aimerais savoir s'il existe d'autres logiciels plus simples. Merci de m'informer.

Invité akira
Posté

Ca depend ce que tu cherches. Fortran est un langage de programmation assez bas niveau. Si c'est pour resoudre des equations, i lvaut mieux se tourner vers des softs de calcul formel du style Maple ou mathematica.

 

Le probleme c'est que ce ne sont pas des freeware ...

Posté

Je me souviens que j'utilisais un programme sous DOS pour des calculs mathématiques (résolution d'équations, limites, développements limités, intégrales, dérivées...). Ca s'appelait 'Derive'. C'était sympa mais fallait pas trop lui en demander...

Posté

--- Hors-sujet ---

 

Tiens, ton message m'a fait penser à un truc : le Fortran 77 est à la programmation ce que le Dobson est à l'astronomie : super simple, pas très sophistiqué et un peu lourd... :) (J'imagine que personne ne sera étonné d'apprendre que je programme toujours en Fortran 77...)

Posté

Dites ce que vous voulez, mais moi ça me rend bien service. Parce que bon, taper en un quart d'heure un petit programme qui calcule des factorielles qui font quelques millions de chiffres, ça m'étonnerait que j'y arrive en C. En C, il faut déclarer, initialiser... on dirait un Autostar !

Posté

Ce n'est pas une question de taper peu de caractères, mais de facilité.

 

(APL utilise un type réel illimité ?)

 

-----------

Je suis en train de regarder sur Wikipédia, ça a l'air intéressant :

 

« une équipe de 5 développeurs APL avait la puissance de développement d’une équipe de 25 programmeurs FORTRAN »

 

« pas de déclaration de types ni de tailles »

 

« Grâce à sa priorité de gauche à droite, le langage se lit simplement, comme un langage naturel : » --> Comme dans les vieilles calculatrices (j'aimais bien).

 

Par contre : « Il permet de manipuler aisément des tableaux de 1 à N indices (N variant de 7 à 255 selon l’implémentation considérée) » --> C'est pas des gros tableaux... :)

 

Et puis ça a l'air difficilement lisible (ah, ben c'est ce que dit un certain Roy Keir : « APL est un langage en écriture seule. Je peux écrire des programmes en APL, mais je ne peux en lire aucun. »)

Posté
Bonjour à tous,

 

J'avais l'habitude d'utiliser Fortran77 pour le calcul scientifique. J'aimerais savoir s'il existe d'autres logiciels plus simples. Merci de m'informer.

 

je suis nul ...en math! mais regarde ici

http://astro.versoud.free.fr/

ensuite "outils logiciels"

 

et au besoin contacte olivier le webmestre :)

Posté

Comme logiciel il y a octave, gratuit.

Sinon matlab, payant.

Les deux sont super, permettent de faire énormément de choses!

Et de plus leur langage n'est pas très compliqué.

Posté

Si c'est pour du calcul formel je ne sais pas. Pour tout ce qui est calcul matriciel, automatique et traitement de signal il y a scilab, matlab, octave qui sont adaptés. Matlab est payant mais il faut reconnaître qu'il y a une quantité de toolbox existantes bien fichues.

 

J'ai pas mal développé en scilab pour de l'analyse de données avec de très grosses matrices, des bouts de C/C++/objective C pour tout ce qui est codec, java pour les très grands nombres (crypto) et du shell script au kilomètre pour faire passer les résultats des uns en arguments des autres et trier. Ça marche et c'est pas trop lent bien que java et très grands nombres ça puisse faire un peu peur a priori.

Posté

humm, bizarre cette limitation à 255 pour l' indice.

C' est pas plutôt 255 indices (chacun prenant une valeur entre 0 et jesaispasquoi) ? ça permet de faire des beaux tenseurs ;)

 

pour le type réel illimité, je sais plus.

 

Pour le côté "on peut l' écrire, mais pas le lire", c' est clair,c' est le défaut majeur du langage.

Mais c' était compact.

Posté
C' est pas plutôt 255 indices (chacun prenant une valeur entre 0 et jesaispasquoi) ?

Ah oui, ça doit être ça. Effectivement, des tableaux à 255 dimensions, ça doit être beau... :)

 

pour le type réel illimité, je sais plus.

C'est le point essentiel, et je ne connais aucun langage qui fasse ça, il faut donc écrire le programme avec des tableaux (ou des pointeurs) pour stocker tous les chiffres (par exemple 50.000 ! contient 213.237 chiffres). Il ne s'agit pas de faire quelques multiplications dans une boucle, c'est plus compliqué. Et justement, le Fortran étant un langage simple (je trouve), ça se fait assez vite.

Posté

On ne sait jamais, des fois que ça t'intéresse 'Bruno :

en java il y a un objet dans les APIs qui est justement utile pour travailler avec des décimaux ayant au plus 4 milliards de digits après la virgule (2^32)

http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigDecimal.html

 

J'utilisais l'objet BigInteger parce que je travaillais avec des entiers mais il n'y a pas de raison que celui dédié aux décimaux ne soit pas aussi pratique.

Posté

Ca dépend si on veut faire du calcul formel ou pas. Pour le calcul formel, je pense que mathematica est au dessus du lot, mais c'est payant.

 

Sinon, perso, je suis fana de yorick. C'est du calcul interactif en ligne de commande avec une utilisation hypersimple de tableaux de nombre de dimensions illimitées, toutes les fonctions mathématiques, des opérations sur les matrices, ... et plein de biliothèques de fonctions (.i) et plein d'affichage hypersimple y compris en 3D, une aide en ligne en tapant : help, nomdelafonction.

 

Le langage est proche du C mais sans aucune obligation de déclaration des variables, les déclarations peuvent être implicites. On peut écrire des fonctions. Par exemple :

 func text2julianday(txtdate)
/* DOCUMENT
 Retourne le jour julien de txtdate donne sous la forme :20010517142116
*/
{
 _Y=_m=_d=_H=_M=_S=0;
 sread, txtdate,format="%4d%2d%2d%2d%2d%2d", _Y, _m, _d, _H, _M, _S;
 _JJ=365*_Y+31.*(_m-1.)+_d+(_m<3)*(int((_Y-1)/4.-int(3./4.*int((_Y+99)/100))))+(_m>=3)*(-int(0.4*_m+2.3)+int(_Y/4.)-int(3./4.*int((_Y+100)/100)))+(_H+(_M+_S/60.)/60.)/24.+0.5+1721059;
 return _JJ;
} 

La commande sread lit le texte "20010517142116" et le décompose en année, mois, jour, heure, minute, secondes.

La ligne suivante calcule le jour julien. La dernière le retourne à la fonction appelante.

 

exemple complet. On lance yorick, on tape la fonction et on l'utilise :

 

Copyright (c) 1996.  The Regents of the University of California.
All rights reserved.  Yorick 1.6.01 ready.  For help type 'help'
> func text2julianday(txtdate)
/* DOCUMENT
 Retourne le jour julien de txtdate donne sous la forme :20010517142116
*/
{
 Y=m=d=H=M=S=0;
 sread, txtdate,format="%4d%2d%2d%2d%2d%2d", Y, m, d, H, M, S;
 JJ=365*Y+31.*(m-1.)+d+(m<3)*(int((Y-1)/4.-int(3./4.*int((Y+99)/100))))+(m>=3)*(-int(0.4*m+2.3)+int(Y/4.)-int(3./4.*int((Y+100)/100)))+(H+(M+S/60.)/60.)/24.+0.5+1721059;
 return JJ;
}
> text2julianday("20091006145800")
2.45511e+06
> text2julianday("20091006145800")-2400000
55111.1
> 

Vous pouvez vérifier le calcul qui se fait sur la ligne JJ= ...

Il faut savoir que m<3 vaut 1 si m<3 et 0 sinon. Et que int(x) retourne la partie entière de x (et non pas l'arrondi).

 

Un autre exemple simple, la fonction polynome d'un degré arbitraire (défini par la dimension du tableau a):

func polyn(x,a)
/* DOCUMENT
  polyn(x,a)
  Fonction polynome ! Retourne le polynome de degré égal à dim(a)-1
    a(1)+a(2)*x+ ...+a(n+1)*x^n
*/
{
 p=0.*x;
 for(i=dimsof(a)(2);i>1;i--){
   p+=a(i,);
   p*=x;
 }
 return p+a(1,);
}

C'est assez facile à comprendre : le polynome à trouver est :

p=a(1)+a(2)*x+ ...+a(n+1)*x^n

on initialise p=0. et ensuite p=p+a(n+1) puis p=p*x c'est à dire p=x*a(n+1) puis on ajoute à p a(n), puis on multiplie ...

 

Ce qui donne en ligne de commande en introduisant d'abord la fonction puis en l'exécutant pour 2 cas différents :

> func polyn(x,a)
/* DOCUMENT
  polyn(x,a)
  Fonction polynome ! Retourne le polynome de degré égal à dim(a)-1
    a(1)+a(2)*x+ ...+a(n+1)*x^n
*/
{
 p=0.*x;
 for(i=dimsof(a)(2);i>1;i--){
   p+=a(i,);
   p*=x;
 }
 return p+a(1,);
}
> polyn(0., [1,2,3,4,5,6])
1
> polyn([0.,1,2], [1,2,3,4,5,6])
[1,21,321]
> 

Les tableaux sont écrits entre crochets, avec les valeurs séparés par des virgules.

A la deuxième ligne, j'ai donné pour x un tableau x= [0.,1.,2.]. Vous noterez que la fonction retourne aussi un tableau [1,21,321] qui correspond aux valeurs du polynôme pour x=0., 1, 2 et 3.

 

Yorick est un logiciel libre qui marche sous linux et sous windows (bien mieux sous linux à mon avis). La page est là : http://www.maumae.net/yorick/doc/index.php

Posté
Bonjour à tous,

 

J'avais l'habitude d'utiliser Fortran77 pour le calcul scientifique. J'aimerais savoir s'il existe d'autres logiciels plus simples. Merci de m'informer.

 

Linux ou windows ?

 

Parce que sous windows, les trucs payants ne manquent pas.

En gratuit, je vois pas trop ce que tu pourrais trouver.

Regardes voir chez GNU, ils visent Linux en priorité mais certains softs sont adaptés pour windows

http://directory.fsf.org/category/math/

 

Pour du gratuit commence par installer un chti linux.

 

La plus simple des distribs:

http://www.ubuntu-fr.org/

 

Dans le géstionnaire de paquets, tu regardes à logiciels et la liste est très impressionnante.

Tous du logiciel d'echecs en passant par l'astro, la 3D, le calcul...

 

Le fortran dont t'a parlé Bruno est en fait un langage de programmation dont tu trouveras sans problèmes des implémentations sous linux.

http://directory.fsf.org/category/olang/

 

Linux a évolué, on y fait tout à la souris sans problèmes sur une Ubuntu.

 

Je te dirais pas qu'on peut jeter windows, je trouve que c'est l'OS le plus simple et le mieux foutu.

 

Pour du calcul scientifique en gratuit, linux est plus indiqué et il n'empêche pas d'utiliser windows.

 

Bon ciel

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.