librairie mathématique

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Le fortran est disponible sous plusieurs versions, dont plusieurs gratuites; de mémoire, même Microsoft en édite un. Un autre avantage de Purebasic cependant, qui ne saute pas directement aux yeux, est qu'il est possible de programmer directement le microprocesseur, et son unité de calcul en nombres flottants. Avec un peu d'entrainement, il n'y a évidemment pas plus rapide ni plus précis, sauf pour les calculs massivement parallèles où des solutions utilisant les GPU commencent à fleurir.
sospel
Messages : 56
Inscription : ven. 05/déc./2008 21:47

Message par sospel »

Hello !
Je complète mes réponses à vos interventions :

DOBRO:
> j'ai traduit ta procedure en purebasic. ce qui m'affiche : 1708221.5000000533
On est d'accord : c'est exactement le mauvais résultat que j'obtenais dans mon premier post

CLS :
cette solution avait été proposée dans un des reply à non premier post, mais je ne vois pas quelqu'un programmer des centaines de formules mathématiques du genre :
tangx = (cos(delta)*sin(alpha1-alpha2)) / ( cos(delta2)*sin(delta1)- sin(delta2)*cos(delta1)*cos(alpha1-alpha2) )
la programmation résultante ferait un peu Shadock :wink: De plus, HELLE avait montré que le résultat dépendait de l'ordre d'écriture des opérations...

SULREN99
> PureBasic n'a pas été créé d'emblée pour le calcul scientifique
j'en suis bien conscient et je lui reconnais d'indéniables qualités d'ergonomie et d'universalité.
Mais autant je conçois qu'un langage comme BLITZ3D, conçu pour programmer des jeux vidéos, n'ait pas besoin de pousser la précision des calculs ( son résultat dans mon premier post était catastrophique ), autant il me semble qu'il ne faudrait pas faire grand'chose dans PureBasic pour le mettre au niveau de l'ex-GFA ou de PowerBasic (très cher !).

> indiquez moi votre pseudo en PM SVP, pour le cas où, à moins que vous soyez toujours joignable sur le forum PureBasic.
je ne suis pas sur Webastro, mais je vous répondrai volontiers sur ce forum. Si tant est que j'aie des solutions à vous proposer !!

Merci à tous pour vos contributions :)
zaphod
Messages : 135
Inscription : dim. 07/déc./2008 9:32

Message par zaphod »

Salut à tous,

en purebasic pour un résultat acceptable :

Code : Tout sélectionner

value.d=1
For i=1 To 10
For j=1 To 1000
For k=1 To 1000
value=Log10(Sqr(value*value))
value=Pow(10,value)
value=Tan(ATan(value))+1.0
Next k
Next j
Next i

Debug value
on obtient = 10000001.001298055
C'est apparement la fonction pow qui présente une perte.

Sinon en freebasic (freeware) on obtient :10000000,92740968

En delphi

Code : Tout sélectionner

uses math;

procedure TForm1.Button1Click(Sender: TObject);
var
i,j,k:word;
value:extended;
begin
value:=1;
for i:=1 to 10 do begin
for j:=1 to 1000 do begin
for k:=1 to 1000 do begin
value:=tan(arctan(power(10,log10(sqrt(value*value)))))+1;
end;
end;
end;
statictext1.caption:=floattostr(value);
end;
on obtient =10000001,0011137
Le type extended a une précision de 10 chiffres significatifs.
Turbo delphi est gratuit.

Z@ph0d//
SULREN
Messages : 56
Inscription : mar. 27/janv./2009 12:07
Localisation : Très proche de Toulouse, au nord-ouest

Message par SULREN »

Bonsoir,

Vous trouvez: 10000001.001298055

Sospel trouvait: 10000001.000593
en Fortran95 (voir le fil sur forum anglais qu'il signale dans son 2eme post du présent fil).

L'écart s'amenuise en saucissonnant les fonctions, mais ce n'est pas satisfaisant comme parade.

Si ce n'est que pow qui pose problème, Fred va nous arranger cela. Il le doit bien à ses fans.
Encore faudrait-il que quelqu'un se dévoue pour ouvrir une "demande d'amélioration" (il ne s'agit pas d'un bug).
@+
Anonyme

Message par Anonyme »

SULREN99 a écrit : Encore faudrait-il que quelqu'un se dévoue pour ouvrir une "demande d'amélioration" (il ne s'agit pas d'un bug).
@+
Feature Requests and Wishlists
Sur le forum Anglais , ou bien même ici "Suggestions et améliorations"
Tu as plus de chance sur le fofo anglais d'être lu par Fred :D
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Je viens de retrouver un évaluateur d'expression posté sur le forum anglais. Il y a une version de pow intégrée (entre autres) : http://www.purebasic.fr/english/viewtopic.php?t=8059
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

djes a écrit :Je viens de retrouver un évaluateur d'expression posté sur le forum anglais. Il y a une version de pow intégrée (entre autres) : http://www.purebasic.fr/english/viewtopic.php?t=8059
Le probleme c'est que son code en l'etat, ne fonctionne pas !!
dommage !!

deja il y a des commandes assembleur

du genre
! MOV ebx,[eval_stk_index]

au lieu de
!MOV ebx,[eval_stk_index]

mais le pire c'est vers la fin du code
on trouve des

Code : Tout sélectionner

 !section '.data' Data readable writeable
ou des

Code : Tout sélectionner

!Repeat 100
completement incomprehensible pour japbe !!

tu n'aurai pas une version correcte de ce code ? :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

.............
Dernière modification par Backup le sam. 01/oct./2011 11:12, modifié 1 fois.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Ah oui, tiens! Enfin moi c'était surtout parce qu'il y avait l'implémentation de Pow en assembleur; d'ailleurs j'ai remarqué qu'il y en avait plusieurs dans codearchiv. Je vais demander un correctif pour l'évaluateur, mais ça m'étonnerait qu'il soit fait ;)
Répondre