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

Wie löse ich das Integral numerisch?

 

Benjamin19833

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2021, 20:21     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

wenn du ohnehin numerisch arbeiten willst, verstehe ich nicht, warum du überhaupt mit piecewise und int anfängst, was nun mal symbolisch ist.


Code:
aego = (0 <= time & time < 5) .* (-7);

vego= cumtrapz(time, aego) + 10;
vego=max(vego,0);

sego= cumtrapz(time, vego) + 15;


Grüße,
Harald


Danke Harald. Die Idee war, erst zu versuchen einen numerischen Ausdruck zu finden, um dann 1 Mio. Berechnungen durchzuführen.

Dachte, wenn man einen geschlossenen Ausdruck hat, geht das viel schneller als numerisch zu rechnen.


Harald
Forum-Meister

Forum-Meister


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

Zitat:
Die Idee war, erst zu versuchen einen numerischen Ausdruck zu finden, um dann 1 Mio. Berechnungen durchzuführen.

Du meinst, einen symbolischen Ausdruck?
Bitte stelle möglichst von Anfang an alle wichtigen Infos zur Verfügung. Dass du 1 Mio. Berechnungen durchführen willst, ist eine wichtige Info.

Zitat:
Dachte, wenn man einen geschlossenen Ausdruck hat, geht das viel schneller als numerisch zu rechnen.

Auch einsetzen benötigt eine gewisse Zeit, aber das kommt auf den Versuch an.

Das Problem scheint ja die stückweise Funktion zu sein. Wäre es eine Alternative, die Intervalle getrennt voneinander zu integrieren?

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
 
Benjamin19833

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2021, 21:03     Titel:
  Antworten mit Zitat      
Zitat:

Du meinst, einen symbolischen Ausdruck?


Genau, meinte ich.

Zitat:
. Wäre es eine Alternative, die Intervalle getrennt voneinander zu integrieren?

Das weiß ich nicht, das müsste ich probieren.
Meinst du getrennt integrieren, einen symbolischen Ausdruck finden und dann einsetzen? Oder wie meinst du das genau?

Derzeit benötige ich - wie bei deinem Ansatz oben mit Trapez ca. 3ms für eine Berechnung, wenn ich jedoch 1 Mio Berechnungen oder vll. auch 100 Mio. Berechnungen durchführen möchte, dann kann es sehr lange dauern.

Zum Glück besteht meine "Stückweise"Funktion a(t) max. nur aus 2 Konstanten und 1-2 Linearen....
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
Meinst du getrennt integrieren, einen symbolischen Ausdruck finden und dann einsetzen? Oder wie meinst du das genau?

Wenn z.B. die Funktion auf [0,a] und [a,10] unterschiedlich definiert ist, ausnutzen dass
\int_0^10 f(x) dx = \int_0^a f(x) dx + \int_a^{10} f(x) dx

Zitat:
wenn ich jedoch 1 Mio Berechnungen oder vll. auch 100 Mio. Berechnungen durchführen möchte, dann kann es sehr lange dauern.

Wenn du vektorisierte Operationen verwendest, werden 1 Mio. Berechnungen nicht 1 Mio. mal so lange dauern wie eine Berechnung. Wieviele Berechnungen sind es denn nun?

Zitat:
Zum Glück besteht meine "Stückweise"Funktion a(t) max. nur aus 2 Konstanten und 1-2 Linearen....

Dann solltest du das Integral doch sogar mit Papier und Bleistift bestimmen können?

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

Gehe zu Seite Zurück  1, 2

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.