Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Digitale Signalverarbeitung mit MATLAB

Studierende:
weitere Angebote

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

DGLs lösen ohne Solver

 

fynnr
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 07.10.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2022, 15:27     Titel: DGLs lösen ohne Solver
  Antworten mit Zitat      
Hallo zusammen,

Ich verzweifle aktuell an den folgenden Aufgaben:

Ich soll die beiden DGLs in MATLAB ohne DGL Solver auf numerische Weise lösen
1. y=2y′′ x y(x=0)=0;
2.y′=2y′′ x+y′′′ x^2+y/x y(x=2)=0;

Ich habe herausgefunden, dass es sich um gewöhnliche, lineare, homogene DGLs mit Variablen vor den Funktionen handelt.
Folgende Punkte sind mir aktuell unklar:

-Da ich keinen Solver z.B. den Ode45 verwenden darf, bin ich auf der Suche nach dem richtigen Ansatz und habe bereits ein Menge probiert (z.B. das Euler Verfahren). Ich komme mit meinen bisherigen Versuchen aber nicht weiter.

-In der Gleichung Nummer eins habe ich das banale Problem, dass ich nicht nach y' umstellen kann, da es nicht existiert.

-Meine Versuche diese DGLs in Systeme von DGLs 1.Ordnung umzuwandeln sind möglicherweise fehlerhaft.
Hier die Lösung:
A1:
V =
Y[2]
Y[1]/(2*x)

A2:
V=
Y[2]
Y[3]
-(2*Y[3]*x^2 - Y[2]*x + Y[1])/x^3

-Bei meinen Lösungsversuchen in MATLAB bekomme ich jedes Mal ein bunten Fehlerkatalog...

Kann mir jemand weiterhelfen?
Lieben Gruß
Fynn
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

mangels Übersichtlichkeit bin ich nicht mal sicher, welche DGLen hier eigentlich gelöst werden soll. Wenn ich das richtig sehe, benötigt man aber für beide Aufgaben weitere Anfangsbedingungen.

Zitat:
In der Gleichung Nummer eins habe ich das banale Problem, dass ich nicht nach y' umstellen kann, da es nicht existiert.

Das ist auch nicht nötig. Man stellt generell nach der höchsten vorkommenden Ableitung um. Das ist nur bei DGLen 1. Ordnung y'.

Zitat:
Bei meinen Lösungsversuchen in MATLAB bekomme ich jedes Mal ein bunten Fehlerkatalog...

Poste doch bitte deine Lösungsversuche. Wie soll man dir sonst helfen, die Fehler darin zu finden?

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
 
fynnr
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 07.10.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.10.2022, 07:54     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für die schnelle Antwort.

Hier der Code meiner Versuche mit Solver:

DGL1: Ich habe hier eine Anfangsbedingung hinzugefügt. In der Wertetabelle werden keine Zahlen erzeugt sondern NaN...

Code:
clc
close
clear

[x,y] = ode45(@FunA1,[0 5],[0 1]); %two initial conditions are neccessary -> Still doesn't lead to a solution (y=NaN)
plot(x,y)

function ydot = FunA1(x,y)
%UNTITLED7 Summary of this function goes here
%   Detailed explanation goes here
ydot=zeros(size(y));
ydot(1)=y(2);
ydot(2)=y(1)/(2*x);
end


DGL2: Hier bekomme ich Lösungen nachdem ich Anfangsbedingungen hinzugefügt habe. Kann aber die Graphen nicht richtig einordnen. Handelt es sich um Ableitungen, oder um verschiedene Lösungen von y?

Code:
clc
close
clear

[x,y] = ode45(@FunA2,[2 5],[0 1 5]); %three initial conditions are neccessary
plot(x,y)
legend('y(1)','y(2)','y(3)')  %je nach Anfangsbedingung wird y_achsenabschnitt angepasst (sind dies verschiedene Lösungen von y, oder die unterscheidlichen Ableitungen???

function ydot = FunA2(x,y)

ydot=zeros(size(y));
ydot(1)=y(2);
ydot(2)=y(3);
ydot(3)=-(2*y(3)*(x^2) - y(2)*x + y(1))/(x^3);
end
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

das sieht doch gut aus.

Zu DGL 1: für x = 0 ist die Ableitung nicht definiert, weil durch 0 geteilt wird. Daraus entstehen die NaN. Man muss also eine andere Anfangsbedingung wählen, zur Not über eine Fallunterscheidung.

Zu DGL 2: jede Spalte gehört zu den von dir definierten y(1) bis y(3). Das dürfte die Systemgröße und ihre beiden Ableitungen 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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
fynnr
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 07.10.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2022, 07:40     Titel:
  Antworten mit Zitat      
Hallo,

danke für die Rückmeldung. Und für andere Anfangsbedingungen in DGL 1 bekomme ich auch plausible Lösungen.
Da ich aber laut Aufgabenstellung eigentlich keine Solver benutzen darf, bin ich nach wie vor auf der Suche nach einem Ansatz zur Berechnung der Lösungen ohne Solver. Hat jemand eine Idee mit welchem Verfahren ich da erfolgreich sein könnte? Mir fehlt bisher der Ansatzpunkt.

LG Fynn
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.265
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.10.2022, 21:48     Titel:
  Antworten mit Zitat      
Hallo,

du hattest doch schon eine Idee: Euler-Methode. Eine Alternative wäre z.B. Runge-Kutta. Es ist wohl Teil der Übung, dass du dir so einen Solver schreibst. Du kannst dich natürlich z.B. auch hieran "orientieren":
https://www.mathworks.com/matlabcen.....runge-kutta-4th-order-ode

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
 
fynnr
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 07.10.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2022, 14:29     Titel:
  Antworten mit Zitat      
Vielen Dank Harald für die Hilfe!
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  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2023 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.