Download this file

Differ.def    114 lines (97 with data), 7.2 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
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.