Switch to side-by-side view

--- 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.