Προς το περιεχόμενο

Παράγωγοι στην C


johnykim

Προτεινόμενες αναρτήσεις

Δημοσ.

@jhonykim

 

To προγραμματάκι σου είναι εντελώς λάθος.

Δεν έχεις καν καταλάβει την μαθηματική σχέση.

Για δες τι πηγαίνει στραβά.

 

Καταρχήν έχεις γράψει fx=10*x+2 χωρίς να έχεις δώσει τιμή στο x.

Το x το έχεις δηλώσει στην float fx,fxx,x,h;

αλλά δεν το έχεις ορίσει, δηλ. δεν του έχεις δώσει τιμή.

Αρχικά θα ισούται με μηδέν ή κάποιον άλλο τυχαίο αριθμό.

Άρα, εξαρχής το fx δεν είναι αυτό που περιμένεις να πάρεις.

Δώστου μια τιμή : x=10; για παράδειγμα.

 

Ακόμη χειρότερα, εφαρμόζεις την σχέση

f'(x) = ( f(x+h) - f(x-h) ) / (2h)

τελείως λάθος.

Η μεταβλητή fx όπως την όρισες αντιστοιχεί στην συνάρτηση f(x).

Εσύ θέλεις να υπολογίσεις την παράγωγο της συνάρτησης στη θέση x.

Tι έχεις κάνει : Για την εφαρμογή της σχέσης f'(x) = ( f(x+h) - f(x-h) ) / (2h) υπολογίζεις τις τιμές fx+h και fx-h.

Ο αριθμητής είναι fx+h -(fx-h) =2h, o παρανομαστής είναι επίσης 2h και έτσι σου προκύπτει πάντα μονάδα.

Πρόσεξε τον τύπο.

Eσύ έχεις γράψει λαθεμένα fx+h δηλ. f(x)+h , ενώ ο τύπος απαιτεί το f(x+h) ( και όμοια για το f(x-h) ).

Το f(x+h) σημαίνει ότι στην f(x), όπου x θα βάλεις το x+h

και το f(x-h) σημαίνει ότι στην f(x), όπου x θα βάλεις το x-h.

Η σχέση fx=10*x+2 δίνει την τιμή της f στο x.

Για να δώσει την τιμή στο x+h πρέπει να γραφεί fx=10*(x+h)+2

και, όμοια, για το x-h πρέπει να γράψεις fx=10*(x-h)+2.

Κάνε το εξής :

fx1=10*(x+h)+2;

fx2=10*(x-h)+2;

 

Tότε ο τύπος της παραγώγου προγραμματιστικά είναι

fxx= (fx1-fx2)/(2*h);

 

Για να έχεις την συνάρτηση στη μορφή f(x), κάνε αυτό που γράφει ο virxen95.

Tότε ο τύπος της παραγώγου γράφεται προγραμματιστικά ως

fxx= ( f(x+h)-f(x-h) )/(2*h);

 

Ελπίζω να βγάλεις άκρη τώρα.

Μην ξεκινάς να γράφεις ούτε γραμμή αν πρώτα δεν κατανοήσεις το πρόβλημα και τα μαθηματικά του.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...