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

Plot von Euler

 

Ertz
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 26.04.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2019, 21:43     Titel: Plot von Euler
  Antworten mit Zitat      
Da es für einige recht intressant ist, sich mal kurz eine nicht analytisch lösbare oder einfach zu aufwendige Funktion numerisch integrieren zu lassen, hier mal mein Code dafür.
Für Verbesserungsvorschläge bin ich offen.

Ich hoffe die Zeilen helfen all dennen, die sich nicht zu sehr mit der Syntax, sondern mehr mit den Möglichkeiten des Euler auseinadersetzen wollen.

Code:
% Anfangsbedingungen Ab'n

j = 0;  % Semikolon am Ende verhindert, dass Matlab jeden Berechnungsschritt anzeigt. Besonders in der Schleife angenehm.
a = -9.81;  % Punkte keine Kommata nutzen
v = 5;
s = 10;
t = 0;

A = a;
V = v;
S = s;
T = t;

an = a;
vn = v;
sn = s;

% Schritweite, je kleiner je genauer, aber umso rechenintensiver
dt=0.03;

% Schleife zum numerischen Integrieren. Wert nach Doppelpunkt bestimmt Anzahl Schritte der Simulation
for i=0:200 ;

   a = an + j * dt ;
   v = vn + an * dt;
   s = sn + vn * dt;
   t = t + dt;
% die neuen Werte werden für den nächsten Schritt gespeichert. Besonders für "v" und "s" ist es wichtig, damit wirklich mit dem Wert aus dem Schritt davor gerechnet wird.
   an = a;
   vn = v;
   sn = s;
% Hier werden die Ergebnisse gespeichert
   A = [A , a];
   V = [V , v];
   S = [S , s];
   T = [T , t];

end

%Ausgabe
plot(T,A,'-',T,V,'-',T,S,'-')

legend('Beschleunigung','Geschwindigkeit','Strecke')
title('Beschleunigung, Geschw., Strecke')
grid on
Private Nachricht senden Benutzer-Profile anzeigen


Ertz
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 26.04.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2019, 11:25     Titel: Verbesserung des Eulers
  Antworten mit Zitat      
Hier noch eine etwas kürzere Version des Eulers.

Code:

% Euler
a(1) = 1;
v(1) = 1;
s(1) = 1;
w = 2;

dt = 0.03;
tf = 10;
T = 0:dt:tf;

for i=1:length(T)-1 ;
   a(i+1) = -w^2*s(i);
   v(i+1) = v(i) + a(i) * dt;
   s(i+1) = s(i) + v(i) * dt;
end

plot(T,a,'-',T,v,'-',T,s,'-')
xlabel('time')
legend('Be','Geschw.','Str.')
title('Titel')
grid on
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.04.2019, 16:43     Titel:
  Antworten mit Zitat      
Hallo,

zu beachten ist, dass expliziter Euler die einfachste und eine nicht sehr effiziente Art ist DGLen zu lösen, und vor allem auch ohne Fehlerkontrolle bzw. Schrittweitensteuerung. Bei nicht-steifen DGLen würde ich ode45 empfehlen, ansonsten z.B. ode23s .

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.