Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [?]Esponente decimale

  1. #1
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491

    [?]Esponente decimale

    Come implemento un elevazione ad un esponente con cifre decimali, avendo già implementato l'elevazione a esponente intero e le operazioni di base?
    Idee?
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  2. #2
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Io ho tirato fuori questo:
    codice:
    X^(a,b) = (X^a)*radice10°di(X^b)
    es:
    3^3.7 = 3^3*radicedecimadi(3^7)
    Solo in questo modo tengo conto solo di una cifra decimale e se volessi tenere conto anche delle altre avrei comunque una approx. numerica non indifferente....ci sono altri modi?
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Ehm... veramente...

    3^(3.7) = 3 ^ (37/10) = radice10(3^37).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Quindi?
    è la stessa cosa, cercavo un metodo diverso, ora che ci penso non posso neppure passare per le radici...qualcosa che si risolva tipo tramite sommatorie....chessò sviluppo in qualche serie... :master:
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    curiosando in Math, ho trovato quello che cerchi:

    static double pow(double a, double b)
    Returns the value of the first argument raised to the power of the second argument.

  6. #6
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    :master: ma il secondo argomento di pow è un int!

    Anche a me interesserebbe una soluzione matematica che semplifichi il problema, magari appunto con una sommatoria...

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    altrimenti l'algoritmo da seguire è quello che mette in evidenza l'esempio di Lele:

    prendi l'esponente e lo dividi per 10 fino a che non hai un intero

    e fai in modo che ti trovi radice 10 di 3 elevato 37

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    No è un double il secondo argomento di pow. A me funziona...

    codice:
    class b{
      public static void main(String[] args){
        System.out.println(Math.pow(3,3.7));
      }
    }

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Uhm... se esiste un modo per calcolare un esponente con cifre decimali sono ben lieto di apprenderlo... per ora non conosco metodi diversi da quello utilizzato da me e Xadoom (che sono praticamente la stessa cosa)...

    Quello che mi viene in mente è che si può tentare di approssimare la radice mediante algoritmi di approssimazione come il metodo dicotomico (da evitare), il metodo delle secanti o il metodo delle tangenti di Newton... ma io non mi spingo oltre!


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Il metodo pow() funziona anche con un double, comunque a me serviva reimplemntarlo daccapo in quanto stavo scrivendo una classe per i numeri complessi...poi sfogliando il libro di analisi ecco la soluzione:
    codice:
    a^b = exp[b*Log(a)] 
    //a,b reali o complessi, con a>0
    E quindi avendo già implementato l'operatore Log() il problema si è risolto da se. Ma il bello che tutto ciò vale anche per i numeri reali.
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.