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

Zeichnen von Vekotren mit verschiedenen Abständen

 

**Luna**
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.02.15
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 25.02.2015, 14:05     Titel: Zeichnen von Vekotren mit verschiedenen Abständen
  Antworten mit Zitat      
Hey,

ich muss die Veränderung eines Gravitationsvektors darstellen.
Folgendes habe ich bereits fabriziert
Code:

Dichte = 1.885; %g/cm^3
Volumen = 5689.8; %+- 60km^3
G = 6.67384 * 10^(-11); %m^3/(kg*s^2)

Masse = Dichte * Volumen; %kg
min = 0; %km
max = 300; %km
schritt = 30; %km
[x,y] = meshgrid(min:schritt:max, min:schritt:max);
r_min = 93;
r_max = 150;
r = [r_min, r_max];
g = (G*Masse)./(r.^2);

figure;
  clf;
  set(gcf, 'color', 'white');
  quiver(x,y,g,'r')
  grid off;
  box on;
  axis tight
  set(gca, 'DataAspectRatio',[1 1 1]);
  xlim([min max]);
  ylim([min max]);
  xlabel ('x');
  ylabel ('y');    
  grafikname='Vektorfeld Gravitationsbeschleunigung';
  print ('-dpng', '-r600', '-painters', grafikname);
 

Ausschauen soll das ganze nachher wie in der beigefügten Abbildung, wobei ich nur einen Quellpunkt habe für den ich alles berechne. Die Pfeile (Vektoren) sollen bei den r Angaben anfangen und auf meinen Quellpunkt hinzeigen. Sie müsste unterschiedliche Längen habe, da die Gravitation bei r = 93 am stärksten ist.
Ich hoffe, ihr versteht was ich meine...
Danke für eure Hilfe!!

Abbildung.jpg
 Beschreibung:

Download
 Dateiname:  Abbildung.jpg
 Dateigröße:  21.58 KB
 Heruntergeladen:  333 mal
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 25.02.2015, 15:03     Titel:
  Antworten mit Zitat      
der code ist so nicht lauffähig bei mir.
außerdem ist es sehr ungünstig min und max als variablen namen zu verwenden.
Zitat:
Die Pfeile (Vektoren) sollen bei den r Angaben anfangen und auf meinen Quellpunkt hinzeigen.
welchen quellpunkt denn? den finde ich nicht in deinem code.
du musst in jedem punkt deines feldes einfach die gravitaiton berechnen. das ist die länge des pfeils und dann noch die richtung. das ist einfach die diferenz aus ort und dann deinem quellpunkt wenn das da hinzeigen soll.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
**Luna**
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.02.15
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 25.02.2015, 16:00     Titel:
  Antworten mit Zitat      
Mein Quellpunkt hat so gesehen noch keine Koordinaten - laufen tut das Programm bei mir auch noch nicht. Zwar keine Fehlermeldung aber auch keine Ausgabe
Aber ich möchte nicht für jeden Punkt meines Feldes das Gravitationspotential berechnen sondern nur für gewisse Punkte in einem Abstand r von meinem Quellpunkt.
Um es real zu machen: Ich möchte die Veränderung des Gravitatationsvektors eines erdachten Zwergplaneten beim Vorbeiflug eines Satelliten darstellen. Die Bahn des Satelliten verläuft an dem Planeten vorbei mit einem minimalen Abstand von 93 km und das Maximum ist unendlich. Hab noch mal ein anderes Bild angehängt. Das macht es hoffentlich deutlicher.

Idee.jpg
 Beschreibung:

Download
 Dateiname:  Idee.jpg
 Dateigröße:  20.06 KB
 Heruntergeladen:  332 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 25.02.2015, 17:25     Titel:
  Antworten mit Zitat      
Zitat:
Aber ich möchte nicht für jeden Punkt meines Feldes das Gravitationspotential berechnen sondern nur für gewisse Punkte in einem Abstand r von meinem Quellpunkt.

dann berechne halt nur die. ist doch das gleiche.
Code:
Dichte = 1.885; %g/cm^3
Volumen = 5689.8; %+- 60km^3
G = 6.67384 * 10^(-11); %m^3/(kg*s^2)
Masse = Dichte * Volumen; %kg
phi=linspace(0,2*pi,50);
r=93:20:150;
[PHI,R]=meshgrid(phi,r);
x=R.*cos(PHI);
y=R.*sin(PHI);
g = (G*Masse)./(R.^2);
quiver(x,y,-x./sqrt(x.^2+y.^2).*g,-y./sqrt(x.^2+y.^2).*g,0.2)

ob du nun erst alle berechnest und dann die rauswirfst die du nicht haben willst oder gleich nur die berechnest die du willst ist doch bei der menge an daten egal. geht beides recht fix.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
**Luna**
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.02.15
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 25.02.2015, 17:48     Titel:
  Antworten mit Zitat      
Hallo Winkow,

danke für deine Hilfe!!
Leider entspricht dein Vorschlag nicht dem, was ich haben will. Die Darstellung soll wirklich nur so aussehen, wie in der Abbildung Idee zu sehen ist. Ich brauche nur jeweils einen Gravitationsvektor pro Position des Satelliten zu dem Quellpunkt.
Hab mich jetz schon zu dem hier weitergearbeitet
Code:

Dichte = 1.885; %g/cm^3
Volumen = 5689.8; %+- 60km^3
G = 6.67384e-11; %m^3/(kg*s^2)
Masse = Dichte * Volumen; %kg
Quellpunkt = [0,0]; %Koordinaten

[x,y] = meshgrid(-300:30:300);
r = sqrt(x.^2 + y.^2);

for r=[93,5,130]
    g = (G*Masse)./(r.^2);
end

figure;
  clf;
  set(gcf, 'color', 'white');
  quiver(x,y,g,'r')
  grid off;
  box on;
  axis tight
  set(gca, 'DataAspectRatio',[1 1 1]);
  xlabel ('x');
  ylabel ('y');    
  grafikname='Gravitationsvektor';
  print ('-dpng', '-r600', '-painters', grafikname);
 

Aber das ergibt auch nicht das gewünscht.
Kannst du mir bitte noch einmal helfen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 25.02.2015, 18:51     Titel:
  Antworten mit Zitat      
Code:
for r=[93,5,130]
    g = (G*Masse)./(r.^2);
end
 

das macht keinen sinn. du speicherst keine ergebnisse ab. also bekommst du am ende der schleife nur das letzte ergebniss in g. mal abegesehen davon das du vorher schonmal r belegt hast als variable. und deine aussage welche punkte du jetzt berechnet haben willst ist zu schwammig.
in meinem beispiel sind punkte berechnet zwischen deinem rmin und rmax.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
**Luna**
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.02.15
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 25.02.2015, 19:08     Titel:
  Antworten mit Zitat      
Oh ja ich hab r doppelt belegt - das ändere ich sofort.
Ich möchte 9 Punkte, wobei der minimale Abstand zum Quellpunkt 93 und der maximale 150 beträgt.
Also rein theoretisch haben meine Punkte folgende Koordinaten
Quellpunkt = 0, 0
Punkt 1 = 20, 150
Punkt 2 = 15, 135
Punkt 3 = 10, 120
Punkt 4 = 5, 105
Punkt 5 = 0, 93
Punkt 6 = -5, 105
Punkt 7 = -10, 120
Punkt 8 = -15, 135
Punkt 9 = - 20, 150
In jedem dieser Punkte soll 1 Gravitationsvektor zum Quellpunkt hin zeigen. Der Vektor im Punkt 5 sollte der längste sein, da der Abstand am geringsten ist.
Leider weiß ich nicht, wie ich das einigermaßen geschickt in Matlab umsetze...
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 25.02.2015, 20:17     Titel:
  Antworten mit Zitat      
na genau so wie oben. blos halt mit deinen koordinaten
Code:
Dichte = 1.885; %g/cm^3
Volumen = 5689.8; %+- 60km^3
G = 6.67384 * 10^(-11); %m^3/(kg*s^2)
Masse = Dichte * Volumen; %kg
x=[-20:5:20];
y=[150,135,120,105,93,105,120,135,150];
r=sqrt(x.^2+y.^2);
g = (G*Masse)./(r.^2);
quiver(x,y,-x./sqrt(x.^2+y.^2).*g,-y./sqrt(x.^2+y.^2).*g,0.2)

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
**Luna**
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.02.15
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 25.02.2015, 20:30     Titel:
  Antworten mit Zitat      
fantastisch!! Vielen vielen Dank!!!
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 - 2025 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.