Verfasst am: 04.10.2017, 20:47
Titel: Wo füge ich die Schleife ein
Hallo und einen schönen Abend wünsch ich!
Meine Aufgabenstellung ist für mich ziemlich komplex und deshalb benötige ich bitte Hilfe:
gegeben sind die Punkte FA, FB, FC und FHC (im Raum) ... diese Punkte gibt's wegen einer gewollten Bewegung 4000fach, also liegen drei 3-spaltige Vektoren mit 4000 Zeilen vor (unten hab ich die je ersten 7 Zeilen kopiert); den Punkt FHC gibt es nur einmal und der gehört zu den 3 Punkten der ersten Zeile
Ich muss nun für all diese Punkte die entsprechenden FHCs (3999x) berechnen.
Meine Idee ist, den Fußpunkt FPF1 als Schnittpunkt aus der senkrechten Geraden durch FHC mit der Ebene FA,FB,FC zu berechnen (FnABC=normalVektor zur Ebene ABC), was auch funktioniert - dabei stellt sich mir die Frage, ob ich das als Funktion schreiben muss? Bzw ist es so, wenn ich das als Funktion schreibe, scheint mir der Wert des Fußpunktes nicht auf und ich kann ihn nicht weiter verwenden; wie geh ich da vor? Deshalb hab ich hier im Code02 die Funktion auch auskommentiert.
Dann hab ich mir die Längen des Punktes FPF1 zu den Punkten FA, FB und FC berechnet (FfpA, FfpB und FfpB) und will diese als Radien für 3 Kugeln mit den neuen (gegebenen, bewegten) FAs, FBs und FCs als Mittelpunkt verwenden. Diese 3 Kugeln geschnitten sollen die neuen Fußpunkte ergeben und mit Rückrechnung aus Fußpunkt - lambda*FnABC sollen die neuen FHCs ermittelt werden.
Das ganze hab ich mir auch in MathCad entwickelt, dort funktioniert es auch, also stimmt der Weg, nur benötigt MathCad ca einen Tag!!! für ein File und ich muss 192 Files auswerten ---> ein 3/4 Jahr auswerten ... btw sind nicht nur die neuen FHCs zu berechnen, sondern 23 andere solche Punkte (also 23*4000*192)
Hier hab ich jetzt neben den oben schon angesprochenen Schwierigkeiten, ob Funktion oder nicht, das massive Problem, dass ich nicht weiß, wo ich die Schleife ansetzen muss (zum Testen hab ich nur die ersten 7 Zeilen als Bereich angegeben) und da ärgert mich ganz besonders das 'sol' aus dem Code03 - ich vermute, dass dort der Knackpunkt ist. Für eine Zeile bekomme ich ein richtiges Ergebnis, aber nicht für mehrere ...
jetzt hoffe ich noch, mich verständlich ausgedrückt zu haben und ich hänge auch schon gleich ein Danke für Eure Beschäftigung mit meiner Sache an
Verfasst am: 05.10.2017, 18:52
Titel: Re: Wo füge ich die Schleife ein
Hallo pallasathena,
Ich kann den erklärungen nicht folgen.
Zitat:
den Punkt FHC gibt es nur einmal und der gehört zu den 3 Punkten der ersten Zeile
Ich muss nun für all diese Punkte die entsprechenden FHCs (3999x) berechnen.
Gibt es den Ounkt nun "nur einmal" oder musst Du ihn "berechnen"?
Zitat:
Meine Idee ist, den Fußpunkt FPF1 als Schnittpunkt aus der senkrechten Geraden durch FHC mit der Ebene FA,FB,FC zu berechnen (FnABC=normalVektor zur Ebene ABC), was auch funktioniert ...
Das verstehe ich nicht.
Zitat:
- dabei stellt sich mir die Frage, ob ich das als Funktion schreiben muss?
Wenn Du magst. Was wäre denn die Alternative? Es direkt im Hauptprogramm zu berechnen? Prinzipiell ist das kein Unterschied.
Zitat:
Bzw ist es so, wenn ich das als Funktion schreibe, scheint mir der Wert des Fußpunktes nicht auf und ich kann ihn nicht weiter verwenden;
Da fehlen wohl ein paar wichtige Wörter im Satz, oder?
Zitat:
Dann hab ich mir die Längen des Punktes FPF1 zu den Punkten FA, FB und FC berechnet (FfpA, FfpB und FfpB) und will diese als Radien für 3 Kugeln mit den neuen (gegebenen, bewegten) FAs, FBs und FCs als Mittelpunkt verwenden. Diese 3 Kugeln geschnitten sollen die neuen Fußpunkte ergeben und mit Rückrechnung aus Fußpunkt - lambda*FnABC sollen die neuen FHCs ermittelt werden.
Ist es wirklich notwendig, diese Details nachvollziehen zu können, um Dir zu helfen?
Möchtest Du dies wirklich symbolisch lösen? Das sollte numerisch ziemlich einfach sein und deutlich schneller. Das sieht nach einer einfachen Matrix-Gleichung aus und der \ Operator sollte das direkt und sehr zügig berechnen können.
Die geposteten Daten kann man so nicht gebrauchen, wegen des Kommas als Dezimal-Trenner.
Verfasst am: 05.10.2017, 21:06
Titel: Re: Wo füge ich die Schleife ein
[quote="Jan S"]Hallo pallasathena,
Ich kann den erklärungen nicht folgen.
Zitat:
den Punkt FHC gibt es nur einmal und der gehört zu den 3 Punkten der ersten Zeile
Ich muss nun für all diese Punkte die entsprechenden FHCs (3999x) berechnen.
Zitat:
Gibt es den Ounkt nun "nur einmal" oder musst Du ihn "berechnen"?
Dieser Punkt gehört zu den Punkten FA, FB, FC und gibt es nur einmal, ich muss allerdings das Pendant zu den restlichen FAs, FBs und FCs berechnen. Das Ziel ist, die neuen Positionen des FHC zu berechnen, die sich durch die Bewegung der Punkte FA, FB und FC ergibt. Vielleicht sollte ich dazu schreiben, dass FA, FB und FC fixierte Marker auf einem Knochen sind und FHC eine spezielle Landmarke. Der Knochen wurde bewegt, also, daher die vielen verschiedenen Positionen (4000) und die neuen Positionen von FHC sind das begehrte Objekt des Arztes.
Zitat:
Meine Idee ist, den Fußpunkt FPF1 als Schnittpunkt aus der senkrechten Geraden durch FHC mit der Ebene FA,FB,FC zu berechnen (FnABC=normalVektor zur Ebene ABC), was auch funktioniert ...
Zitat:
Das verstehe ich nicht.
Hm, ich will quasi die Projektion von FHC auf die Ebene berechnen ...
Zitat:
- dabei stellt sich mir die Frage, ob ich das als Funktion schreiben muss?
Zitat:
Wenn Du magst. Was wäre denn die Alternative? Es direkt im Hauptprogramm zu berechnen? Prinzipiell ist das kein Unterschied.
Gut, danke ...
Zitat:
Bzw ist es so, wenn ich das als Funktion schreibe, scheint mir der Wert des Fußpunktes nicht auf und ich kann ihn nicht weiter verwenden;
Zitat:
Da fehlen wohl ein paar wichtige Wörter im Satz, oder?
Ich wüsste jetzt nicht, was da fehlen sollte ... ich hab mir jetzt meinen Satz einige Male durchgelesen und finde nichts ergänzungswürdiges.
Zitat:
Dann hab ich mir die Längen des Punktes FPF1 zu den Punkten FA, FB und FC berechnet (FfpA, FfpB und FfpB) und will diese als Radien für 3 Kugeln mit den neuen (gegebenen, bewegten) FAs, FBs und FCs als Mittelpunkt verwenden. Diese 3 Kugeln geschnitten sollen die neuen Fußpunkte ergeben und mit Rückrechnung aus Fußpunkt - lambda*FnABC sollen die neuen FHCs ermittelt werden.
Zitat:
Ist es wirklich notwendig, diese Details nachvollziehen zu können, um Dir zu helfen?
Ich wollte einfach nur genau beschreiben ...
Zitat:
Möchtest Du dies wirklich symbolisch lösen? Das sollte numerisch ziemlich einfach sein und deutlich schneller. Das sieht nach einer einfachen Matrix-Gleichung aus und der \ Operator sollte das direkt und sehr zügig berechnen können.
Ich will das nicht symbolisch lösen, weiß nur nicht, wie ich das sonst machen soll - denn genau das symbolische scheint ja die Falle zu sein. Könntest Du mir denn da bitte auf die Sprünge helfen?
Zitat:
Die geposteten Daten kann man so nicht gebrauchen, wegen des Kommas als Dezimal-Trenner.
Ich wundere mich jetzt selber über die Darstellung, ich hab sie nämlich direkt aus matlab kopiert. Ich ergänze das gleich, ich bin grad nicht am Rechner
Zitat:
Gruß, Jan
Vielen Dank für Dein Bemühen ... hilfst Du mir denn bitte weiter, wenn ich ergänzt habe? Ich ahne nämlich, dass ich dann mit der Schleife auch noch Schwierigkeiten habe
Ela
Zuletzt bearbeitet von pallasathena am 05.10.2017, 23:00, insgesamt einmal bearbeitet
Ich hoffe, dass die Daten jetzt brauchbar sind - beim Kopieren hat sich da automatisch das Komma anstatt des Punktes hineingeschmuggelt. Und ja, ich hab mein System schon auf den Punkt umgestellt, da die wissenschaftlichen Programme durchwegs mit Punkt arbeiten
Bei den Kugeln muss ich nicht die einzelnen Zeilen für x, y und z definieren?
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.