Workshop zum Programmingwiki/Ableitung einer Funktion (Scheme)

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SchemeJS</language>
== Differential- und Differenzenquotient ==

Aus der Mathematik ist die Definition des Differentialquotienten bekannt:

<blockquote>
$f'(x)=\lim\limits_{h \to 0}\frac{f(x+h)-f(x)}{h}$
</blockquote>

Scheme kann natürlich nur mit einem endlichen Wert für $h$ 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>$
\begin{eqnarray*}
f(x)&=&3\,x^2+\frac{2}{x}\\
f'(x)&=&6\,x-\frac{2}{x^2}\\
f'(2)&=&11,5
\end{eqnarray*}$</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]].