|
|
Berechnung einer DGL mit dsolve Funktion |
|
pegasus |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 19.10.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.11.2016, 09:57
Titel: Berechnung einer DGL mit dsolve Funktion
|
|
Hallo Zusammen,
ich habe eine DGL für die eine geschlossene Lösung existiert. Leider wird in der Literatur nicht die Lösungsfunktion y(t) angegeben. Nun möchte ich diese mit der dsolve Funktion in Matlab selbst erzeugen.
Dabei gehe ich folgendes ein:
Anschließend bekomme ich folgende Fehlermeldung:
Woran liegt es, dass ich die Funktion nicht plotten kann ?
pegasus
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.11.2016, 10:52
Titel:
|
|
Hallo,
aus der Doku:
Zitat: |
Character vector inputs are not recommended. Instead, use syms to declare variables and replace inputs such as dsolve('Dy = y') with syms y(t); dsolve(diff(y,t) == y). |
Bei der komplexen Gleichung wirst du irgendwo einen Syntaxfehler haben. Mit der empfohlenen Schreibweise wirst du dir da leichter tun.
Du kannst die DGL dann auch mit mehreren Befehlen schrittweise aufbauen.
Grüße,
Harald
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 10.11.2016, 11:10
Titel: Re: Berechnung einer DGL mit dsolve Funktion
|
|
Hallo pegasus,
Die Fehlermeldung ist eindeutig:
Zitat: |
Invalid input. ')' is expected. |
Der Ausdruck vor dem Komma hat zwei öffnende Klammern mehr als schließende.
Hier eine vereinfachte Formel:
Ich habe mal geraten, dass die ersten beiden (( überflüssig sind.
Gruß, Jan
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.11.2016, 11:16
Titel:
|
|
Hallo Jan,
ich glaube, du warst beim Entfernen von Klammern zu großzügig, denn
a / (b * c) ist nicht gleich a / b * c.
Grüße,
Harald
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 10.11.2016, 17:42
Titel:
|
|
Hallo Harald,
Ja, das ist möglich.
Der Ausdruck "(y/1.0*10^5)" ist verwirrend. Das ist natürlich "y*1e5" und nicht "y*1e-5". Welches schräge Programm erzeugt denn eine Formel, bei der eine Zahl durch 1 dividiert wird? Da muss doch "(y/(1.0*10^5))" gemeint sein, oder?! Das wäre doch sonst sinnfrei.
da aber sowieso zwei verwaiste Klammern in dem geposteten Ausdruck vorkommen, ist meine Vereinfachung natürlich nur wildes Raten. Wie die Gleichung wirklich aussieht, weiß nur der OP.
Jedenfalls kann man die Gleichung aber auch mit menschlichen Fähigkeiten viel mehr Lesbarkeit einhauchen und muss nicht die Symbolic Toolbox damit quälen. Und sowie die Konstanten zusammen gefasst sind, werden solche Klammerfehler weniger mystisch.
Gruß, Jan
|
|
|
pegasus |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 19.10.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.11.2016, 09:52
Titel:
|
|
Es heisst in der Tat (y/1e5).
Wenn ich die fehlenden Klammern setze kann Matlab die Funktion verarbeiten. Allerdings bekommt dsolve keine explizite Lösung heraus (2014b).
In der Literatur wird hierfür allerdings erwähnt, dass die Gleichung geschlossen lösbar sei, aber die Lösungsfunktion wird nicht angegeben.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 11.11.2016, 10:01
Titel:
|
|
Hallo,
wenn du den korrigierten Code postest, teste ich es gerne im aktuellen Release.
Grüße,
Harald
|
|
|
pegasus |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 19.10.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.11.2016, 09:59
Titel:
|
|
Hallo Harald,
hier der korrigierte Code:
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.11.2016, 11:20
Titel:
|
|
Hallo,
auch R2016b findet hier keine Lösung.
Du könntest dich noch an den Technischen Support von MathWorks wenden, ob man dort Vorschläge für dich hat.
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|