MAL-Homepage Inhaltsverzeichnis



MAL Dokumentation: Mathematik




Inhalt:

1. ALLGEMEINES
2. SIGNALVERARBEITUNG
2.1. Triggerpunkte
2.2. Zeitabschnitte
2.3. Resampling
2.4. Glätten
2.5. Fourier-Transformation
2.6. Differenzieren und Integrieren
2.7. Interpolieren
3. MATRIZEN UND VEKTOREN
3.1. Orientierungsdaten
3.2. Gelenkswinkel
3.3. Kamerakalibrierung
4. KOMPLEXE ZAHLEN
4.1. Einführung
4.2. Die Klasse complex_class
5. STATISTIK
5.1. Grundfunktionen
5.2. Histogramme
5.3. Regressionen
5.4. Zweidimensionale Regressionen


1. ALLGEMEINES

In diesem Kapitel sind nur die wesentlichsten mathematischen und statistischen Funktionen erläutert. Eine vollständige Zusammenstellung aller mathematischen Worte kann unter
mathematics gefunden werden.

Alle Funktionen die mit Zahlen arbeiten (z.B. sin, n!, cosh, ..) können auch für Zeitreihen (=Verbunde von Realzahlen), Bilder (=Images), EMED-Datensätze oder Verbunde von EMED-Datensätzen verwendet werden.

Auch Operatoren (wie z.B. +, mod ..) können für diese Datentypen oder Kombinationen davon verwendet werden. Der Ergebnis-Datentyp hängt von den Datentypen der Operatoren wie folgt ab:

MAL-Homepage Inhaltsverzeichnis


2. SIGNALVERARBEITUNG

2.1. Triggerpunkte

Für die Suche nach Schwellwertüber- oder -unterschreitungen existieren die Worte
+trigger und -trigger. Sie sind vor allem für die Synchronisation von mehreren Zeitreihen (z.B. zum Suchen von Schrittbegin und Schrittende, Fußungsbeginn und Fußungsende o.ä.) von großem Nutzen.

Syntax:

zeitreihe schwelle hyst -> indizes

Die Zeitreihe ist als Verbund von Realzahlen anzugeben. Als Ergebnis erhält man einen Verbund von Indizes, an denen der Schwellwert über- bzw. unterschritten wurde. Um wiederholtes Triggern durch das Signalrauschen zu unterdrücken, dient die Hysterese, die mit dem Wert ´hyst´ anzugeben ist.



Beispiel:

Berechnung von Testdaten:

: zeitreihe
1 random 1 , 10 * >> verschiebung
1 random 1 , 1 + >> amplitude
200 ramp 10 / verschiebung + sin amplitude * ;


[ zeitreihe zeitreihe zeitreihe ] >> testdaten
testdaten draw screen

Suche der Nulldurchgänge und Ausschneiden der ersten Periode:

: erste_periode >> zeitreihe
zeitreihe 0 0.1 +trigger >> triggerpunkte
zeitreihe triggerpunkte 2 , cut drop
triggerpunkte 1 , 1 - cut swap drop ;


[ testdaten each erste_periode ] draw screen

MAL-Homepage Inhaltsverzeichnis


2.2. Zeitabschnitte

Die Klasse
timeslices_class dient zum Zerteilen und Bearbeiten von Zeitabschnitten. Ihre Funktionen können für beliebige Verbunde oder Instanzen von Klassen, die die Funktionen count und cut kennen, verwendet werden. Insbesondere gilt dies neben eindimensionalen Zeitreihen (Realverbund) auch für Instanzen der Klassen trajectory_class und trajectories_class.

Es gibt zwei Konstruktoren für Instanzen der Klasse timeslices_class: Einen, bei dem die Beginn- und Endzeitpunkte der Zeitabschnitte angegeben werden (from-to>timeslices) und einen, bei dem nur die Beginnzeitpunkte angegeben werden (from>timeslices), die Zeitabschnitte also dicht liegen.

Beispiel:

Aus der Datei gangdat.met wird die Vertikalbewegung der linken Ferse gelesen:

public \ 3d \ interfaces >voc
"gangdat.met" meta> z \ Ferse_L 100 400 |--| >> signal


Bestimmen der Zeitpunkte, zu denen die Ferse vom Boden abhebt

signal 0.1 0.05 +trigger from>timeslices >> ab_fussungsende


Die Funktion draw kann für die Kontrollanzeige der Zeitabschnitte verwendet werden:

signal ab_fussungsende draw screen

Die Funktion split teilt eine Zeitreihe (kann auch eine andere als signal sein) in die Zeitabschnitte auf.

signal ab_fussungsende split draw screen

Durch Differenzbildung kann eine Teilphase bestimmt werden (z.B. die Standphase).

signal 0.15 0.05 -trigger from>timeslices >> ab_fussungsbeginn
ab_fussungsbeginn ab_fussungsende - >> standphase
signal standphase draw screen

Weitere Funktionen für die Behandlung von Zeitabschnitten sind bei timeslices_class zu finden.

MAL-Homepage Inhaltsverzeichnis


2.3. Resampling

Um Zeitreihen auf eine bestimmte Anzahl von Samples zu normalisieren, kann das Wort
normalize verwendet werden. Es kann für Verbunde von Realzahlen oder EMED-Bildern verwendet werden. Für Trajektorien existieren gleichlautende Member-Functions, sodass die Normalisierung für diese Datensätze syntaktisch gleich ist.

Syntax von normalize:

zeitreihe sampleanz -> norm_zeitreihe

Die Berechnung der für das Resampling erforderlichen Zwischenwerte erfolgt mittels linearer Interpolation.

Beispiel:

1000 ramp 100 / sin >> signal
[ signal dup 500 normalize ] draw screen

MAL-Homepage Inhaltsverzeichnis


2.4. Glätten

Folgende Funktionen können für das Glätten von Zeitreihen verwendet werden:

MAL-Homepage Inhaltsverzeichnis


2.5. Fourier-Transformation

Die Worte
fft und ifft führen eine Fast-Fourier-Transformation bzw. inverse Fast-Fourier-Transformation durch, die Worte dft und idft eine diskrete Fourier-Transformation/Rücktransformation.

Syntax für fft und dft:

zeitreihe -> real imag

Syntax für ifft und idft:

real imag -> zeitreihe

Der Algorithmus für die Berechnung der Fast-Fourier-Transformations verlangt, daß die Anzahl der Samples in der Zeitreihe oder den Feldern ´real´ und ´imag´ einer ganzahligen Zweierpotenz (also .. 64,128 .. 1024..) entsprechen muß. Nötigenfalls kann man dies mit dem Wort ´normalize´ erreichen.

Bei beiden Worten wird der Gleichanteil (üblicherweise mit a0 bezeichnet) nicht berechnet bzw. nicht verwendet. D.h das Feld ´real´ enthält die Koeffizienten a1,a2... und das Feld ´imag´ die Koeffizienten b1,b2 .....

Der Koeffizient a0 entspricht dem Mittelwert der Zeitreihe. Er kann im Bedarfsfall jederzeit mit dem Wort mean aus der Zeitreihe berechnet werden.

MAL-Homepage Inhaltsverzeichnis


2.6. Differenzieren und Integrieren

Die Worte
diff und integrate führen eine einfache numerische Differentiation bzw. Integration einer Zeitreihe durch. diff bildet jeweils die Differenzen zwischen zwei aufeinanderfolgenden Werten der Zeitreihe und integrate summiert aufeinanderfolgende Werte auf. Daher wird die Zeitreihe bei diff um einen Wert kürzer. Bei integrate wird mit dem Startwert 0 begonnen, womit die Zeitreihe um einen Wert verlängert wird.

Das Wort diff kann nicht nur für die numerische Ableitung, sondern generell für die Bestimmung von Differenzen zwischen Zahlen verwendet werden, was zum Beispiel für die Berechnung von Periodenlängen von Vorteil ist.

Beispiel:

500 ramp 10 / sin >> zeitreihe
zeitreihe 0 0.1 +trigger diff .

[ 63 63 63 63 62 <- 5
63 ]

MAL-Homepage Inhaltsverzeichnis


2.7. Interpolieren

Folgende Worte könne für die Interpolation von Zeitreihe verwendet werden:

Allen diesen Worten ist gemeinsam, dass sie über Zeitbereiche mit Werten außerhalb eines einstellbaren gültigen Datenbereichs interpolieren. Die Worte
interpol und spline_interpol belassen Anfangs- und Endbereiche mit ungültigen Daten unverändert (können also nicht extrapolieren).

Das Wort dft_interpol approximiert den gegebenen gültigen Zeitbereich durch eine Summe von Sinus- und Cosinusschwingugen und einer zusätzlichen Geraden (für die lineare Fortbewegung). Es kann auch extrapolieren. Allerdings setzt diese Art der Interpolation eine periodische Grundgestalt der Kurve voraus. Anfangs- und Entzeitpunkt der Kurve müssen die gleiche Phasenlage in Bezug auf die Grundwelle haben. In der Praxis hat sich gezeigt, dass diese Form der Interpolation leicht zu Instabilitäten neigt, obwohl sie vom Prinzip her für periodische Vorgänge ideal wäre.

MAL-Homepage Inhaltsverzeichnis


3. MATRIZEN UND VEKTOREN

Für die Bearbeitung von 3d-Zeitreihen und Orientierungsdaten existieren eigene Klassen, die auf den hier vorgestellten Funktionen basieren (siehe
Klassen für die 3d-Bearbeitung)

Matrizen werden in MAL in Form eines Verbundes der Zeilenvektoren dargestellt. Also zum Beispiel eine 3x3 Matrix R wird in der Form

[ 
[ r11 r12 r13 ]
[ r21 r22 r23 ]
[ r31 r32 r33 ]
] 
dargestellt.

Das Wort m*m dient zum Multiplizieren von Matrizen und m*v zum Multiplizieren einer Matrix mit einem Vektor.

Bei manchen Worten können die Komponenten von Matrizen oder Vektoren auch Verbunde von Realzahlen sein. Diese Möglichkeit dient zum einfachen Bearbeiten von Zeitreihen (z.B. beim Wort ´motion3d´). Die jeweiligen Möglichkeiten entnimmt man am besten der Helpfunktion (Wort ´??´).

Die Worte rotate, rotate+shift, invert_orientation und orientation& dienen für die Umrechnung von dreidimensionalen Vektoren oder Vektoren von Zeitreihen zwischen verschiedenen Bezugskoordinatensystemen.

Die Vektoren haben die Form
[ x y z ]
wobei für ´x´, ´y´ und ´z´ entweder Realzahlen oder (gleich lange) Verbunde von Realzahlen (bei Zeitreihen) verwendet werden können.

Für die Umrechnung wird ein Orientierungsdatensatz, das ist ein Verbund bestehend aus einer Drehmatrix und einem Verschiebungsvektor, verwendet. Mit orientation& können Orientierungsdatensätze verkettet werden.

Lineare Gleichungssysteme können mit dem Wort equation gelöst werden. Es arbeitet nach dem Gaußschen Zeileneliminationsverfahren. Wird es mit den Daten eines überbestimmten Gleichungssystems versorgt, so wird automatisch eine Transformation vorgeschaltet, sodaß der Ergebnisvektor nach der Kleinstquadratmethode optimiert ist.

Das Gaußsche Zeileneliminationsverfahren wird auch bei der Berechnung der Inversen Matrix (Wort invers_matrix) oder der Determinante (Wort determinante) verwendet.

Die Berechnung von Eigenwerten (Wort eigenvalues) und Eigenvektoren (Wort eigenvectors) ist nur für 3x3-Matrizen möglich.

MAL-Homepage Inhaltsverzeichnis


3.1. Orientierungsdaten

Statische Orientierungsdaten werden in der Form

[ R v ]
wobei R die Drehmatrix und v der Verschiebungsvektor ist dargestellt.

Die Klasse
orientation_class kann darüber hinaus für die Handhabung von zeitveränderlichen Orientierungen verwendet werden.

Berechnung der Bewegung von starren Körpern:

Kennt man von einem im Raum bewegten starren Körper die Koordinaten von mindestens 3 am Körper angebrachten Markierungspunkten, so kann man seine Drehmatrix und den Verschiebungsvektor bezüglich der Ausgangslage berechnen.

Das Wort motion3d führt eine derartige Berechnung durch (es benötigt allerdings mindestens 4 Markierungspunkte). Das Berechnungsverfahren (Spoor & Feldpaus, Journal of Biomechanics 1980, Vol. 13, Seite 391) führt bei mehreren Markierungspunkten eine Optimierung nach der Kleinstquadratmethode durch. Es benötigt keinen Lösungsansatz. motion3d kann auch für die Berechnung einer Zeitreihe herangezogen werden. Die berechneten Orientierungsdaten beziehen sich immer auf die Lage des Objekts zum Startzeitpunkt der Zeitreihe.

MAL-Homepage Inhaltsverzeichnis


3.2. Gelenkswinkel

Sind von einem Gelenk die Raumkoordinaten von drei Punkten bekannt (Markierungspunkt am ersten Glied, Gelenksachse und Markierungspunkt am zweiten Glied), so kann mit dem Wort
angle3d der dreidimensionale Gelenkswinkel berechnet werden.

Syntax:

x1 y1 z1 x2 y2 z2 x3 y3 z3 -> winkel

Die Koordinatenwerte ´x1´..´z3´ können Realzahlen oder Realfelder mit Zeitreihen sein. Das Ergebnis ist stets ein Realfeld mit den Winkelwerten in rad.

Das Wort angle2d kann für die Berechnung von zweidimensionalen Gelenkwinkeln verwendet werden.

MAL-Homepage Inhaltsverzeichnis


3.3. Kamerakalibrierung

Kinematische Meßsysteme (=Tracking Systeme) erfordern im allgemeinen eine Berechnung von Raumkoordinaten von Meßpunkten aus gegebenen Bildkoordinatenwerten.

Diese Berechnung erfordert zuvor die Bestimmung der Kameraorientierungen (=Kamerakalibrierung). Bei der Kalibrierung werden zuerst Meßpunkte mit bekannten Raumkoordinaten vermessen (sog. ´Passpunkte´). Aus den bekannten Raumkoordinaten und den gemessenen Bildkoordinaten werden Parametersätze berechet, die in der Folge für die Rücktransformation von Bild- in Raumkoordinaten verwendet werden.

Glossar:

Die in MAL verwendete Kalibriermethode benötigt zumindest 7 Passpunkte und mindestens 2 Kameras. Werden mehr als 7 Passpunkte gemessen, so wird die Berechnung des Parametersatzes mit einem Kleinstquadratverfahren optimiert, wodurch die Genauigkeit der Kalibrierdaten steigt. Die Verwendung von mehr als 2 Kameras erhöht die Genauigkeit bei der Rücktransformation auf Raumkoordinaten und reduziert außerdem die Wahrscheinlichkeit, daß ein Punkt nicht berechnet werden kann, weil er verdeckt ist.

Kalibrierung:

Bei der Kalibrierung wird für jede Kamera und jede Bildkoordinate mit dem Word
camera_calib_3d ein Parametersatz berechnet, der aus 7 Parametern besteht. Das bedeutet zum Beispiel bei der Verwendung von zwei Kameras (Kamera A und Kamera B), daß 4 Parametersätze berechnet werden müssen:
  1. Parametersatz Kamera-A, X-Koordinate,
  2. Parametersatz Kamera-A, Y-Koordinate,
  3. Parametersatz Kamera-B, X-Koordinate,
  4. Parametersatz Kamera-B, Y-Koordinate.
Rücktransformation:

Für die Berechnung von Raumkoordinaten aus Bildkoordinatenwerten dient das Wort camera>3d. Es ist mit mindestens drei Bildkoordinatenwerten und den jeweils entsprechenden Parametersätzen zu versorgen. Es genügen 3 Bildkoordinatenwerte. Man wird aber selbstverständlich möglichst alle bekannten Bildkoordinatenwerte angeben, um die Genauigkeit zu erhöhen. Die Bildkoordinaten können auch als Verbunde von Realzahlen (also Zeitreihen) angebeben werden, dann sind entsprechend auch die Ergebnisswerte Verbunde von Realzahlen.

Für die Behandlung von zeitweise Verdeckten Punkten existiert die Möglichkeit Platzhalterwerte (Missing-Values) einzusetzen. Zu diesem Zweck muß eine Variable mit dem Namen missing_value und dem ensprechenden Wert eingerichtet werden.

Nichtlineare Kalibrierung

Unter nichtlinearer Kalibrierung wird die Korrektur der Linsenverzerrungen verstanden. Sie wird durch Aufnahme eines Kalibrierrasters durchgeführt. Für die Berechnung der Kalibrierparameter kann das Wort regress_2d verwendet werden. Die Umrechnung von den Rohdaten auf die kalibrierten Werte kann mit dem Wort polynom_2d durchgeführt werden.

Eine detailierte Beschreibung der linearen und nichtlinearen Kalibrierung findet man auch im Kapitel Photogrammetrie.

MAL-Homepage Inhaltsverzeichnis


4. KOMPLEXE ZAHLEN

4.1. Einführung

Sämtliche für das Rechnen mit komplexen Zahlen erforderlichen Worte sind unter Topic
complex beschrieben.

Das Rechnen mit komplexen Zahlen wie es in der Elektronik üblich ist, kann für die Biomechanik überall dort, wo man mit periodischen Vorgängen zu tun hat, von großem Nutzen sein. Man betrachte die Gleichung

               du
       i = C  -----
               dt
und ihr mechanisches Pendant
               dv
       f = M  -----
               dt
Daraus läßt sich unmittelbar schließen, dass man sämtliche für elektronische Schaltungen üblichen Berechnungen auch für mechanische Zusammenhänge anwenden kann, wenn man statt Strom Kraft, statt Kapazität Masse und statt Spannung Geschwindigkeit einsetzt.

Ebenso wie in der Elektronik beschreiben komplexe Zahlen immer nur das Verhalten einer Schaltung (eines mechanischen Systems) bei einer sinusförmigen Schwingung. Nicht-sinusförmige Schwingungen müssen durch eine Summe sinusförmiger Schwingungen dargestellt werden. Dieser Tatsache trägt die Klasse complex_class Rechnung, indem sie auch die Definition von komplexen Zahlen für ganze Frequenzbänder zulässt.

Man kann also periodische Zeitreihen egal welcher Kurvenform per Fouriertransformation in ein Frequenzband umwandeln und diese mit den entsprechenden komplexen Zahlen verknüpfen (Multiplizieren, Addieren usw.). Damit diese Verknüpfungen korrekt durchgeführt werden ist Voraussetzung, dass sowohl für die Transformation der Zeitreihen das gleiche Frequenzspektrum wie für die komplexen Zahlen verwendet wird.

Im Folder complex_folder ist daher eine Variable frequenzen (und omega) definiert, die die einzelnen Frequenzen des Frequenzspektrums am Stack übergibt. Die Frequenzen werden dynamisch aufgrund der mit dem Wort set_config eingestellten (in der Variablen config gespeicherten) Grundeinstellungen berechnet.

MAL-Homepage Inhaltsverzeichnis


4.2. Die Klasse complex_class

Die Konstruktoren >complex der Klasse
complex_class erwarten alle zwei Parameter, nämlich den Realteil und den Imaginärteil am Stack. Nachdem es möglich ist für beide Parameter sowohl einzelne Realzahlen als auch Realverbunde anzugeben, existieren vier gleichlautende Konstruktoren für alle möglichen Kombinationen.

Die Funktionen time>complex und complex>time dienen zur Konverierung von Zeitreihen in komplexe Zahlen und umgekehrt. Nachdem für die Konverierung eine Fast-Fourier-Transformation verwendet wird (siehe Wort fft), ist Voraussetzung, dass die Sampleanzahl der Zeitreihe eine ganzzahlige Zweierpotenz ist (2, 4, 8, 16 .. 512, 1024 ...). Man beachte die mit set_config gemachten Voreinstellungen bezüglich der Grundfrequenz und er Anzahl der Oberwellen. Die Anzahl der Oberwellen ist die halbe Sampleanzahl der Zeitreihe, die Grundfrequenz die Frequenz, mit der die Zeitreihe sich wiederholt.

Nebst den Standardoperatoren (+, -, *, /) ist noch der Operator || erwähnenswert, der die Parallelschaltung zweier komplexer Widerstände berechnet. Die Funktionen betrag und phase sprechen für sich. Die Funktion frequenzgang erzeugt eine Graphik mit dem Frequenzgang der komplexen Zahl.

Beispiel:

Zeitverhalten eines RC-Hochpassfilters mit 100 Ohm und 1 uFarad bei Ansteuerung mit einem 1kHz Rechtecksignal.

private \ complex >voc
interface_of complex_class >voc


512 ramp 1 + 1000 * >> frequenzen
256 ramp 0 * dup 1 + & time>complex >> rechteck


100 Ohm >> R
1.0e-6 Farad >> C
R R C + / >> hochpass


rechteck hochpass * complex>time draw screen

MAL-Homepage Inhaltsverzeichnis


5. STATISTIK

Eine Auflistung aller statistischen Funktionen kann unter
statistics gefunden werden.

MAL-Homepage Inhaltsverzeichnis


5.1. Grundfunktionen

Die Worte
min, max, mean, variance und median bedürfen vermutlich keiner weiteren Erklärung. Wichtig ist, dass die Worte min, max, mean und variance auch für Zeitreihen und Bilder, min und max auch für EMED-Datensätze verwendet werden können.

Ein Wort für die Berechnung der Standardabweichung kann einfach mit

: standard_deviation variance sqrt ;

definiert werden.

Ein Student T-Test kann mit dem Wort ttest durchgeführt werden. Es erwartet zwei Stichproben und legt als Ergebnis den Signifikanzwert am Stack. Will man zum Beispiel auf 95% Signifikanz prüfen, so genügt es, zu überprüfen, ob das Ergebnis von ´ttest´ größer 0.95 ist.

Zum Sortieren von Verbunden beliebiger Art nach beliebigen Sortierkriterien existiert das Wort sort. Es arbeitet mit einem binären Sortierbaum und ist daher am schnellsten, wenn die Eingangsdaten gut gemischt sind. Das Sortierkriterium kann bei Bedarf in Form eines Codestrings definiert werden.

MAL-Homepage Inhaltsverzeichnis


5.2. Histogramme

Das Wort
ahisto berechnet aus einer Stichprobe direkt eine Graphik mit einem Histogramm. Die Bestimmung der erforderlichen Klassenanzahl, wird dabei mit einem nach DIN genormten Algorithmus durchgeführt. Dieser ist leider nicht in allen Fällen ideal.

Im Bedarfsfall kann man sich auf der Basis des Codes von ahisto (zu finden im Public-Folder, ´startup_folder´) ein entsprechendes Wort mit frei wählbaren Klassengrenzen definieren. Für die automatische Klasseneinteilung bei ahisto wird das Wort aclass verwendet. Das Wort classification hingengen ermöglicht eine parameterisierbare Klasseneinteilung.

Beispiel:

1000 random 0.5 - 1000 random 0.5 - *
ahisto screen

MAL-Homepage Inhaltsverzeichnis


5.3. Regressionen

Mit den Worten
regress und polynom kann eine Regressionsrechnung basierend auf einem Polynommodell mit beliebig wählbarem Grad (Grad 1 = lineare Regression) durchgeführt werden.

regress berechnet aus den Daten der unabhängigen und der abhängigen Stichprobe, sowie der Angabe des Grades, die Parameter des Polynoms. Mit polynom können die Funktionswerte des Polynoms berechnet werden.

Das Wort regress_plot erzeugt aus den gleichen Eingangsdaten wie regress eine Graphik.

Beispiel:

10 ramp dup 10 nrandom + 1 regress_plot screen

MAL-Homepage Inhaltsverzeichnis


5.4. Zweidimensionale Regressionen

Für die Entzerrung zweidimensionaler Funktionen (z.B. Korrektur von nichtlinearen Linsenfehlern oder Korrektur von Linearitätsfehlern bei der Schwerpunktberechnung bei Kraftmeßplatten) existieren die Worte
regress_2d und polynom_2d. Das Verfahren ist ähnlich der Regressionsrechnung mit Polynommodellen in der Statistik: Es wird eine Polynomfunktion (im zweidimensionalen Fall zwei Funktionen) nach der Kleinstquadratmethode bestmöglich an gegebene Stützpunkte angepaßt.

Die verwendeten Polynomfunktionen haben folgende Form:

fx(x,y) = a00 + a01x + a02x2 + a03x3 ....
          a10y + a11xy + a12x2y + a13x3y ....
          a20y2 + a21xy2 + a22x2y2 + a23x3y2 ....
          .
          .
fy(x,y) = b00 + b01x + b02x2 + b03x3 ....
          b10y + b11xy + b12x2y + b13x3y ....
          b20y2 + b21xy2 + b22x2y2 + b23x3y2 ....
          .
          .
Die Berechnung der Parameter aij und bij erfolgt mit dem Wort regress_2d. Mit dem Wort polynom_2d kann aus einem (verzerrten) Koordinatenpaar x,y eine korrigierte Koordinate fx oder fy berechnet werden, je nachdem, ob es mit den Parametern aij oder bij versorgt wird.

MAL-Homepage Inhaltsverzeichnis