Mathematische Problemstellung

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Idler
Beiträge: 18
Registriert: 29.04.2005 11:53:10

Mathematische Problemstellung

Beitrag von Idler » 30.06.2008 19:19:03

Hallo Board,

ich stehe momentan vor der Herausforderung ein Shellscript zu schreiben was einen mathematisch nicht ganz trivialen Vorgang automatisieren soll:
Ich habe eine Menge an Punkten im dreidimensionalen, welche eine Oberfläche beschreiben. Eine zweite Menge, welche eine andere Oberfläche beschreiben, diese Oberfläche ist etwas größer. Ich will also diese zwei Flächen darstellen und muss sie dann voneinander subtrahieren (um den Abstand der zwei Oberflächen graphisch darzustellen). Geht sowas mit GnuPlot? Oder muss ich mich da anderweitig umschauen?

Ich hoffe mal es ist halbwegs klar was ich brauche... Tabelle an Punkten, Fläche draus Bilden, zwei so Flächen voneinander abziehen...

Danke für alle Ratschläge
Idler

schwedenmann
Beiträge: 5648
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: Mathematische Problemstellung

Beitrag von schwedenmann » 30.06.2008 20:09:03

Hallo


Sowas sollte man auch per Povray und CSG lösen bzw. darstellen können.

mfg
schwedenmann

horstel
Beiträge: 99
Registriert: 13.05.2008 10:32:25

Re: Mathematische Problemstellung

Beitrag von horstel » 02.07.2008 15:54:23

Sind die Punkte der beiden Punktwolken aus dem gleichen Gitter? Also musst du nicht interpolieren?

jaywalker
Beiträge: 371
Registriert: 14.09.2006 12:13:19

Re: Mathematische Problemstellung

Beitrag von jaywalker » 03.07.2008 09:28:59

Geht es jetzt um Ebenen im dreidimensionalen Raum? Oder was für "Oberflächen" sind das? Kugeloberflächen? Ist die Form überhaupt bekannt? Liegen die Punkte exakt auf der Fläche, und wieviele Punkte pro Fläche sind gegeben?

Grüße
jay

Tutti
Beiträge: 260
Registriert: 25.07.2005 19:37:59

Re: Mathematische Problemstellung

Beitrag von Tutti » 03.07.2008 10:29:18

Ich arbeite eher mit Mathematica, aber hab auch ein paar Kenntnisse in Gnuplot.

Wenn ich das richtig verstehe:

Du hast 2 Datensätze, die jeweils eine Liste von Koordinatenpaaren in kartesischen Koordinaten sind. Diese Listen sind aber nicht gleich groß, sprich enthalten eine unterschiedliche Zahl von Koordinatenpaaren.
Die Koordinaten sollen eine Oberfläche im 3D-Raum beschreiben. Du hast aber nicht die exakte mathematische Beschreibung für eben diese Oberfläche.
Du willst nun die Flächen einzeln plotten, und dann die Differenz davon nochmal plotten?

Mein Vorschlag:
Schau dir "splot" in Gnuplot an, dort kannst du auch diskrete Datensätze plotten. Allerdings funktioniert "splot" nur mit kartesischen Koordinaten.
Dokumentation Gnuplot: http://www.gnuplot.info/documentation.html
Für die Differenz würde ich den kleineren Datensatz mit {0,0,0} auffüllen, und dann "größeren Datensatz"-"kleineren Datensatz" rechnen. Dadurch bekommst du eine neue Liste von Koordinatenpaaren, die du dann ebenfalls in dieser Weise plotten kannst.


Hoffe geholfen zu haben.

*edit*
Ich war etwas vorschnell mit dem Abziehen der Ebene, funktioniert nur unter besonderen Vorraussetzungen. Für die Erklärung siehe meinen zweiten Post, zwei drunter.
Zuletzt geändert von Tutti am 03.07.2008 18:58:35, insgesamt 1-mal geändert.

thomasius
Beiträge: 36
Registriert: 29.12.2007 22:52:23

Re:Mathematica -tutti

Beitrag von thomasius » 03.07.2008 14:20:33

Hallo Tutti,

habe mir endlich Mathematika für Linux besorgt. Frage mich aber nun wie ich das auf Debian installieren soll.
Kannst Du mir bitte eine kurze Anleitung geben.

Danke Thomas

Tutti
Beiträge: 260
Registriert: 25.07.2005 19:37:59

Re: Re:Mathematica -tutti

Beitrag von Tutti » 03.07.2008 18:57:57

thomasius hat geschrieben:Hallo Tutti,

habe mir endlich Mathematika für Linux besorgt. Frage mich aber nun wie ich das auf Debian installieren soll.
Kannst Du mir bitte eine kurze Anleitung geben.

Danke Thomas
Bei mir war das so, wenn ich mich recht erinnere:
Habe von Wolfram (Mathematica Hersteller) eine eMail mit Downloadlink bekommen, nachdem ich die Lizenz beantragt hatte. Dort konnte ich die Linux Variante in Form einer Binary runterladen. Die Datei ausführbar machen, und dann logischerweise ausführen. Das wurde dann einfach installiert und währenddessen einige Pfade abgefragt, aber da kann man durchaus die Standard Sachen lassen, wenn ich mich recht erinnere.

Das wichtige:
Am Schluss wurde ein Key generiert, der von der eigenen Hardware abhängt. Mit diesem Key konnte man sich von Wolfram den passenden Registrierungsschlüssel geben lassen. Den Schlüssel dann beim ersten Start eingeben und es funktionierte.


Zusatz
Ich war oben etwas schnell, wie ich gerade bemerke. Die Ebenen, in der Art wie ich sie beschrieben habe, voneinander abziehen funktioniert logischerweise nicht immer. Es sollten wohl immer 2 Koordinatenpaare (zB x,y) + Höhe (z) vorhanden sein. Es macht natürlich nur Sinn, für das entsprechende Paar (x,y) die (z) Werte abzuziehen. Oder eben (y,z) festhalten und (x) abziehen, je nachdem. Wenn das völlig willkürliche Punkte sind, und man die nicht nach einem solchen Kriterium sortieren kann wird es schwierig.

Benutzeravatar
Paty-17
Beiträge: 230
Registriert: 18.12.2005 17:03:32
Lizenz eigener Beiträge: MIT Lizenz

Re: Mathematische Problemstellung

Beitrag von Paty-17 » 06.07.2008 00:04:17

Ob das jetzt wirklich in den Programm Gesucht kommt sei mal dahingestellt. Ist für mich nur ne Mathematik-Frage.
Prinzipiell gibts da 2 Möglichkeiten.
1. falls die Datensätze gleichen, festen x,y koordinaten eine z-komponente zuweisen, können wir einfach die Datensätze manuell voneinander abziehen (z.b. ooocalc) und danach plotten. Mit Gnuplot ist da splot wie tutti schon sagte der richtige Befehl. Gnuplot stößt allerdings hierbei bei der Interpolation an seine Grenzen wenn man nicht nur die Punkte plotten will, sondern so ein schönes Netz.
2. Falls nicht exakt gleiche Koordinatensätze vorhanden sind stoßen wir an ein Problem unabhängig von den Programmen. Wir versuchen auf einem Punkt/Vektor an einer Fläche deren Verlauf wir nicht (genau) kennen, einen anderen Punkt/Vektor abzuziehen. Bei hinreichender Datendichte reicht es womöglich aus die Fläche zu stückeln und einen geradlinigen Verlauf zwischen den Gittenpunkten anzunehmen. Ansonsten bleibt als weiteres Interpolationsverfahren nur noch das Fitting (was gnuplot hingegen wieder sehr gut kann, im gegensatz zu Excel mit dem "Data Analysis Tools"). Hierzu müssen wir allerdings wieder einen Funktionsverlauf wissen an den wir fitten wollen und dann die beiden Funktionen voneinander abziehe. Problem ist also im Allgemeinen mathematisch schon nicht wirklich zu lösen. Die Frage is also meiner Meinung nach nicht mehr nach einem Plotter ,sondern nach einem vernünftigen Interpolationsalgorithmus.

Ich würde für so nen umfangreichen Zweck aber auch eine der Mathematik-Programme verwenden, bzw. vllt lässt sich mit mehr Informationen über die Datensätze (und der Mathematikkenntnisse des Threadstarters^^) die herangehensweise deutlich vereinfachen.

Antworten