Inverse Probleme affiner Transformationen oder etwa eine schöne Formel

In diesem Artikel werde ich über eine ungewöhnliche Formel sprechen, die es Ihnen ermöglicht, einen neuen Blickwinkel auf affine Transformationen zu betrachten, insbesondere auf die inversen Probleme, die im Zusammenhang mit diesen Transformationen auftreten. Ich werde inverse Probleme nennen, die die Berechnung der inversen Matrix erfordern: Finden der Transformation durch Punkte, Lösen eines linearen Gleichungssystems, Transformieren von Koordinaten beim Ändern der Basis usw. Ich werde sofort reservieren, dass der Artikel weder grundlegende Entdeckungen noch eine Verringerung der algorithmischen Komplexität enthält. Ich werde lediglich eine symmetrische und leicht zu merkende Formel zeigen, mit der Sie unerwartet viele laufende Probleme lösen können. Für Liebhaber mathematischer Strenge gibt es hier eine formalere Darstellung [1] (orientiert an Studenten) und hier ein kleines Problembuch [2] .

Die affine Transformation wird üblicherweise durch die Matrix definiert A und Übersetzungsvektor und wirkt auf das Vektorargument durch die Formel

 mathcalA( vecx)= hatA vecx+ vect.


Sie können jedoch darauf verzichten  vect Wenn Sie die erweiterte Matrix und einheitliche Koordinaten für das Argument verwenden (wie es OpenGL-Benutzern bekannt ist). Es stellt sich jedoch heraus, dass Sie neben diesen Schreibformen auch die Determinante einer speziellen Matrix verwenden können, die sowohl die Koordinaten des Arguments als auch die Parameter enthält, die die Transformation bestimmen. Tatsache ist, dass die Determinante die Linearitätseigenschaft über die Elemente einer Zeile oder Spalte hat und dies ermöglicht, affine Transformationen darzustellen. Hier in der Tat, wie man die Wirkung der affinen Transformation auf einen beliebigen Vektor ausdrückt  vecx ::


Beeilen Sie sich nicht, entsetzt davonzulaufen - erstens wird hier eine Transformation geschrieben, die auf Räume beliebiger Dimension einwirkt (von hier aus gibt es so viele Dinge), und zweitens wird die Formel, obwohl sie umständlich aussieht, einfach in Erinnerung behalten und verwendet. Zu Beginn werde ich die logisch verwandten Elemente mit Rahmen und Farbe hervorheben


Wir sehen also, dass die Wirkung jeder affinen Transformation  mathcalA pro Vektor kann als Verhältnis zweier Determinanten dargestellt werden, wobei das Vektorargument nur oben eingibt und unten nur eine Konstante ist, die nur von den Parametern abhängt.

Blau hervorgehobener Vektor  vecx Ist ein Argument, der Vektor, auf den die affine Transformation wirkt  mathcalA . Nachfolgend bezeichnen Indizes die Komponente des Vektors. In der oberen Matrix der Komponenten  vecx belegen fast die gesamte erste Spalte, außer in dieser Spalte nur null (oben) und eins (unten). Alle anderen Elemente in der Matrix sind Parametervektoren (sie sind hochgestellt nummeriert und in Klammern angegeben, um nicht mit dem Grad zu verwechseln) und Einheiten in der letzten Zeile. Unter allen affinen Transformationen unterscheiden die Parameter, was wir brauchen. Die Bequemlichkeit und Schönheit der Formel besteht darin, dass die Bedeutung dieser Parameter sehr einfach ist: Sie definieren eine affine Transformation, die Vektoren übersetzt  vecx(i) in  vecX(i) . Daher Vektoren  vecx(1), dots, vecx(n+1) werden wir "Eingabe" nennen (sie sind in der Matrix von Rechtecken umgeben) - jeder von ihnen ist komponentenweise in eine eigene Spalte geschrieben, eine Einheit wird unten angehängt. Die Ausgabeparameter werden von oben geschrieben (rot hervorgehoben).  vecX(1), dots, vecX(n+1) , aber jetzt nicht komponentenweise, sondern als Ganzes.

Wenn jemand von einer solchen Aufzeichnung überrascht ist, erinnern Sie sich an das Vektorprodukt

$$ display $$ [\ vec {a} \ times \ vec {b}] = \ det \ begin {pmatrix} \ vec {e} _1 & \ vec {e} _2 & \ vec {e} _3 \\ a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ \ end {pmatrix}, $$ display $$

wo es eine sehr ähnliche Struktur gab und die erste Zeile auf die gleiche Weise von Vektoren besetzt war. Darüber hinaus ist es nicht erforderlich, dass die Dimensionen der Vektoren  vecX(i) und  vecx(i) fiel zusammen. Alle Determinanten werden als üblich betrachtet und erlauben die üblichen "Tricks". Sie können beispielsweise jeder Spalte eine weitere Spalte hinzufügen.

Mit der unteren Matrix ist alles sehr einfach - sie wird von oben durch Löschen der ersten Zeile und der ersten Spalte erhalten. Der Nachteil von (1) ist, dass Sie die Determinanten übernehmen müssen. Wenn Sie diese Routineaufgabe jedoch auf einen Computer übertragen, stellt sich heraus, dass die Person nur die Matrizen korrekt mit Zahlen aus ihrer Aufgabe füllen muss. Gleichzeitig können Sie mit einer Formel einige gängige Übungsprobleme lösen:



Affine Dreipunkttransformation auf einer Ebene


Unter dem Einfluss einer unbekannten affinen Transformation gingen drei Punkte auf der Ebene zu den anderen drei Punkten über. Finden Sie diese affine Transformation.
Lassen Sie für die Bestimmtheit unsere Einstiegspunkte


und das Ergebnis der Transformation

Finde die affine Transformation  mathcalA .

Tatsächlich kann dieses Problem auf verschiedene Arten gelöst werden: unter Verwendung eines Systems linearer Gleichungen, baryzentrischer Koordinaten ... aber wir werden unseren eigenen Weg gehen. Ich denke, dass Sie anhand der verwendeten Notation erraten können, worauf ich hinaus will: Wir nehmen Gleichung (1) für die Dimension n=2 und ersetzen  vecx(i) als Eingabeparameter und  vecX(i) - als Wochenende


und dann bleibt nur noch die Determinanten zu berechnen


Ein geschultes Auge erkennt leicht ein Einschalten 30 circ und weiter senden ((3+ sqrt3)/2,2) mathsfT .

Wann ist die Formel anwendbar?

Eingabe- und Ausgabevektoren können unterschiedliche Dimensionen haben - die Formel gilt für affine Transformationen, die auf Räume beliebiger Dimension wirken. Es sollten jedoch genügend Eingabepunkte vorhanden sein und sie sollten nicht „zusammenhalten“: wenn die affine Transformation von wirkt n -dimensionaler Raum - Punkte müssen einen nicht entarteten Simplex bilden n+1 Punkte. Wenn diese Bedingung nicht erfüllt ist, ist es unmöglich, die Transformation eindeutig wiederherzustellen (mit jeder Methode, nicht nur mit dieser) - die Formel warnt im Nenner vor Null.

Warum eine affine Transformation für einen Programmierer wiederherstellen?

Oft müssen Sie eine Transformation zwischen zwei Bildern finden (zum Beispiel zur Berechnung der Position der Kamera). Wenn diese Bilder einige zuverlässige Besonderheiten (Merkmale) enthalten oder Sie nicht sofort mit Ranzaks beginnen und mit Überzahlern kämpfen möchten, kann diese Formel verwendet werden.

Ein weiteres Beispiel ist die Texturierung . Das Ausschneiden eines Dreiecks aus einer Textur und das Ziehen auf ein Dreieck irgendwo in einer Ebene oder im Raum ist eine typische Aufgabe, um die affine Transformation auf Punkte aus einem Texturraum anzuwenden und sie in den Raum zu übersetzen, in dem die Modelle leben. Und oft fällt es uns leicht, anzugeben, welche Punkte auf der Textur den Eckpunkten des Modelldreiecks entsprechen, aber um festzustellen, wohin die Nicht-Eckpunkte gehen, sind möglicherweise einige Überlegungen erforderlich. Mit der gleichen Formel reicht es aus, die Zahlen einfach in die richtigen Zellen einzufügen, und es wird eine solche Schönheit geben.

Nach dem, was ich persönlich zu Gesicht bekommen musste: Das neuronale Netzwerk gibt die Koordinaten der Markerecken an und wir möchten die Realität durch ein virtuelles Objekt auf dem Marker ergänzen.
Offensichtlich muss das Objekt beim Bewegen des Markers alle seine Bewegungen wiederholen. Und hier ist die Formel (1) sehr nützlich - sie hilft uns, das Objekt nach dem Marker zu bewegen.

Oder ein anderes Beispiel: Sie müssen die Drehung verschiedener Objekte auf der Bühne mit dem Gizmo-Werkzeug programmieren. Dazu müssen wir das ausgewählte Modell um drei Achsen drehen können, die parallel zu den Koordinatenachsen verlaufen und durch die Mitte des Objekts verlaufen. Das Bild zeigt den Fall der Drehung des Modells um eine Achse parallel zu Oz .

Letztendlich kommt es auf das zweidimensionale Problem der Rotation um einen beliebigen Punkt an. Lassen Sie es uns sogar für einen einfachen Fall lösen, zum Beispiel beim Einschalten 90 circ gegen den Uhrzeigersinn herum (a;b) (Der allgemeine Fall wird auf die gleiche Weise gelöst. Ich möchte die Berechnungen nur nicht mit Sinus und Cosinus überladen.) Natürlich können Sie den Weg des Samurai gehen und drei Matrizen multiplizieren (Verschiebung des Rotationspunkts auf Null, tatsächlich Rotation und Translation zurück), oder Sie können die Koordinaten von drei beliebigen Punkten vor und nach der Rotation finden und die Formel verwenden. Der erste Punkt ist einfach - das wissen wir bereits (a;b) geht in sich hinein. Schauen wir uns den Punkt rechts an, denn es ist wahr (a+1;b) mapsto(a;b+1) . Nun, und noch eine unten, es ist offensichtlich, dass (a;b1) mapsto(a+1;b) . Dann ist alles einfach




Schwerpunktkoordinaten


Wir zerlegen die obere Determinante (1) entlang der ersten Zeile gemäß der Laplace-Regel. Es ist klar, dass wir als Ergebnis eine gewichtete Summe von Vektoren erhalten  vecX(i) . Es stellt sich heraus, dass die Koeffizienten in dieser Summe die Schwerpunktkoordinaten des Arguments sind  vecx in Bezug auf den gegebenen Simplex  vecx(i) (Beweise siehe [1] ). Wenn wir nur an den Schwerpunktkoordinaten des Punktes interessiert sind, können wir die erste Zeile betrügen und mit Einheitsarten füllen - nach Berechnung der Determinanten erhalten wir einen Vektor, dessen Komponenten mit den Schwerpunktkoordinaten übereinstimmen  vecx . Grafisch ist eine solche Konvertierung  mathcalB Das Verschieben eines Punktes in den Raum seiner Schwerpunktkoordinaten sieht wie folgt aus


Versuchen wir dieses "Rezept" in der Praxis. Aufgabe: Finden Sie die Schwerpunktkoordinaten eines Punktes in Bezug auf ein bestimmtes Dreieck. Lassen Sie es einen Punkt für die Bestimmtheit sein (2,2) mathsfT und nimm die Eckpunkte eines Dreiecks


Der Punkt ist klein - nimm (1) für n=2 Platzieren Sie die Aufgabendaten korrekt dort und berechnen Sie die Determinanten


Hier ist die Lösung: Schwerpunktkoordinaten (2,2) mathsfT in Bezug auf ein gegebenes Dreieck gibt es 0,6 , 0,3 und 0.1 . Bei der Programmierung erfolgt die Berechnung von Schwerpunktkoordinaten häufig im Zusammenhang mit der Überprüfung, ob sich ein Punkt innerhalb eines Simplex befindet (dann sind alle Schwerpunktkoordinaten größer als Null und kleiner als Eins), sowie für verschiedene Interpolationen, die wir jetzt diskutieren werden.

Beachten Sie, dass Formel (1) eine angenehme Dualität aufweist: Wenn wir die Determinante in der ersten Spalte erweitern, erhalten wir die Standardnotation für die affine Funktion, und wenn wir in der ersten Zeile die affine Kombination von Ausgabevektoren erhalten.


Multilineare Interpolation


Wir fanden also heraus, dass die affine Transformation die Ausgabevektoren mit Koeffizienten gewichtet, die den Schwerpunktkoordinaten des Arguments entsprechen. Es ist natürlich, diese Eigenschaft für die multilineare Interpolation zu verwenden.

Farbinterpolation

Berechnen wir zum Beispiel den Standard-GL - die „Hallo Welt“ - ein farbiges Dreieck. Natürlich weiß OpenGL perfekt, wie man Farben interpoliert, und dies auch mit Schwerpunktkoordinaten , aber heute werden wir es selbst tun.

Aufgabe: An den Eckpunkten des Dreiecks werden die Farben festgelegt, um die Farben innerhalb des Dreiecks zu interpolieren. Lassen Sie für die Bestimmtheit die Eckpunkte unseres Dreiecks Koordinaten haben


Wir weisen ihnen Farben zu: Gelb, Cyan und Magenta


Zahlentripel sind die RGB-Komponenten einer Farbe. Nehmen Sie (1) und ordnen Sie die Eingabedaten korrekt an


Hier sind die Komponenten  mathcalC(x;y) Geben Sie an, wie ein Punkt gemalt werden soll (x,y) in Bezug auf RGB. Mal sehen, was passiert ist.

Wir können sagen, dass wir gerade eine affine Transformation des zweidimensionalen Raums eines Bildes in einen dreidimensionalen Farbraum (RGB) durchgeführt haben.

Normale Interpolation (Phong-Schattierung)

Wir können den von uns interpolierten Vektoren eine Vielzahl von Bedeutungen zuweisen, einschließlich solcher, die normale Vektoren sein können. Darüber hinaus ist dies genau das, was die Phong-Schattierung tut. Erst nach der Interpolation müssen die Vektoren normalisiert werden. Warum diese Interpolation benötigt wird, zeigt das folgende Bild (entnommen aus Wikipedia commons.wikimedia.org/w/index.php?curid=1556366 ).

Ich denke nicht, dass es sich mehr lohnt, Berechnungen anzustellen - alle Details werden in [2] besprochen, aber ich werde ein Bild mit dem Ergebnis zeigen.

Die Vektoren darauf sind nicht einzeln, und für die Verwendung in der Phong-Schattierung müssen sie zuerst normalisiert werden. Aus Gründen der Klarheit sind sie in sehr unterschiedliche Richtungen gerichtet, was in der Praxis selten der Fall ist.

Flugzeug finden z=z(x,y) an drei Punkten


Betrachten Sie ein weiteres ungewöhnliches Beispiel für die Anwendung der affinen Transformation.
Es werden drei Punkte vergeben

Wir finden die Gleichung der Ebene, die durch sie verläuft, in der Form z=z(x,y) . Und wir werden dies mit Hilfe affiner Transformationen tun: Schließlich ist bekannt, dass sie Ebenen in Ebenen übersetzen. Zu Beginn entwerfen wir alle Punkte in der Ebene Xy das ist einfach Und jetzt werden wir eine affine Transformation etablieren, die die Projektionen von Punkten in die ursprünglichen dreidimensionalen Punkte übersetzt


und die zusammen mit den Punkten und der gesamten Ebene "aufnimmt" Xy so sehr, dass es nach der Transformation die für uns interessanten Punkte durchläuft.

Wie üblich müssen wir nur die Zahlen auf die Elemente der Matrizen verteilen


Schreiben Sie den letzten Ausdruck in der üblichen Form um


und zeichnen, was passiert ist.



Lineare Transformationen


Trotz der praktischen Bedeutung affiner Transformationen muss man sich häufig mit linearen Transformationen befassen. Natürlich sind lineare Transformationen ein Sonderfall affiner Transformationen, bei denen ein Punkt an Ort und Stelle bleibt  vec0 . Dies ermöglicht es uns, die Formel ein wenig zu vereinfachen (schließlich besteht eine der Spalten fast nur aus Nullen und Sie können die Determinante dadurch erweitern)


Wie Sie sehen können, fehlt die letzte Zeile mit Einheiten und einer Spalte in der Formel. Dieses Ergebnis stimmt völlig mit unseren Vorstellungen überein, dass es zur Angabe einer linearen Transformation ausreicht, um deren Auswirkung auf anzuzeigen n linear unabhängige Elemente.

Dreipunkt-Lineartransformation

Lassen Sie uns das Problem lösen, um zu sehen, wie alles funktioniert. Problem: Es ist bekannt, dass unter der Wirkung einer linearen Transformation


Wir finden diese lineare Transformation.

Wir nehmen eine vereinfachte Formel und setzen die richtigen Zahlen an die richtigen Stellen:


Fertig!


Finden der inversen Transformation


Denken Sie daran, dass die lineare Transformationsmatrix


enthält Bilder von Einheitsvektoren in seinen Spalten:


Als Matrix für die Einheitsvektoren erhalten wir also ihre Spalten. Und was ist mit der inversen Transformation (sagen wir, sie existiert)? Es macht alles "umgekehrt":


Warten Sie eine Minute, denn wir haben gerade die Bilder von drei Punkten unter dem Einfluss einer linearen Transformation gefunden - genug, um die Transformation selbst wiederherzustellen!


wo  vece1=(1;0;0) mathsfT ,  vece2=(0;1;0) mathsfT und  vece3=(0;0;1) mathsfT .

Wir werden uns nicht auf den dreidimensionalen Raum beschränken und die vorherige Formel in einer allgemeineren Form umschreiben

Wie Sie sehen können, müssen wir der Matrix links eine Spalte mit den Komponenten des Vektorarguments oben zuweisen - eine Linie mit Koordinatenvektoren, und dann ist es nur die Fähigkeit, Determinanten zu nehmen.

Inverses Transformationsproblem

Versuchen wir die angegebene Methode in der Praxis. Aufgabe: Invertieren Sie die Matrix


Wir verwenden (2) für n=3


Es ist sofort klar, dass



Cramer-Regel in einer Formel


Seit der Schule sind wir mit Gleichungen der Form konfrontiert


Wenn die Matrix  hatA nicht entartet, dann kann die Lösung geschrieben werden als


Hmm ... habe ich nicht im vorherigen Abschnitt den gleichen Ausdruck gesehen, sondern stattdessen b war ein anderer Brief? Wir werden es benutzen.

Dies ist keine andere als Cramers Regel . Dies kann leicht überprüft werden, indem die Determinante in der ersten Zeile erweitert wird: Berechnung xi geht nur davon aus, dass wir die Spalte mit streichen  vecei und damit i Matrixspalte  hatA . Nun, wenn Sie die Spalte neu anordnen b Anstelle der entfernten erhalten wir nur die Regel "Spalte einfügen" b an Ort und Stelle i Die Spalte und finde die Determinante. " Und ja, mit den Zeichen ist alles in Ordnung: allein  pm Wir erzeugen beim Erweitern entlang der Linie, während andere beim Neuanordnen - infolgedessen heben sie sich gegenseitig auf.

Wenn Sie sich die resultierende Gleichung ansehen, können Sie ihre Ähnlichkeit mit der Gleichung zum Ermitteln von Schwerpunktkoordinaten feststellen: Die Lösung eines linearen Gleichungssystems besteht darin, die Schwerpunktkoordinaten eines Punkts zu ermitteln  vecb in Bezug auf einen Simplex, von dem einer der Eckpunkte ist  vec0 und der Rest werden durch die Spalten der Matrix definiert  hatA .

Lösung eines linearen Gleichungssystems

Wir lösen das System der linearen Gleichungen


In Matrixform sieht es so aus


Wir verwenden die resultierende Formel


Woher kommt die Antwort? x=1/25 , y=14/25 und z=2/5 .


Transformation von Vektorkoordinaten beim Ändern der Basis


Angenommen, wir haben eine neue Basis gewählt (wir haben auf ein anderes Koordinatensystem umgestellt). Es ist bekannt, dass die neuen Koordinaten der Vektoren durch die alten linear ausgedrückt werden. Daher ist es nicht verwunderlich, dass wir unsere Tools verwenden können, um die Basis zu ändern. Wie das geht, zeige ich anhand eines Beispiels.

Gehen wir also von der Standardbasis weg \ {\ vec {e} _x, \ vec {e} _y \} auf eine Basis bestehend aus Vektoren


In der alten Basis wird ein Vektor angegeben  vecx=(3,4) mathsfT . Finden Sie die Koordinaten dieses Vektors auf einer neuen Basis. Im neuen Koordinatensystem werden die Vektoren der neuen Basis zu Sortierungen und haben Koordinaten


Im Folgenden bedeuten die Striche in der Nähe der Spalten, dass sich die Koordinaten in ihnen auf eine neue Basis beziehen. Es ist leicht zu erraten, dass eine lineare Transformation übersetzt wird


konvertiert auch die Koordinaten unseres Vektors nach Bedarf. Es bleibt nur die Formel anzuwenden


Die Lösung des Problems auf übliche Weise erfordert eine Matrixinversion (die jedoch auch hauptsächlich aus der Berechnung von Determinanten besteht) und eine Multiplikation


Wir haben diese Schritte nur in eine Formel gepackt.

Warum funktioniert die Formel für inverse Probleme?


Die Wirksamkeit der Formel bei der Lösung inverser Probleme wird durch die folgende Gleichheit erklärt (der Beweis ist in [1] ).


Somit verbirgt die Formel in sich die inverse Matrix und die Multiplikation mit einer anderen Matrix zusätzlich. Dieser Ausdruck ist die Standardlösung für das Problem, eine lineare Transformation durch Punkte zu finden. Beachten Sie, dass wir durch Erstellen der zweiten Matrix in der Produktidentität nur die inverse Matrix erhalten. Mit seiner Hilfe werden ein lineares Gleichungssystem und die Probleme, die darauf reduziert werden können, gelöst: Finden von Schwerpunktkoordinaten, Interpolation durch Lagrange-Polynome usw. Die Darstellung in Form eines Produkts aus zwei Matrizen erlaubt es uns jedoch nicht, genau die „zwei Blicke“ zu erhalten, die mit der Erweiterung in der ersten Zeile und in der ersten Spalte verbunden sind.


Lagrange-Interpolation und ihre Eigenschaften


Ich möchte Sie daran erinnern, dass die Lagrange-Interpolation das kleinste Polynom findet, das durch Punkte verläuft (a0;b0) , (a1;b1) ,  dots , (an;bn) . Nicht, dass es eine übliche Aufgabe in der Programmiererpraxis gewesen wäre, aber schauen wir es uns trotzdem an.

Wie hängen Polynome und lineare Transformationen zusammen?

Tatsache ist, dass das Polynom


kann als lineare Transformation betrachtet werden, die den Vektor anzeigt (xn;xn1; dots;1)T in  mathbbR . Also das Punktinterpolationsproblem (a0;b0) , (a1;b1) ,  dots , (an;bn) reduziert sich darauf, eine solche lineare Transformation zu finden, dass


und das können wir. Ersetzen Sie die richtigen Buchstaben in den richtigen Zellen und erhalten Sie die Formel


Der Beweis, dass dies das Lagrange-Polynom ist (und nicht jemand anderes), findet sich in [1] . Der Ausdruck im Nenner ist übrigens die Kennung von Vandermonde. Wenn wir dies wissen und die Determinante im Zähler entlang der ersten Zeile erweitern, gelangen wir zu einer bekannteren Formel für das Lagrange-Polynom.

Problem am Lagrange-Polynom

Ist es schwer zu bedienen? Versuchen wir die Kräfte auf das Problem: Finden Sie das Lagrange-Polynom, das durch die Punkte verläuft (1;2) , (3;4) und (2;7) .

Ersetzen Sie diese Punkte in der Formel


Auf dem Diagramm sieht alles so aus.


Eigenschaften des Lagrange-Polynoms

Nachdem wir die obere Determinante in der ersten Zeile und ersten Spalte angeordnet haben, betrachten wir das Lagrange-Polynom von zwei verschiedenen Seiten. Im ersten Fall erhalten wir die klassische Formel von Wikipedia und im zweiten schreiben wir das Polynom in Form der Summe der Monome  alphaixi wo


Und jetzt können wir relativ leicht ziemlich komplizierte Aussagen beweisen. Zum Beispiel wurde in [2] in einer Zeile bewiesen, dass die Summe der grundlegenden Lagrange-Polynome gleich eins ist und dass das Lagrange-Polynom interpoliert (a0;an+10) ,  dots , (an;an+1n) hat den Wert Null (1)na0 cdot cdots cdotan . Nun, kein einziger Lagrange - ein ähnlicher Ansatz kann auf die Interpolation durch Sinus-Cosinus oder einige andere Funktionen angewendet werden.

Fazit


Vielen Dank an alle, die bis zum Ende gelesen haben. In diesem Artikel haben wir Standardprobleme mit einer nicht standardmäßigen Formel gelöst. Mir hat es gefallen, weil es erstens zeigt, dass affine (lineare) Transformationen, baryzentrische Koordinaten, Interpolation und sogar Lagrange-Polynome eng miteinander verbunden sind. Denn wenn Lösungen für Probleme auf die gleiche Weise geschrieben werden, entsteht der Gedanke an ihre Affinität von selbst. Zweitens haben wir die Eingabedaten die meiste Zeit einfach ohne zusätzliche Transformationen in den richtigen Zellen angeordnet.

Die Aufgaben, die wir in Betracht gezogen haben, können auch mit bekannten Methoden gelöst werden. Bei Problemen mit kleinen Dimensionen oder Bildungsaufgaben kann die Formel jedoch nützlich sein. Außerdem scheint sie mir schön zu sein.

Referenzliste



[ 1] Leitfaden für Anfänger zur affinen Abbildung von Simplexen

[ 2] Arbeitsmappe zur affinen Abbildung von Simplexen

Source: https://habr.com/ru/post/de463349/


All Articles