Oppure

Loading
27/02/08 11:07
yuzha
Ciao a tutti, finora ho programmato in Delphi, ma devo passare a C++ per implementare dei programmini pesantucci in parallelo da far girare nella Griglia. Ho provato con il Visual C++ della MS , ma da diversi problemi di stabilità e conflitto con altri programmi.(funziona bene solo per poco tempo, dopo l'istallazione). ora sono passato al C++ Builder, che mi ricorda molto il delphi come interfaccia essendo prodotto dalla stessa casa (e questo mi piace molto). Il problema è che tutte le librerie matematiche o scientifiche che ho trovato non funzionano. Dalla GNU scientific lib alla LAPACK++. Ho estremo bisogno di poter utilizzare funzioni come derivate o integrali, ma per equazioni in cui l'incognita non viene sostituita..numericamente è molto facile fare un'integrale, ma se bisogna farlo lasciando esplicita l'incognita, allora bisognerebbe implementare qualche libreria che permetta di salvare le funzioni in incognite come x,y e z e che permetta di processarle senza sostituire valori numerici. Tutto ciò mi ruberebbe troppo tempo.
Se qualcuno può aiutarmi ne sarei molto felice.
Ricapitolando , ho bisogno di una libreria con le "palle" che sia compatibile con C++ Builder.
saluti
aaa
27/02/08 18:15
xshell32
La GNU Scientific Library funziona con un compilatore Borland Builder C++. Forse hai scaricato la libreria per i sistemi Linux. Esiste la versione di questa libreria per Windows, ma è parte di CygWin ( cygwin.com ), che contiene programmi per Linux riscritti per Windows.
Scarica la versione più aggiornata di CygWin, seleziona nelle opzioni di installazione la libreria GSL e, alla fine, copia la libreria installata in CygWin nella cartella "include" di Borland Builder C++.

Potresti incontrare delle difficoltà nell'installare CygWin. Innanzitutto, dopo aver scaricato l'eseguibile (~ 450 Kb), avvialo. Ti chiederà di selezionare un indirizzo HTTP o FTP da una lista per scaricare i componenti. Provane un po': non sempre il primo che si sceglie è efficiente. Poi ti mostrerà la lista dei componenti da installare. Cerca quello che ti interessa nella sezione "LIB". Per essere sicuro che il componente sarà installato, devi accertarti che ci sia una X nella colonna BIN e non nella colonna SRC.

Ciao! ;)
Ultima modifica effettuata da xshell32 27/02/08 18:50
aaa
28/02/08 16:23
yuzha
grazie, ho fatto una cosa simile con il buider C++, ma mi dava cmq problemi. Allora cercando meglio trovato nella home page del DEV C++ , un autoinstaller della GNU Scientific Library ! Proprio quello che cercavo. Allora ho installato il Dev C++ per Win e la libreria GSL.. Dopo di che ho aperto un nuovo progetto, e nel file main.cpp (che è l'unico che mi compare) ho semplicemente aggiunto le librerie necessarie ed il seguente condice :
#include <gsl/gsl_math.h>
#include <gsl/gsl_deriv.h>
double f (double x, void * params)
{
return pow (x, 1.5);
}
int
main (void)
{
gsl_function F;
double result, abserr;
F.function = &f;
F.params = 0;
printf ("f(x) = x^(3/2)\n";);
gsl_deriv_central (&F, 2.0, 1e-8, &result, &abserr);
printf ("x = 2.0\n";);
printf ("f’(x) = %.10f +/- %.10f\n", result, abserr);
printf ("exact = %.10f\n\n", 1.5 * sqrt(2.0));
gsl_deriv_forward (&F, 0.0, 1e-8, &result, &abserr);
printf ("x = 0.0\n";);
printf ("f’(x) = %.10f +/- %.10f\n", result, abserr);
printf ("exact = %.10f\n", 0.0);
return 0;
}

trovato nella guida della Libreria stessa.
Quando compilo, riconosce le librerie e tutte le funzioni fino a gsl_deriv_central e gsl_deriv_forward , dove scrive :
[Linker Error] Undefined reference to 'gsl_deriv_central' e così per l'altro.
Potete provare a installare questa GSL e mettere questo codice, è un bug o un errore grossolano mio?
ciao

p.s. ovviamente ho provato pure ad aggiungere un nuovo file .cpp con solo il testo di cui sopra, ma da lo stesso risultato.
Ultima modifica effettuata da yuzha 28/02/08 16:26
aaa
28/02/08 21:18
xshell32
Potresti dirmi che versione del compilatore e della libreria hai?

Provo a risolvere il problema compilando il sorgente che hai inserito con un Borland Builder C++ 6 e con GSL 1.10.

Se riesco nell'intento ti avviso.
aaa
28/02/08 21:26
yuzha
perfetto, ho le stesse anche io, ti ringrazio.
ciao
aaa
28/02/08 21:46
xshell32
devi aggiungere anche la libreria: include <stdio.h> per la funzione printf();.

Questo non risolve ancora il problema, ma lo riduce soltanto...

Il problema risiede nella libreria: gsl_deriv.h

Proverò a ricostruire le funzioni...
Ultima modifica effettuata da xshell32 28/02/08 21:50
aaa
28/02/08 22:12
xshell32
Ho provato a compialre un'altro sorgente, che utilizza la GSL, con Visual Studio e sembra che tutto funzioni... non sò che dire... ma non bisogna perdere la speranza...
Ultima modifica effettuata da xshell32 28/02/08 22:59
aaa
29/02/08 9:06
yuzha
sì, la stdio l'avevo messa, infatti il problema era solo per le funzioni di quella libreria sulle derivate.. forse è un bug! Ho visto che ci sono altre librerie matematiche come la root scritta nel CERN in svizzera. Dicono sia buona. L'ho installata, ma avvia una interfaccia in DOS, a me serviva in DEV C++ o Buider C++. Grazie del tuo aiuto.
aaa