WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Betrag eines Vektors korrekt mit Größe und Vorzeichen

 

caelum
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 19.02.10
Wohnort: ---
Version: 2011b
     Beitrag Verfasst am: 30.11.2011, 10:45     Titel: Betrag eines Vektors korrekt mit Größe und Vorzeichen
  Antworten mit Zitat      
Hallo Matlab Community,
ich habe einen Geschwindigkeitsvektor den ich aus Berechnungsgründen in eine x und eine y komponente zerlegen musste. Nun würde ich aber gerne den Betrag der Geschwindigleit über die Zeit wissen und müsste so den Absolutwert des Vektors kennen.

Rechnerisch kenne ich einzig den Weg über Pythagoras der auf die Wurzel der Summe der Quadrate der Komponenten hinausführt. Durch die Tatsache dass mein y-Wert aber auch negativ werden kann würde ich ja hier schonmal Information verlieren bzw Quatsch errechnen.
Um dem Vorzubeugen addiere oder subtrahiere ich je nach Vorzeichen. Wenn ich aber nun die Wurzel hieraus ermitteln möchte bekomme ich natürlich für negative WUrzeln imaginäre Zahlen deren Werte sich in einem v/t Diagramm für mich nicht darstellen lassen.

vflug=vx.^2+sign(vy).*vy.^2;
vflug=sqrt(vflug);
plot(t,vflug);

Nun meine Frage. Befinde ich mich hier mathematisch völlig auf dem Holzweg und gibt es eine Lösung die Geschwindigkeit sauber über die Zeit aufzutragen?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.11.2011, 11:02     Titel:
  Antworten mit Zitat      
Hallo,

wenn du die Fluggeschwindigkeit willst, ist das einzig sinnvolle
Code:
vflug=sqrt(vx.^2+vy.^2);

Natürlich verlierst du so die Information der Flugrichtung, diese kannst du dir aber z.B. über
Code:
winkelflug = atan2(vy, vx)
holen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
caelum
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 19.02.10
Wohnort: ---
Version: 2011b
     Beitrag Verfasst am: 30.11.2011, 13:05     Titel:
  Antworten mit Zitat      
Hallo Harald,
zum vollen Verständniss fehlt mir glaub noch ein kleines Stück. Mit dem Ansatz über den Winkel kann ich mir nun über die Beziehung

y=vflug.*sin(winkelflug)

den Y wert holen. Wenn ich das nun gegen t plotte wird die Geschwindigkeit aber nicht negativ und erreicht nich das bereits errechnete Maximum.

Stehe gerade etwas auf dem Schlauch aber bedanke mich schonmals für die schnele Antwort.

grüße Oli
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.11.2011, 13:42     Titel:
  Antworten mit Zitat      
Hallo,

mit meinen Beispieldaten funktioniert es zumindest:

Code:
vx = randn(10,1); vy = randn(10,1);
vflug=sqrt(vx.^2+vy.^2);
winkelflug = atan2(vy, vx);
vy2=vflug.*sin(winkelflug);
max(abs(vy - vy2))

Die Abweichung ist minimal, die Daten wurden also korrekt rekonstruiert.
Bitte nochmal überprüfen und ggf. anhand deinen Daten zeigen, wo das Problem liegt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.