Derivata di funzione

di il
4 risposte

Derivata di funzione

Si costruisca una classe denominata Isin con un metodo che calcoli l’area della funzione y=sin(x)
tra due estremi definiti passati in input al metodo (si ricordi che l’area è sempre positiva).
Si costruisca poi la classe IDsin che eredita Isin aggiungendo un metodo per calcolare la derivata
numerica in un punto dato.


In questo esercizio sto trovando difficoltà a capire come implementare il calcolo della derivata: pensavo di usare il rapporto incrementale ma non so come Netbeans possa calcolare un limite.
Qualcuno mi può aiutare?

grazie

public class Isin {
    public static double area(double a, double b)
    {
        int n = 4000;
        double f_a, f_b;
        double ris = 0;
        double larg = (b-a)/n;
        for(int i=0; i<n; i++){
            f_a = Math.sin(a+i*larg);
            f_b = Math.sin(a+(i+1)*larg);
            ris = ris+((f_a+f_b)*larg/2);
        }
        if(ris < 0)
        {
         return -ris;
        }  
        else
        {
         return ris;
        }    
    
   }
}

4 Risposte

  • Re: Derivata di funzione

    aletzunny ha scritto:


    Si costruisca poi la classe IDsin che eredita Isin aggiungendo un metodo per calcolare la derivata
    numerica in un punto dato.
    La derivata del seno è il coseno.
  • Re: Derivata di funzione

    Grazie! Quello lo sapevo...ma chiede di creare un metodo che calcoli la derivata...

    È quello il problema
  • Re: Derivata di funzione

     public static double derivata(double x)
        {
          double h=0.00000001;
          return (Math.sin(x+h)-Math.sin(x))/h;
        }   
    ho provato così e sembra che per il seno(come da richiesta) funzioni anche con 6 cifre corrette dopo la virgola
    Può andare oppure è solo fortuna?
  • Re: Derivata di funzione

    aletzunny ha scritto:


    ho provato così e sembra che per il seno(come da richiesta) funzioni anche con 6 cifre corrette dopo la virgola
    Può andare oppure è solo fortuna?
    Se ti è stato richiesto di fare così, cioè come calcolo del rapporto incrementale, sì di per sé è giusto.
    Ovviamente non sarà esattamente uguale a Math.cos(x) (che come detto è la derivata del seno).
    public class Prova {
        public static void main(String[] args) {
            System.out.println(derivata(5));   // 0.28366218263187193
            System.out.println(Math.cos(5));   // 0.28366218546322625
        }
    
        public static double derivata(double x) {
            double h=0.00000001;
            return (Math.sin(x+h)-Math.sin(x))/h;
        }
    }
Devi accedere o registrarti per scrivere nel forum
4 risposte