|
|
implizite DGL 1. Ordnung in Matlab numerisch lösen |
|
CJ2011 |
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 21.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.02.2011, 13:18
Titel: implizite DGL 1. Ordnung in Matlab numerisch lösen
|
|
Hallo,
ich habe eine DGL, die mir Probleme bereitet:
Das Problem stellt nur die 4te Potenz der ersten Ableitung im ersten Term dar. Ich kann die DGL deshalb nicht in die explizite Form
umschreiben und mit ode45 in Matlab lösen.
Ich weiß außerdem auch nicht, wie eine derartige DGL bezeichnet wird.
Könnt ihr mir weiterhelfen? Vielen Dank schon mal und schöne Grüße.
CJ2011
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.02.2011, 13:29
Titel:
|
|
Hallo,
das ist keine implizite DGL, sondern eine DGL 4. Ordnung (weil 4. Ableitung vorkommt).
Zu lösen ist sowas, indem man 4 DGLen 1. Ordnung für T und die ersten drei Ableitungen aufstellt. Das lässt sich dann mit ode45 lösen.
Setze x(1) = T, x(2) = T', ..., dann sieht die Funktion etwa so aus
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 ;)
|
|
|
CJ2011 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 21.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.02.2011, 13:50
Titel:
|
|
Hallo Harald,
es ist leider keine DGL 4. Ordnung, ich hätte das vielleicht etwas deutlicher schreiben sollen:
Eine DGL 4. Ordnung würde ja in korrekter Schreibweiße so aussehen:
Schöne Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.02.2011, 14:00
Titel:
|
|
Hallo,
ich wollte nicht kleinlich sein und das anmeckern So eine Gleichung ist mir noch nicht untergekommen, aber irgendwann ist immer das erste Mal.
Da es nun so aussieht:
Die Ableitung ist die Lösung einer Polynomialgleichung, die sich mit ROOTS, FSOLVE oder FZERO finden lassen sollte.
Du musst dann lediglich noch entscheiden, welche der ggf. mehreren Lösungen dann nun deine Ableitung sein soll.
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 ;)
|
|
|
CJ2011 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 21.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.02.2011, 14:44
Titel:
|
|
Hallo,
so jetzt hab ich nochmal viel Zeit investiert und die meine DGL überarbeitet bzw. vereinfacht (es wurden Anteile vorerst vernachlässigt). Nun habe ich folgende DGL:
Sieht jetzt schon mal viel einfacher und besser lösbar aus.
Das ganze stellt einen Temperaturverlauf auf einem Draht der Länge L dar. Nun habe ich ein weiteres Problem, ich habe nämlich zwei Randbedingungen: T(0)=300 und T(L)=300!
Wie kann ich in meinem DGL-Solver (ode45) diese Randbedingungen setzen?
Schöne Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.02.2011, 15:39
Titel:
|
|
Hallo,
wenn die Parameter K, L und alpha fest sind, gibt es nur einen Freiheitsgrad, der üblicherweise über den Anfangswert festgesetzt wird. Zwei Bedingungen können dann meines Erachtens nicht erfüllt werden, außer sie sind gleichwertig.
Es könnte z.B. sein, dass deine Lösung symmetrisch um x = L/2 ist, dann wäre die Bedingung T(L) = 300 automatisch erfüllt.
Ich hoffe, das hilft dir weiter.
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 ;)
|
|
|
CJ2011 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 21.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.02.2011, 16:35
Titel:
|
|
Hallo Harald,
ja die Parameter sind fest, und da es ja eine DGL 1.Ordnung ist, kann es ja eigentlich nur eine Bedingung geben.
Die Lösung sollte auch um L/2 symmetrisch sein, aber leider ist sie es nicht, wenn ich sie mit ode45 berechne.
Vielen Dank für schnelle Hilfe und schöne Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.02.2011, 16:56
Titel:
|
|
Hallo,
kannst du mir zur Reproduktion noch deine Parameter geben?
Müsste das letzte Argument beim Aufruf nicht 300 sein?
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 ;)
|
|
|
CJ2011 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 21.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.02.2011, 18:26
Titel:
|
|
Hallo Harald,
ja, das letzte Argument ist 300 Kelvin (bzw Raumtemperatur T20)
ich hab das ganze nur fürs Forum etwas vereinfacht dagestellt.
Wenn ich die DGL über [0 2*L] komme ich näherungsweiße eine symmetrische Funktion. Wahrschein noch ein Fehler in der DGL.
Schöne Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.02.2011, 18:45
Titel:
|
|
Hallo,
da ist wohl wirklich noch ein Fehler drin. Eine Temperatur von -2*10^6 würde mir jedenfalls Bedenken bereiten Vielleicht die Einheiten?
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 ;)
|
|
|
bligg |
Forum-Anfänger
|
|
Beiträge: 23
|
|
|
|
Anmeldedatum: 15.09.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.02.2011, 22:59
Titel:
|
|
Hi,
du interessierst dich für die stationäre Lösung eines Randwertproblems, ode45 ist ein Integrator für Anfangswertprobleme.
Randwertprobleme werden meistens mit selbstgeschriebenen Methoden der finiten Differenzen gelöst, wo sich Randbedingungen leicht implementieren lassen.
Einige Anregungen gibt's im Kapitel 10, ab Seite 122, in diesem Skript: http://ficus1.physik.hu-berlin.de/comphys/cp_I.pdf
Grüße
|
|
|
|
|
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.
|
|