Workshop zum Programmingwiki/Ableitung einer Funktion (Scheme)
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Scheme</language>
== Differential- und Differenzenquotient ==
Aus der Mathematik ist die Definition des Differentialquotienten bekannt:
<blockquote>
<math>f'(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}</math>
</blockquote>
Scheme kann natürlich nur mit einem endlichen Wert für <math>h</math> arbeiten.
Wir definieren deshalb:
<code id="5141e1c7c828f">
(define h 1e-06)
</code>
Damit gehen wir vom Differential- zum Differenzenquotienten mit kleinen Intervallen über.<br />
Nun können wir eine Prozedur höherer Ordnung definieren, die die ''Ableitung beliebiger(!) Funktionen'' als Näherungswert ermittelt!
<code id="5141e1c7c82f1">
(define ableitung
(lambda (fkt)
(lambda (x)
(/ (- (fkt (+ x h)) (fkt x)) h))))
</code>
Wir definieren eine Testfunktionen und rechnen nach.
<blockquote><math>
\begin{eqnarray}
f(x)&=&3\,x^2+\frac{2}{x}\nonumber\\
f'(x)&=&6\,x-\frac{2}{x^2}\nonumber\\
f'(2)&=&11,5\nonumber
\end{eqnarray}</math></blockquote>
<code id="5141e2453d45f">
(define fkt
(lambda (x)
(+ (* 3 x x) (/ 2 x))))
</code>
<check>
(and (= (fkt -3) 79/3) (= (fkt 1) 5))
</check>
<run id="5141e1c7c83db">
((ableitung fkt) 2)
</run>
Zurück zum [[Workshop zum Programmingwiki]].