Derivata di una funzione sconosciuta
Conoscete un modo per calcolare (anche per approssimazione con metodi numerici) la derivata di una funzione del quale non si conosce l'espressione ma si ha solo il grafico della sua rappresentazione? Se l'espressione fosse nota, anche se complicatissima potevo utilizzare le serie di taylor, ma così mi sembra di andare un po' alla cieca.
Risposte
si. quello va bene per un solo punto, ma a serve per tutti i punti. stavo però pensando di prendere alcuni campioni e poi effettuare un'interpolazione polinomiale: così posso approssimarla con un'espressione nota e derivare un polinomio è un gioco da ragazzi. Se scelgo un numero di campioni sufficientemente grande l'approssimazione è buona e di conseguenza l'errore è basso. Ke ne pensate?
"thebestmaster89":
si. quello va bene per un solo punto, ma a serve per tutti i punti. stavo però pensando di prendere alcuni campioni e poi effettuare un'interpolazione polinomiale: così posso approssimarla con un'espressione nota e derivare un polinomio è un gioco da ragazzi. Se scelgo un numero di campioni sufficientemente grande l'approssimazione è buona e di conseguenza l'errore è basso. Ke ne pensate?
Attenzione: interpolando con tanti punti il polinomio interpolatore che trovi fa parecchie "oscillazioni" (e comuque
può differire parecchio dalla funzione): la sua derivata può essere notevolmente diversa da quella della funzione iniziale!
Giusto! Quindi devo trovare un giusto compromesso nella scelta dei campioni. Attualmente dispongo di Mathematica 7 che sarebbe in grado di farlo, ma su internet utilizzano quasi tutti mathlab per fare questo genere di cose. Voi cosa preferite?
"thebestmaster89":
Giusto! Quindi devo trovare un giusto compromesso nella scelta dei campioni. Attualmente dispongo di Mathematica 7 che sarebbe in grado di farlo, ma su internet utilizzano quasi tutti mathlab per fare questo genere di cose. Voi cosa preferite?
Ma non ho capito bene la situazione: hai solo il grafico o hai una funzione definita su alcuni punti?
Un'interpolazione polinomiale non garantisce di mantenere la derivata prima, certo a meno che il polinomio non tenga conto anche della derivata prima, ma anche in quel caso l'approssimazione sarebbe comunque locale... Dividendo in sottointervalli potresti probabilmente raggiungere risultati migliori (diminuisci la fluttazione del polinomio). Probabilmente dividendo in sottointervalli e usare un'interpolazione che tenga conto anche delle derivate in quei punti potresti raggiungere risultati apprezzabili, ma non sono un esperto di analisi numerica.
"vict85":
Un'interpolazione polinomiale non garantisce di mantenere la derivata prima, certo a meno che il polinomio non tenga conto anche della derivata prima, ma anche in quel caso l'approssimazione sarebbe comunque locale... Dividendo in sottointervalli potresti probabilmente raggiungere risultati migliori (diminuisci la fluttazione del polinomio). Probabilmente dividendo in sottointervalli e usare un'interpolazione che tenga conto anche delle derivate in quei punti potresti raggiungere risultati apprezzabili, ma non sono un esperto di analisi numerica.
E' possibile utilizzare il metodo delle spline cubiche.
Comunque, per sapere quale metodo seguire, dobbiamo vedere l'esercizio..