Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Radici ennesime

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    18

    Radici ennesime

    Ho un esercizio da svolgere e probabilmente mi mancano le basi matematiche per capirlo.

    In pratica dovrei scrivere un programma che calcoli le radici ennesime di numeri in virgola mobile con "a" (il numero sotto radice) ed "n" (la radice ennesima) definiti dall'utente. Ora, il testo recita: ricavate il risultato di a^{1/n} mediante il calcolo di uno zero della funzione ƒ(x) = x^n - a. Il testo inoltre dice di utilizzare il metodo iterativo della approssimazione di Newton-Raphson.

    Qualcuno potrebbe spiegarmi come interpretare l'esercizio? Grazie.

  2. #2
    Uhm ti serve un po' di geometria analitica secondo me, e anche le derivate.
    Prova a guardare qua.
    http://it.wikipedia.org/wiki/Metodo_delle_tangenti

    Allora, mi pare che devi innanzi tutto prendere un intervallo della curva, scegliere un estremo.
    Devi trovare il coefficente angolare della tangente in quel punto con il calcolo della derivata in quel punto ( il calcolo della derivata della tua funzione se non erro, è x^n-n), e ovviamente per trovare la x nel punto di ordinata 0, devi avere l'equazione completa della tangente, mentre con il calcolo della derivata hai solo il coefficente angolare.
    Per fare questo, nnt paura. Sapendo che la tua tangente interseca la curva nel punto (x,y) ( y lo trovi dando l'x dell'estremo alla tua funzione), riesci a trovarti l'equazione della tangente, dopodichè, imposti y=0 ( perchè devi trovare il punto della tangente giacente sull'asse x).
    Quando hai trovato il nuovo punto x, devi ripetere il procedimento, ossia trovare la retta tangente in quel punto, calcolarne il suo punto giacente sulla retta delle ascisse ( y=0) e così via, per questo viene detto metodo iterativo.

    Uhm, spero di essermi spiegato e di non aver detto boiate. Non ti ho calcolato io le equazioni con lla tua funzione perchè ho appena finito di studiare calcolo e probabilità. e dunque i numeri e la matematica mi esce dagli occhi. Scusa...
    Hihih, dai buon divertimento allora!

    Ha, e nota che questo metodo ti trova lo zero della tua funzione x^n-a, che come ben saprai è esattamente:

    0=x^n-a
    a=x^n
    Rad n-sima(a)=x

    bello vero?
    ciao!
    Programmazione .NET
    http://www.samueletosatto.tk

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Stringendo al dunque, visto che hai polinomi la cosa è estremamente semplice:

    codice:
        private double calcolaRicorsivo(double x, int p) {
            double d = x - ((Math.pow(x, n)-this.a)/(n*Math.pow(x, n-1)));        
            return (Math.abs(x-d) <= Math.pow(10, -p) ? (x+d) / 2 : calcolaRicorsivo(d, p));        
        }
        
        private double calcolaIterativo(double x, int p) {
            double d = x - ((Math.pow(x, n)-this.a)/(n*Math.pow(x, n-1)));        
            while (Math.abs(x-d) > Math.pow(10, -p)) {
                x = d;
                d = x - ((Math.pow(x, n)-this.a)/(n*Math.pow(x, n-1)));
            }
            return (x+d)/2;
        }
    in cui ti presento due modi (ricorsivo e iterativo) in cui x è il punto in cui stai calcolando, p il numero di cifre decimali corrette che vuoi. "a" ed "n" come da problema a^(1/n)

    E come ti è stato linkato:
    codice:
                 f(Xn)
    Xn+1 = Xn - ---------
                 f'(Xn)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    18
    Grazie infinite a entrambi, ovviamente il codice mi è stato di grande aiuto: ho usato il metodo iterativo. Comunque sia, ho finalmente capito come dovevo risolvere l'esercizio. GRAZIE!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.