www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Integrationstheorie" - Diskretes Linienintegral
Diskretes Linienintegral < Integrationstheorie < Maß/Integrat-Theorie < Analysis < Hochschule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Integrationstheorie"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Diskretes Linienintegral: Frage (reagiert)
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 04:14 Fr 20.11.2009
Autor: cosPhi

Hallo,

Ich habe gerade ein Verstaendnisproblem. Ich verstehe Linienintegrale im Kontinuierlichen: Ich kann die Laenge einer Kurve mit

$ l = [mm] \sum_{i=0}^N \sqrt{ (\Delta x_i)^2 + (\Delta y_i)^2 } [/mm] $

approximieren. Lasse ich nun N [mm] \rightarrow \infty, [/mm] so wird aus der Summe ein Integral und aus den Differenzen ein Differential und ich kann die tatsaechliche Laenge bestimmen:

$ l = [mm] \int \sqrt{\left( \frac{dx}{dt}\right)^2 + \left( \frac{dy}{dt}\right)^2 } [/mm] d t = [mm] \int_C [/mm] d l $

Das ist allerdings die Parameterdarstellung. Wie auch immer, das Integral entlang einer Kurve C in einer Funktion f(x,y) entspricht der Belegung dieser Kurve mit den Funktionswerten f(x,y). Herleiten laesst sich dies analog durch Approxmiation und man kommt auf

$ L = [mm] \int_C [/mm] f(x,y) d l = [mm] \int_a^b [/mm] f(x(t), y(t)) [mm] \cdot \sqrt{\left( \frac{dx}{dt}\right)^2 + \left( \frac{dy}{dt}\right)^2 } [/mm] d t $

Hier muss die Funktion wiederum in Parameterdarstellung gegeben sein.

Nun zu meinem eigentlichen Problem: Ich moechte diskret numerisch in MATLAB so ein Integral ausfuehren. Selbstverstaendlich ist f nicht analytisch gegeben sondern in Form einer Matrix NxM. Erschwerend kommt dazu dass C ebenfalls nicht anayltisch beschreibbar ist und auch nicht aus einer Menge aus zusammengesetzten Kurven besteht sondern wirklich beliebig ist! Die Kontur erstelle ich so dass ich eine Maske in MATLAB habe (ebenfalls mit der Groesse NxM) die 1 in einer Region R ist und 0 sonst.

Die Region R beschreibt nun eine Region die ich aus f herausschneiden kann. Und genau der Rand dieser (beliebigen) Region R soll die Kontur C fuer das Linienintegral ergeben.

Irgendwie hab ich aber gerade ein Brett vorm Kopf und weiss nicht wie ich das angehn soll. Hat jemand einen Tipp fuer mich!

Herzlichen Dank!!




        
Bezug
Diskretes Linienintegral: Antwort
Status: (Antwort) fertig Status 
Datum: 04:43 Fr 20.11.2009
Autor: Al-Chwarizmi

Hallo  [mm] Re(e^{i\,\Phi}) [/mm] ,

wie muss ich mir das vorstellen ?

Du hast eine (ziemlich große) Matrix, in welcher die
Funktionswerte [mm] f(x_i,y_k) [/mm] einer Funktion f quasi pixelweise
in einem rechteckigen Bereich der x-y-Ebene festgelegt sind.
Nun zeichnest du da hinein von Hand eine geschlossene
Kurve C, welche ein äußeres Gebiet vom inneren trennt.
Und nun möchtest du aufgrund der Daten, die damit
im Computer sind (Matrix von f und eine weitere Matrix,
welche im Inneren von C Einsen und aussenrum Nullen hat),
einen Näherungswert für das Integral

      [mm] \underset{C}{\int} f(x,y)\,dl [/mm]

berechnen ?
Das kann etwas schwierig werden. Ich zweifle sehr, ob
es dafür z.B. in MatLab eine pfannenfertige Lösung gibt.
Eine wichtige Frage könnte dabei noch sein, in welcher
Weise eine allenfalls etwas zittrige Kurve für die Berech-
nung "geglättet" werden soll. Auf dem "Pixelschachbrett"
betrachtet ist ja C zunächst ohnehin als eine Zickzacklinie
aus waagrechten und senkrechten Strecken zusammen-
gestückelt.

LG    Al-Chw.

Bezug
                
Bezug
Diskretes Linienintegral: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 05:08 Fr 20.11.2009
Autor: cosPhi

Hallo ins naechtliche Europa! :-)

Genau, du hast das richtig verstanden. Es handelt sich dabei um eine "Digitale Hoehenkarte" (DEM). In der Theorie muss das geschlossene Ringintegral ueber eine beliebige Kontur $C$ ja immer 0 sein, sonst wuerde es heissen dass ich wenn ich bei einem Punkt [mm] $P_1$ [/mm] weggehe und wieder zurueckkomme auf einem anderen Hoehenlevel bin ;-)

Um ganz genau zu sein geht es darum dass die Daten "gewrappt" sind, da es Rohdaten von einem Satelliten sind. Das "Unwrapping" kann dann geschehen indem ich einfach den (gewrappten) Gradienten aufintegriere. Das geht aber nur wenn keine sogenannten Residuen enthalten sind, also jedes Ringintegral 0 ergibt. Und genau das moechte ich im konkreten Fall pruefen.

Es existiert also eine Matrix DEM der Groesse NxM deren Werte die (gewrappten) Differenzen sind. Ich weiss dass es in dieser Matrix DEM ein Gebiet gibt das durch maskSea beschrieben wird, indem ein See ist und die Daten so stark verrauscht sind dass sie nicht verwendbar sind. Die moechte ich einfach rausschneiden. Nun muss ich aber darauf achten, den Schnitt so zu legen dass das Ringintegral an der Kontur stets 0 ist, was ich eben pruefen moechte. Ist das bisher einmal so ca. verstaendlich? ;-)

Zu deiner zweiten Frage: Ja, auch das hast du richtig verstanden jedoch soll die Loesung kein Naeherungswert fuer das Integral sein, sondern wie oben erlaeutert der diskrete Wert sein (vgl. gradient vs. diff in MATLAB).

Und genau, wie du richtig festgestellt hast ist bis jetzt genau die Kontur mein Problem. Und das Problem ist dass ich die nicht handzeichnen kann weil ich sie vom Computer erstellt wird. Ich hab einfach ein Beispiel fuer so eine Maske mal angehaengt: [a]Datei-Anhang

Ich hab mittlerweile glaub auch schon verstanden wie es im Prinzip geht: Ich muss einfach die Differenzen aufsummieren. Zumindest bei 4-Nachbarschaft, denn dann ist der Abstand immer 1. Beispiel folgende 4 Pixel:

$ [mm] \pmat{ 87 & 55 \\ 43 & 76 } [/mm] $

$ L = [mm] \sum_i \Delta [/mm] f [mm] \cdot \underbrace{\Delta x_i^2 + \Delta y_i^2}_1 [/mm] $

$ L = (67 - 43) + (55 - 67) + (87 - 55) + (43 - 87) = 0 $

Passt, das Ringintegral ueber diese 4 Pixel ist 0, wie es sein soll.

Womit ich jetzt noch Probleme habe ich einerseits die 8-Nachbarschaft, d.h. wenn die Pixel in der Kontur nur diagonal verbunden sind und natuerlich eine generische Implementierung. Das duerfte das schwierigste werden :-(

Ich habe mittlerweile auch schon eine andere Idee geboren: Wenn ich die Maske mittels diff() differenziere dann erhalte ich die Kontur in x- und in y- Richtung. Wenn man die 8-Nachbarschaftspixel mal weglaesst und von einer wie du schreibst "geglaetteten" Funktion ausgeht muesste es dann IMHO reichen das Bild zu differenzieren und mit den Differenzen der Maske zu multiplizieren, sodass nur mehr die Differenzen auf der Kontur uebrig bleiben. Das gleiche fuer die y-Richung und alles Aufsummieren.

Vielen Dank jedenfalls fuer deine Antwort und deine Bemuehung!

LG aus Tokyo!

PS: Aus der Beispielsmaske im Anhang kann man natuerlich die "Insel" noch maschinell entfernen sodass immer ein zusammenhaengendes Gebiet entsteht...


Dateianhänge:
Anhang Nr. 1 (Typ: png) [nicht öffentlich]
Bezug
                        
Bezug
Diskretes Linienintegral: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 09:41 Fr 20.11.2009
Autor: Al-Chwarizmi


> Hallo ins naechtliche Europa! :-)

     こんにちは!
  

> Genau, du hast das richtig verstanden. Es handelt sich
> dabei um eine "Digitale Hoehenkarte" (DEM).

Du meinst  デジタル標高地図  , oder ?

> In der Theorie
> muss das geschlossene Ringintegral ueber eine beliebige
> Kontur [mm]C[/mm] ja immer 0 sein, sonst wuerde es heissen dass ich
> wenn ich bei einem Punkt [mm]P_1[/mm] weggehe und wieder
> zurueckkomme auf einem anderen Hoehenlevel bin ;-)
>  
> Um ganz genau zu sein geht es darum dass die Daten
> "gewrappt" sind, da es Rohdaten von einem Satelliten sind.
> Das "Unwrapping" kann dann geschehen indem ich einfach den
> (gewrappten) Gradienten aufintegriere. Das geht aber nur
> wenn keine sogenannten Residuen enthalten sind, also jedes
> Ringintegral 0 ergibt. Und genau das moechte ich im
> konkreten Fall pruefen.
>  
> Es existiert also eine Matrix DEM der Groesse NxM deren
> Werte die (gewrappten) Differenzen sind. Ich weiss dass es
> in dieser Matrix DEM ein Gebiet gibt das durch maskSea
> beschrieben wird, indem ein See ist und die Daten so stark
> verrauscht sind dass sie nicht verwendbar sind. Die moechte
> ich einfach rausschneiden. Nun muss ich aber darauf achten,
> den Schnitt so zu legen dass das Ringintegral an der Kontur
> stets 0 ist, was ich eben pruefen moechte. Ist das bisher
> einmal so ca. verstaendlich? ;-)
>  
> Zu deiner zweiten Frage: Ja, auch das hast du richtig
> verstanden jedoch soll die Loesung kein Naeherungswert fuer
> das Integral sein, sondern wie oben erlaeutert der diskrete
> Wert sein (vgl. gradient vs. diff in MATLAB).
>  
> Und genau, wie du richtig festgestellt hast ist bis jetzt
> genau die Kontur mein Problem. Und das Problem ist dass ich
> die nicht handzeichnen kann weil ich sie vom Computer
> erstellt wird. Ich hab einfach ein Beispiel fuer so eine
> Maske mal angehaengt: [a]Datei-Anhang
>  
> Ich hab mittlerweile glaub auch schon verstanden wie es im
> Prinzip geht: Ich muss einfach die Differenzen
> aufsummieren. Zumindest bei 4-Nachbarschaft, denn dann ist
> der Abstand immer 1. Beispiel folgende 4 Pixel:
>  
> [mm]\pmat{ 87 & 55 \\ 43 & \red{76} }[/mm]
>  
> [mm]\ L = \sum_i \Delta f \cdot \underbrace{\Delta x_i^2 + \Delta y_i^2}_1[/mm]
>  
> $\ L = [mm] (\blue{67} [/mm] - 43) + (55 - [mm] \blue{67}) [/mm] + (87 - 55) + (43 - 87) = 0$

Das sollte überall dieselbe Zahl sein ...
  

> Passt, das Ringintegral ueber diese 4 Pixel ist 0, wie es
> sein soll.

Na, aber dies ist doch in der Matrix [mm] \pmat{a&b\\c&d} [/mm] immer so,
unabhängig von den Zahlenwerten:

     (d-c)+(b-d)+(a-b)+(c-a)=0     !

Da kann gar nichts schiefgehen - auch wenn Felhre vorliegen
sollten ... ;-)


> Womit ich jetzt noch Probleme habe ich einerseits die
> 8-Nachbarschaft, d.h. wenn die Pixel in der Kontur nur
> diagonal verbunden sind und natuerlich eine generische
> Implementierung. Das duerfte das schwierigste werden :-(

was ist eine "generische Implementierung" ?

> Ich habe mittlerweile auch schon eine andere Idee geboren:
> Wenn ich die Maske mittels diff() differenziere dann
> erhalte ich die Kontur in x- und in y- Richtung. Wenn man
> die 8-Nachbarschaftspixel mal weglaesst und von einer wie
> du schreibst "geglaetteten" Funktion ausgeht

ich dachte vor allem an ein Glätten der Kurve, da
die Kurvenlänge auf den Wert eines Linienintegrals

       [mm] $\underset{C}{\int}f(x,y)\,dl$ [/mm]

einen ganz wesentlichen Einfluss hat !


> muesste es
> dann IMHO reichen das Bild zu differenzieren und mit den
> Differenzen der Maske zu multiplizieren, sodass nur mehr
> die Differenzen auf der Kontur uebrig bleiben. Das gleiche
> fuer die y-Richung und alles Aufsummieren.
>  
> Vielen Dank jedenfalls fuer deine Antwort und deine
> Bemuehung!
>  
> LG aus Tokyo!


... und umgekehrt aus der スイス  !

LG   Al-Chw.

Bezug
                                
Bezug
Diskretes Linienintegral: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:41 Fr 20.11.2009
Autor: cosPhi

こんばんは、

Was ist denn das jetzt fuer ein Zufall? ;-) Warst du selbst auch in Japan? Ich hab irgendwann mal gelesen dass zumindest in Deutschland 10000 Leute japanisch sprechen, wenn man die gleiche Verteilung fuer Schweiz/Oesterreich annimmt ist die Wahrscheinlichkeit wirklich nicht so hoch. Bin erstaunt :-)

Abgesehen von dem Tippfehler (sorry!) den du richtig erkannt hast habe ich leider noch einen Gedankenfehler drinnen gehabt: Bei den Daten handelt es sich nicht um "gewoehnliche" Zahlen sondern um gewrappte Phasen im Bereich [mm] $[-\pi,\pi]$. [/mm] Dementsprechend ist klar dass gelten muss:

* $0 = [mm] 2\pi$ [/mm]
* [mm] $-\pi [/mm] = [mm] \pi$ [/mm]

Wenn ich nun mit Werten wie unten arbeite, dann sind dies nur skalierte [mm] $\pi$-Werte [/mm] (in den Bereich -128,128). Aus diesem Grund muss ich 256 addieren oder abziehen wenn ich ueber [mm] \pi [/mm] (bzw. 128) bin.

Also muesste es korrekt heissen:

$ \ L = [mm] \sum_i W\{ \Delta f \} \cdot \underbrace{\Delta x_i^2 + \Delta y_i^2}_1 [/mm] $

An obiger Rechnung aendert sich dadurch zwar nix, aber folgende Matrix hat dann ein sogenanntes Residuum eingebaut (weil das Abtasttheorem nicht mehr erfuellt ist):

$ [mm] \pmat{ 42 & -41 \\ 58 & 109 } [/mm] $

Und hiermit:

$ \ L = (109 - 58) + [mm] \underbrace{(-41 - 109)}_{106} [/mm] + (42 + 41) + (58 - 42) = 256 [mm] \hat= 2\pi \not= [/mm] 0 $

Sorry fuer die Inconvenience!

> was ist eine "generische Implementierung" ?

Damit habe ich gemeint dass ich einen (moeglichst einfachen) Algorithmus finde mit dem ich das Integral ohne manuelles Eingreifen berechnen kann. Mehr dazu siehe gleich.

> da die Kurvenlänge auf den Wert eines Linienintegrals einen ganz wesentlichen Einfluss hat !

Wenn es nur darum geht ist es im Endeffekt egal. Das Integral soll lediglich pruefen ob der Wert 0 ist (d.h. Pruefung auf Wegunabhaengigkeit).

Zuerst mal zu meinen Gedankengaengen: Ich hab mir das etwas durchueberlegt und bin zum Schluss gekommen dass:

* Ich mich zuerst entscheiden muss ob ich eine Linie nur als 4er Nachbarschaft akzeptiere oder auch auch 8er Nachbarschaft
* Ich keinen Weg gefunden habe das Integral "elegant" zu loesen ausser wirklich in einer doppelten Schleife des Weg abzulaufen und die gewrappten Differenzen zu addieren.

Ich habe einige Zeit herumgespielt das DEM abzuleiten und mit dem Integrationsweg elementweise zu multiplizieren und alles zu summieren. Das geht aber insofern nicht, weil ich ja immer in Richtung des Weges gehen muss, d.h. ich muss das Vorzeichen umdrehen und ich weiss ja a priori nicht an welchen Stellen das sein wird.

Und ich befuerchte beim Tippen dieses Artikels ist mir wieder etwas gekommen was meine Frage vermutlich ad-absurdum fuehrt. Sorry, sorry.

Ich versuche es mal zu erklaeren (ich weiss nicht wieviel Ahnung du von Phase Unwrapping hast): Nehmen wir an das Abtasttheorem ist erfuellt und wir haben kein Noise, so sorgt die atan Funktion dafuer dass die ungewrappte Phase einfach nur auf [mm] $[-\pi,\pi]$ [/mm] abgebildet wird. Die ungewrappte bekomme ich einfach wieder indem ich Vielfache von [mm] \pi [/mm] dazu addiere. Ist das Abtasttheorem erfuellt, so gibt es keine Werte die sich mehr als [mm] \pi [/mm] veraendern und das Ergebnis ist die kontinuierliche Funktion.

Ganz allgemein ausgedrueckt muss ich die gewrappten (!) Phasendifferenzen aufintegrieren. Das ist vor allem fuer den 2D Fall wichtig, da der Integrationsweg unabhaengig von der Wahl des Startpunktes das gleiche Ergebnis liefern soll oder anders ausgedrueckt muss dafuer jedes moegliche Ringintegral 0 ergeben (oder die Phase rotationsfrei sein, oder , ...).

Auf alle Faelle ist das Abtasttheorem nicht erfuellt (oder es gibt starkes Noise) dann gibt es Phasendifferenzen > [mm] \pi [/mm] und es ist nicht mehr eindeutig wievielfache von [mm] \pi [/mm] ich addieren muss. Im 2D-Fall erhalte ich dann je nach Wahl des Startpunktes unterschiedliche ergebnisse. Diese Punkte nennt man Residuen.

Nun aber zum eigentlichen Problem: In einer Region R weiss ich dass es aufgrund starkem Noise extrem viele Residuen gibt und das Ergbnis daher ohnehin nicht brauchbar ist. Deswegen moechte ich R einfach ausschneiden und durch etwas ersetzen was keine Residuen erstellt.

Und hier ist mein Gedankenfehler: Ich bin davon ausgegangen dass bereits in diesem Schritt die Summe der Residuen 0 ergeben muss, damit die Kontur C konsistent ist. Aber hat ja eigentlich nur beim Unwrapping eine Relevanz! Wenn ich den Inhalt von R sowieso wegschmeisse dann ist es egal wieviele Residuen in der gewrappten Phase drinnen ist.

Deswegen brauche ich das Linienintegral gar nicht bestimmen und ich habe dich wie es scheint umsonst belaestigt :-( :-(

Im Endeffekt stellt sich dafuer schon wieder die naechste Frage aber ich glaub es ist besser wenn ich die in einem neuen Thema stelle.

So nochmals sorry dass ich deine wertvolle Zeit so beansprucht habe und vielen Dank fuer deinen wertvollen Input ! (der mich erst auf den Gedankenfehler beim Wrapping gebracht hat ;-) )

Dann LG 東京からスイスまで !



Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Integrationstheorie"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]