Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
Projektingenieur / Projektingenieurin Maschinenbau mit Kenntnissen in Matlab / Simulink
Durchführung von Simulationen und Berechnungen
HBI Haerter GmbH - Heidenheim an der Brenz (nahe Ulm)

System-Entwickler (m/w)
Analyse und Spezifikation von Systemanforderungen & Abstimmung von Anforderungen
MicroNova AG - Friedrichshafen

Ingenieur (w/m) modellbasierte Entwicklung / Embedded Programmierung
Organisation und Durchführung von Projekten zur Integration von TargetLink in aktuelle Entwicklungsprozesse
dSPACE GmbH - Pfaffenhofen

E-Drive Entwicklungsingenieur Hochvolt-Ladesystem (m/w)
Spezifikation von Lademanagement- sowie Ladeinterfacefunktionen im Lastenheft für die Serienentwicklung
MBtech Group GmbH & Co. KGaA - München

Software-Entwickler (m/w) Automotive
Implementierung und Verifizierung von Software-Modulen
MBtech Group GmbH & Co. KGaA - Neu-Ulm, Lindau

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Richtungsfeld einer Differentialgleichung plotten

 

Gammaquant
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2009, 16:28     Titel: Richtungsfeld einer Differentialgleichung plotten
  Antworten mit Zitat      
Hi,

ich bin noch ziemlich neu hier und hab mal ne Frage zum plotten eines Richtungsfeldes einer DGL.
Ich schreibe zur Zeit eine Facharbeit in Mathe und bräuchte zur genaueren Erläuterung selbstgeplottete Bespiele für ein Richtungsfeld (der zuständige Befehl heißt "quiver" ).
Da ich noch kaum mit Matlab gearbeitet habe bin ich noch ziemlich unsicher und freue mich über jeden tip.
Bisher habe ich erstmal x und y belegt mit:
[x,y] =meshgrid(-10:0.5:10);
und versucht für die DGL y'(x)= -y/x oder y'=x²+y² auf diese Weise darzustellen, aber entweder komme ich nicht weiter oder ich bekomme nur singuläre lösungen.

mfg
Gammaquant
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.971
Anmeldedatum: 03.09.07
Wohnort: Dessau
Version: R2014b
     Beitrag Verfasst am: 25.05.2009, 07:47     Titel:
  Antworten mit Zitat      
Moin,

irgendwie hilft diese Beschreibung nicht wirklich. Etwas Code wäre hilfreich (bitte mit der Code-Umgebung), der zeigt, was du im Moment machst und dann nochmal die Beschreibung, was gemacht werden soll.

Gruß
Alex
_________________

>> I told me to.

____________________________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gammaquant
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.05.2009, 18:38     Titel:
  Antworten mit Zitat      
Also ich verstehe nicht was an diesen drei zeilen falsch sein soll

Code:

[x,y]=meshgrid(-10:0.5:10); % ich spanne mir ein gatter mit allen x und y koorinaten auf
dy=x^2+y^2; % das soll die DGL sein
quiver(x,y,ones(size(x)),dy) %Erzeugung des Richtungsfeldes mit Hilfe von Vektoren (ones(size(x)), dy)


Gruß
Gammaquant
Private Nachricht senden Benutzer-Profile anzeigen
 
mr_endres
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 78
Anmeldedatum: 11.06.08
Wohnort: Unterfranken
Version: ---
     Beitrag Verfasst am: 27.05.2009, 12:57     Titel:
  Antworten mit Zitat      
Hallo,

in deinem code multiplizierst du matrizen miteinander, besser so (auf die Punkte achten):

Code:

[x,y]=meshgrid(-10:0.5:10); % ich spanne mir ein gatter mit allen x und y koorinaten auf
dy=x.^2+y.^2; % das soll die DGL sein
quiver(x,y,ones(size(x)),dy) %Erzeugung des Richtungsfeldes mit Hilfe von Vektoren (ones(size(x)), dy)
 


das sieht aber immer noch nicht gerade übersichtlich und schön aus


mfg
Johannes
Private Nachricht senden Benutzer-Profile anzeigen
 
Gammaquant
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2009, 20:48     Titel:
  Antworten mit Zitat      
kann mir jetzt vielleicht noch jemand sagen wie ich die Vektoren alle gleichlang plotten kann, damit das Richtungsfeld einheitlich aussieht?
Code:
[x,y]=meshgrid(-10:0.5:10); % ich spanne mir ein gatter mit allen x und y koorinaten auf
dy=x.^2+y.^2; % das soll die DGL sein
quiver(x,y,ones(size(x)),dy,3) %Erzeugung des Richtungsfeldes mit Hilfe von Vektoren (ones(size(x)), dy)

(in der Mitte des Richtungsfeldes werden sie bei dieser Funktion immer kleiner vom Betrag)

mfg
Gammaquant
Private Nachricht senden Benutzer-Profile anzeigen
 
mr_endres
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 78
Anmeldedatum: 11.06.08
Wohnort: Unterfranken
Version: ---
     Beitrag Verfasst am: 28.05.2009, 13:48     Titel:
  Antworten mit Zitat      
Hallo,

habe zunächst mal deinen Wertebereich etwas geändert, damit man überhaupt etwas sieht.

Um gleiche Längen zu erhalten musst du die Vektoren nur normieren.
Code:

[x,y]=meshgrid(-3:.2:3); % ich spanne mir ein gatter mit allen x und y koorinaten auf
dy=x.^2+y.^2; % das soll die DGL sein
norm=sqrt(dy.^2+1);
quiver(x,y,ones(size(x))./norm,dy./norm,0.3) %Erzeugung des Richtungsfeldes mit Hilfe von Vektoren (ones(size(x)), dy)
 


Die letzte Zahl, welche quiver als Argument übergeben wird skaliert die Länge der Pfeile (sonst macht das Matlab automatisch; 0 bedeutet keine Skalierung, also hier Länge 1.

mfg
Johannes
Private Nachricht senden Benutzer-Profile anzeigen
 
Gammaquant
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.05.2009, 16:00     Titel:
  Antworten mit Zitat      
ok danke

jetzt aber noch eine Frage, wie füge ich eine Lösungskurve, beispielsweise y=tan(2*x+3*x)*x, in das Richtungsfeld ein?
Private Nachricht senden Benutzer-Profile anzeigen
 
mr_endres
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 78
Anmeldedatum: 11.06.08
Wohnort: Unterfranken
Version: ---
     Beitrag Verfasst am: 30.05.2009, 09:40     Titel:
  Antworten mit Zitat      
z.B. so:

Code:

[x,y]=meshgrid(-3:.2:3,-5:.2:5); % ich spanne mir ein gatter mit allen x und y koorinaten auf
dy=x.^2+y.^2; % das soll die DGL sein
norm=sqrt(dy.^2+1);
quiver(x,y,ones(size(x))./norm,dy./norm,0.3) %Erzeugung des Richtungsfeldes mit Hilfe von Vektoren (ones(size(x)), dy)
hold on;
ezplot('tan(2*x+3*x)*x',[-3,3,-5,5]);
 



mfg
Johannes
Private Nachricht senden Benutzer-Profile anzeigen
 
Gammaquant
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.05.2009, 09:50     Titel:
  Antworten mit Zitat      
Vielen vielen dank Very Happy

lg
Gammaquant
Private Nachricht senden Benutzer-Profile anzeigen
 
carlfr

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2017, 19:57     Titel:
  Antworten mit Zitat      
Hey, ich habe versucht nach dieser Anleitung das Richtungsfeld einer DGL zu plotten, was aber nicht funktionierte...

die Gleichung: dy=1+y(x)^2

dazu habe ich die Anfangsbedingung: y(pi/4)=-1

mein Code bis jetzt:

dsolve('Dy=1+y(x)^2','y(pi/4)=-1','x') %Anfangsbedingung in Gleichung einsetzen und lösen
Y=ans;
ezplot(Y,[-5,5])
hold on
[x,y]=meshgrid(-10:.5:10);
dy=1+y(x)^2 %welche Gleichung muss hier hin?
norm=sqrt(dy.^2+1);
quiver(x,y,ones(size(x))./norm,dy./norm,0.3)

Die DGL wird mir geplottet, das Richtungsfeld hingegen nicht.
Es erscheint die Fehlermeldung: "Subscript indices must either be real positive integers or logicals."

Kann mir jemand weiterhelfen? Smile
Grüße
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2018 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.