Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: Mathematik und Physik ::  Kurze Rechenfrage: Nabla-Operator ausrechnen  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
ausrechner
Unregistrierter




Beitrag ausrechner Unregistrierter 10:16:17 08.08.2012   Titel:   Kurze Rechenfrage: Nabla-Operator ausrechnen            Zitieren

Wenn ich folgendes numerisch berechnen muss:

a = nabla * f(r,h)

wobei r und h skalare sind und f() auch einen skalar ausspuckt, wie berechne ich hier dann a?
ausrechner
Unregistrierter




Beitrag ausrechner Unregistrierter 10:17:32 08.08.2012   Titel:              Zitieren

und genauso: was wÜrde rauskommen, wenn man nabla druch nabla^2 ersetzen würde?
SeppJ
Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 17983
Beitrag SeppJ Moderator 11:15:46 08.08.2012   Titel:              Zitieren

So wie jede andere Ableitung auch. :confused: Was ist das Problem?

_________________
Du brauchst Hilfe?, Buchempfehlungen für C++,
Wie man in Fragen den richtigen Code postet,
The Definitive C++ Book Guide and List
ausrechner
Unregistrierter




Beitrag ausrechner Unregistrierter 13:57:17 08.08.2012   Titel:              Zitieren

Entschuldigung, ich hätte noch erwähnen sollen, dass ich mir Gradienten erst vor ein paar Stunden angelesen habe :)

Ich frage mal allgemeiner: Wenn ich eine Gleichung f(x,k) habe, wobei x ein 3d-Vektor und k ein Skalar ist, und non von dieser Funktion den Gradienten ausrechnen soll, wonach leite ich f(x,k) dann ab? 4 mal, jeweils nach x1,x2,x3 und k, oder nur nach x1,x2,x3? Oder vll. etwas anderes?
SeppJ
Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 17983
Beitrag SeppJ Moderator 14:07:16 08.08.2012   Titel:              Zitieren

ausrechner schrieb:
Entschuldigung, ich hätte noch erwähnen sollen, dass ich mir Gradienten erst vor ein paar Stunden angelesen habe :)

Ich frage mal allgemeiner: Wenn ich eine Gleichung f(x,k) habe, wobei x ein 3d-Vektor und k ein Skalar ist, und non von dieser Funktion den Gradienten ausrechnen soll, wonach leite ich f(x,k) dann ab? 4 mal, jeweils nach x1,x2,x3 und k, oder nur nach x1,x2,x3? Oder vll. etwas anderes?
Die erste Komponente des Gradienten ist die Ableitung von f nach der ersten Komponente von x, die zweite Komponente des Gradienten ist die Ableitung von f nach der zweiten Komponente von x, usw.

Darf ich mal anmerken, dass Vektoranalysis nicht unbedingt ein Thema ist, welches man sich auf die Schnelle selber anlesen kann? Die meisten Leute brauchen dafür ein paar Wochen Studium, manche scheitern sogar ganz daran. Du hast doch vor, hier irgendein konkretes Problem zu lösen. Du hast anscheinend einen Lösungsweg gefunden, welcher den dir bisher unbekannten Begriff des Gradienten benutzt. Meistens ist es besser, nach dem zu fragen, was man erreichen möchte, nicht nach dem wie man denkt, wie man es erreichen könnte.

_________________
Du brauchst Hilfe?, Buchempfehlungen für C++,
Wie man in Fragen den richtigen Code postet,
The Definitive C++ Book Guide and List


Zuletzt bearbeitet von SeppJ am 14:09:33 08.08.2012, insgesamt 1-mal bearbeitet
ausrechner
Unregistrierter




Beitrag ausrechner Unregistrierter 14:38:16 08.08.2012   Titel:              Zitieren

SeppJ schrieb:
ausrechner schrieb:
Entschuldigung, ich hätte noch erwähnen sollen, dass ich mir Gradienten erst vor ein paar Stunden angelesen habe :)

Ich frage mal allgemeiner: Wenn ich eine Gleichung f(x,k) habe, wobei x ein 3d-Vektor und k ein Skalar ist, und non von dieser Funktion den Gradienten ausrechnen soll, wonach leite ich f(x,k) dann ab? 4 mal, jeweils nach x1,x2,x3 und k, oder nur nach x1,x2,x3? Oder vll. etwas anderes?
Die erste Komponente des Gradienten ist die Ableitung von f nach der ersten Komponente von x, die zweite Komponente des Gradienten ist die Ableitung von f nach der zweiten Komponente von x, usw.

Darf ich mal anmerken, dass Vektoranalysis nicht unbedingt ein Thema ist, welches man sich auf die Schnelle selber anlesen kann? Die meisten Leute brauchen dafür ein paar Wochen Studium, manche scheitern sogar ganz daran. Du hast doch vor, hier irgendein konkretes Problem zu lösen. Du hast anscheinend einen Lösungsweg gefunden, welcher den dir bisher unbekannten Begriff des Gradienten benutzt. Meistens ist es besser, nach dem zu fragen, was man erreichen möchte, nicht nach dem wie man denkt, wie man es erreichen könnte.


Da hast du wahrscheinlich recht. Aber ich wollte, wenn es möglich ist, vermeiden ein ganzes Buch ranzuziehen, wenn's nur drum geht wie man einen Gradienten ausrechnet :)

Es geht um Fluiddynamik, konkret Smoothed Particle Hydrodynamics: http://image.diku.dk/projects/media/kelager.06.pdf

In Abbildung 4.3 wird die Funktion gegeben:

§W(\vec r,x) = \frac{315}{64*pi*h^9} * (h^2 * ||r||^2)^3§ wobei ||r|| hier die Länge des Vektors ist, nicht die Norm. r wird vorher in die Funktion eingereicht und ist ein(nicht normierter) richtungsvektor von der position eines partikels zu einem anderen.

Der Autor gibt dann auch den Gradienten an:

§W(\vec r,x) = \frac{915}{32*pi*h^9} * \vec r * (h^2 * ||r||^2)^2§

und den "Laplacian" (soweit ich verstanden habe einfach nur sowas wie den zweiten Gradienten,also die zweite Vektorableitung, wobei es mich hier allerdings wundert, dass nun ein Skalar beim ganzen rauskommen soll):

§W(\vec r,x) = \frac{915}{32*pi*h^9} * (h^2 * ||r||^2) * (3h^2 - 7||r||^2)§

An und für sich könnte ich das ja einfach so verwenden und in Code gießen, dabei gibt's aber zwei Probleme:

Der Autor geht im Paper davon aus, dass r dreidimensional ist, bei mir haben die Vektoren jedoch 2 Komponenten. Wird dadurch das Ergebnis des Gradienten bzw. des "Quadratgradienten" verändert?

Und zweitens: Es kommt sehr schnell vor, dass man für w(r,x) andere Funktionen einsetzt, für welche die Gradienten nicht immer gegeben sind. Dafür würde ich dann gerne wissen, wie man die Gradienten und deren Kollegen mit der 2 drüber ausrechnet :)
ausrechner
Unregistrierter




Beitrag ausrechner Unregistrierter 14:41:59 08.08.2012   Titel:              Zitieren

Achja, und als dritten Grund: Derartige Gleichungen einfach mal ausrechnen zu können, tut einem Informatiker bestimmt nicht weh. Ist leider (verständlicherweise, man braucht es ja nur für ein paar wenige Gebiete, z.B. Grafikprogrammierung, wirklich dringend) in unseren Vorlesungen zu Mathe 1 2 und 3 nicht enthalten.
ausrechner
Unregistrierter




Beitrag ausrechner Unregistrierter 14:53:37 08.08.2012   Titel:              Zitieren

Oh, entschuldigung, ich hab mich da kurz vertippt. In den Klammern ist es jeweils (h^2 - ||r||^2) , nicht (h^2 * ||r||^2).
ausrechner
Unregistrierter




Beitrag ausrechner Unregistrierter 15:52:06 08.08.2012   Titel:              Zitieren

und ich merke grade: das soll W(r,h) sein, nicht W(r,x) :D
C14
Mitglied

Benutzerprofil
Anmeldungsdatum: 17.08.2000
Beiträge: 601
Beitrag C14 Mitglied 16:24:46 08.08.2012   Titel:              Zitieren

Hier ist der Gradient nach r gemeint. (das h ist hier konstant)
Die W's (smoothing-kernels) sind normalerweise rotationssymmetrisch,
sodass du http://de.wikipedia.org/wiki/Gradient_%28Mathematik%29#Zylinder-_und_Kugelkoordinaten verwenden kannst (r = |\vec{r}|)
und damit grad W(\vec{r},h) = \vec{r}/r dW/dr
Für den Laplace such nach 'Laplace in Kugelkoordinaten' bzw. 'Zylinderkoordinaten'
c++.de :: Mathematik und Physik ::  Kurze Rechenfrage: Nabla-Operator ausrechnen  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.