Complessità computazionale esponenziale
Salve a tutti. Ho provato a spulciare su Internet ma non ho trovato molte info a riguardo. Per la tesi mi servirebbe calcolare la complessità computazionale di un programma di calcolo. All'interno del programma ho una funzione di tipo esponenziale complesso. C'è qualcuno che mi sa indicare dove posso trovare informazioni riguardo alk'essettivo metodo che utilizza il PC per effettuare il calcolo dell'esponenziale complesso(utilizza Taylor o altro...)oppure se esistono formule che forniscono bound di qualche genere sulla complessità di tale calcolo.
Grazie mille
Saluti
Grazie mille
Saluti
Risposte
Spulciando qualcosina ho trovato ma non è molto rigoroso. Quando io chiamo una funzione intrinseca in fortran o anche in C immagino che questo di fatto chiami qualche sorta di procedura scritta in un file. Funziona così? Non sono un grande esperto di informatica. Nel caso qualcuno sa per caso dove si trovano i file (script) su cui sono scritte queste procedure. Scusate ma sono un pò in difficoltà su questa cosa e mi sarebbe molto utile disporre di queste info.
Grazie mille
Grazie mille
Premetto che semplificherò molto il discorso, impostandolo molto intuitivamente.
Di solito quando si parla di complessità (o costo) computazionale ci si sta riferendo a un algoritmo che opera su un set di dati di dimensione variabile, e ci si chiede come vari il tempo di esecuzione in funzione della dimensione del set di dati.
Ora, immagino che la funzione di cui tu parli operi su un singolo dato: dato un numero complesso [tex]a+\mathrm{i}b[/tex] la funzione restituisce [tex]\mathrm{e}^{a+\mathrm{i}b}[/tex].
In questa situazione probabilmente qualsiasi sia il numero complesso fornito in input la funzione avrà sempre lo stesso tempo di esecuzione, per cui è a "tempo costante" o, in simboli, [tex]O(1)[/tex].
Di solito quando si parla di complessità (o costo) computazionale ci si sta riferendo a un algoritmo che opera su un set di dati di dimensione variabile, e ci si chiede come vari il tempo di esecuzione in funzione della dimensione del set di dati.
Ora, immagino che la funzione di cui tu parli operi su un singolo dato: dato un numero complesso [tex]a+\mathrm{i}b[/tex] la funzione restituisce [tex]\mathrm{e}^{a+\mathrm{i}b}[/tex].
In questa situazione probabilmente qualsiasi sia il numero complesso fornito in input la funzione avrà sempre lo stesso tempo di esecuzione, per cui è a "tempo costante" o, in simboli, [tex]O(1)[/tex].
Per quanto riguarda il tuo secondo post, le procedure che tu cerchi sono scritte nei sorgenti dell'implementazione della libreria standard del C.
Un'implementazione di cui si possano visionare i sorgenti è quella open source del progetto GNU (molto usata tra l'altro), che puoi trovare all'indirizzo: http://sourceware.org/git/?p=glibc.git;a=tree;f=math;h=27bbc737f76ff097ba9daa0261e2799720850a3d;hb=HEAD, ma ti avviso che spulciare questa roba è tutt'altro che piacevole, e che molte delle routine matematiche possono essere implementate in assembler
buon divertimento
Un'implementazione di cui si possano visionare i sorgenti è quella open source del progetto GNU (molto usata tra l'altro), che puoi trovare all'indirizzo: http://sourceware.org/git/?p=glibc.git;a=tree;f=math;h=27bbc737f76ff097ba9daa0261e2799720850a3d;hb=HEAD, ma ti avviso che spulciare questa roba è tutt'altro che piacevole, e che molte delle routine matematiche possono essere implementate in assembler

Grazie per la risposta. Il problema è che nell'algoritmo che utilizzo i calcoli sul costo computazionale sono molto precisi trattandosi di moltiplicazioni e addizioni complesse. La cosa che mi premeva capire era come matematicamente il pc calcolava l'esponenziale (immagino che utilizzi algoritmi di sviluppo tipo Taylor) per ridurre l'esponenziale ad un tot numero di moltiplicazioni e addizioni oppure per capire se agiva in maniera completamente differente.
Ahimé, sto provando a spulciare nelle librerie e la cose è effettivamente molto noiosa. Vabbè, spero in un colpo di c..., ops, fortuna e di trovare velcoemente la routine giusta(purtroppo ogni file richiama ad altri file etc..).
Per ora cmq grazie per la disponibiltà
Ahimé, sto provando a spulciare nelle librerie e la cose è effettivamente molto noiosa. Vabbè, spero in un colpo di c..., ops, fortuna e di trovare velcoemente la routine giusta(purtroppo ogni file richiama ad altri file etc..).
Per ora cmq grazie per la disponibiltà