--- a
+++ b/Differ.def
@@ -0,0 +1,113 @@
+DEFINITION MODULE Differ;
+
+ (*------------------------------------------------------------------------*)
+ (* Modul zur Berechnung von numerischen Gradienten *)
+ (* Module for calculation of numerical gradients *)
+ (*------------------------------------------------------------------------*)
+ (* Implementation : Michael Riedl *)
+ (* Licence : GNU Lesser General Public License (LGPL) *)
+ (*------------------------------------------------------------------------*)
+
+ (* $Id: Differ.def,v 1.2 2016/10/04 07:52:09 mriedl Exp mriedl $ *)
+
+FROM LMathLib IMPORT Funktion1;
+
+PROCEDURE Ableit1p5(VAR Y : ARRAY OF LONGREAL; (* ==> Funktionswerte *)
+ VAR dY : ARRAY OF LONGREAL; (* <== Erste Ableitung *)
+ dH : LONGREAL; (* Schrittweite *)
+ n : CARDINAL); (* Anzahl Datenpunkte *)
+
+ (*-----------------------------------------------------------------*)
+ (* Berechnet in dY die gen"aherte erste Ableitung einer in Y als *)
+ (* Werte vorgegebenen Funktion nach einer f"unf - Punkte - Formel. *)
+ (* Die Randwerte werden nach anderen, schlechteren Formeln be- *)
+ (* rechnet. Die Funktion mu\3 dabei mit der Schrittweite dH ausge- *)
+ (* wertet worden sein. *)
+ (* Die globale Variable Errors.Fehler wird auf TRUE gesetzt, wenn *)
+ (* (n < 3) oder (dH <= 0.0). *)
+ (* Lit.: Bronstein-Semendjajew, Taschenbuch der Mathematik. (768) *)
+ (*-----------------------------------------------------------------*)
+
+PROCEDURE Ableit1p7(VAR Y : ARRAY OF LONGREAL; (* ==> Funktionswerte *)
+ VAR dY1 : ARRAY OF LONGREAL; (* <== Erste Ableitung *)
+ dH : LONGREAL; (* Schrittweite *)
+ N : CARDINAL); (* Anzahl Datenpunkte *)
+
+ (*-----------------------------------------------------------------*)
+ (* Berechnet in dY die gen"aherte erste Ableitung einer in Y als *)
+ (* Werte vorgegebenen Funktion nach einer sieben Punkte - Formel. *)
+ (* Die Randwerte werden nach anderen, schlechteren Formeln be- *)
+ (* rechnet. Die Funktion mu\3 dabei mit der Schrittweite dH ausge- *)
+ (* wertet worden sein. *)
+ (* Die globale Variable Errors.Fehler wird auf TRUE gesetzt, wenn *)
+ (* (n < 7) oder (dH <= 0.0). *)
+ (* Lit.: Bronstein-Semendjajew, Taschenbuch der Mathematik. (768) *)
+ (*-----------------------------------------------------------------*)
+
+PROCEDURE Ableit2p5(VAR Y : ARRAY OF LONGREAL; (* ==> Funktionswerte *)
+ VAR dY1 : ARRAY OF LONGREAL; (* <== Erste Ableitung *)
+ dH : LONGREAL; (* Schrittweite *)
+ n : CARDINAL); (* Anzahl Datenpunkte *)
+
+ (*----------------------------------------------------------------*)
+ (* Berechnet die zweite Ableitug der in Y gespeicherten *)
+ (* Funktionswerte, mit Y[i]:=f(X[i]), nach einer 5-Punkte- *)
+ (* methode, wobei Randwerte anders ( schlechter !) berechnet *)
+ (* werden. *)
+ (* Die X_i M"USSEN equvidistant liegen ! *)
+ (* n > 5 notwendig, ansonsten Fehlermeldung ! *)
+ (* dY2 : 2. Ableitungen an den Stellen X_i *)
+ (*----------------------------------------------------------------*)
+
+PROCEDURE Ableit2p7(VAR Y : ARRAY OF LONGREAL; (* ==> Funktionswerte *)
+ VAR dY2 : ARRAY OF LONGREAL; (* <== Zweite Ableitung *)
+ dH : LONGREAL; (* Schrittweite *)
+ n : CARDINAL); (* Anzahl Datenpunkte *)
+
+ (*----------------------------------------------------------------*)
+ (* Berechnet die zweite Ableitug der in Y gespeicherten *)
+ (* Funktionswerte, mit Y[i]:=f(X[i]), nach einer 7-Punkte- *)
+ (* methode, wobei Randwerte anders ( schlechter !) berechnet *)
+ (* werden. *)
+ (* Die X_i M"USSEN equvidistant liegen ! *)
+ (* n > 7 notwendig, ansonsten Fehlermeldung ! *)
+ (* dY2 : 2. Ableitungen an den Stellen X_i *)
+ (*----------------------------------------------------------------*)
+
+PROCEDURE AbleitN(VAR X,Y : ARRAY OF LONGREAL;
+ VAR dY : ARRAY OF LONGREAL;
+ ndata : CARDINAL;
+ Grad : CARDINAL;
+ NAbl : CARDINAL);
+
+ (*----------------------------------------------------------------*)
+ (* Berechnet die n. Ableitung der in X,Y "ubergabenen Daten *)
+ (* *)
+ (* ==> X,Y : Daten. *)
+ (* <== dY : 1. Ableitung von Y an den Stellen X_i . *)
+ (* ==> ndata : Anzahl der Datenpunkte in X,Y. *)
+ (* ==> Grad : Anzahl der gew"unschten St"utzstellen. *)
+ (* ==> NAbl : Ordnung der gew"unschten Ableitung. *)
+ (* *)
+ (* Die X_i m"ussen nicht equvidistant liegen, wie es bei den *)
+ (* anderen Ableitungsprozeduren der Fall ist. Allerdings mu\3 *)
+ (* Grad mindestens NAbl + 1 und die Anzahl der Datenpunkte mu\3 *)
+ (* mindestens Grad + 2 betragen. *)
+ (*----------------------------------------------------------------*)
+
+PROCEDURE Ableit1und2( X : LONGREAL;
+ H : LONGREAL;
+ Funk : Funktion1;
+ VAR Y1,Y2 : LONGREAL);
+
+ (*----------------------------------------------------------------*)
+ (* Berechnet die 1. und die 2. Ableitung f"ur eine Funktion Funk *)
+ (* nach dem Zweipunkt- bzw. Dreipunkt-Verfahren. *)
+ (* X : Argumentwert der Funktion F, an dem die Ableitungen *)
+ (* berechnet werden *)
+ (* H : Schrittweite *)
+ (* Y1 : Numerisch bestimmte 1. Ableitung von F an der Stelle X *)
+ (* Y2 : Numerisch bestimmte 2. Ableitung von F an der Stelle X *)
+ (*----------------------------------------------------------------*)
+
+END Differ.