Αριθμητικός υπολογισμός παραγώγου στη C++

Για τον υπολογισμό της παραγώγου μιας συνεχούς συνάρτησης χρησιμοποιούμε τον τύπο:

$$ f'(x) = \frac{f(x+h) - f(x-h)}{2h} $$ όπου h ένας πολύ μικρός θετικός αριθμός, τυπικά 1e-6.

Το παρακάτω παράδειγμα υπολογίζει την παράγωγο της συνάρτησης:

$$ f(x) = \frac{1}{2} x^3 $$

σε σημείο x, h, τα οποία εκχωρεί ο χρήστης. Η ακρίβεια του υπολογισμού μεγαλώνει, όσο μικραίνει το h.

#include <iostream>
#include <stdio.h>
#include <math.h>

using namespace std;

double f (double x)
{
    return 0.5 * pow(x, 3.0);
}

int main()
{

    double x, y, d, h;
    
    cout << "Σε ποιο x? ";
    cin >> x;
    cout << "Με ποιο h? ";
    cin >> h;
    
    y = f(x);
    d = (f(x+h) - f(x-h)) / (2.0*h);

    cout << "Η τιμή της συνάρτησης ισούται με : " << y << endl;
    cout << "Η παράγωγος ισούται με : " << d << endl;
    //printf("Η παράγωγος ισούται με : %.8f\n", d);
   
    return 0;
}

Δοκιμάστε διάφορες τιμές του h, στο ίδιο x. Δείτε το αποτέλεσμα με cout ή printf.

Μεταγλώττιση και δοκιμαστική εκτέλεση:

astavrak@apollonia:~$ g++ program.cpp
astavrak@apollonia:~$ ./a.out 
Σε ποιο x? 2
Με πόση ακρίβεια? 1e-3
Η τιμή της συνάρτησης ισούται με : 4
Η παράγωγος ισούται με : 6
Η παράγωγος ισούται με : 6.00000050

Συνδεθείτε για περισσότερες δυνατότητες αλληλεπίδρασης,
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.

Creative Commons License
Εκπαιδευτικό υλικό από τον Αθανάσιο Σταυρακούδη σας παρέχετε κάτω από την άδεια Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.