|
|
Linienmethode für PDG zweiter Ordnung implementieren |
|
Kassiopeia |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.08.2022, 16:54
Titel: Linienmethode für PDG zweiter Ordnung implementieren
|
|
|
|
|
Hallo Zusammen,
ich würde gerne das Ergebnis meiner Diskretisierung mittels Linienmethode implementieren, komme aber auf ein PDG zweiter Ordnung statt erster Ordnung wie in meinem Vorlesungsbeispiel. Dort wird ODE45 verwendet, der Ausgabevektor hat die Dimensionen x und t. Um das Problem zweiter Ordnung für ode45 verständlich zu machen muss ich dieses aber soweit ich weiß, auf die erste Ordnung reduzieren, wodurch die Ergebnismatrix y um eine Dimension wächst und das scheint ode45 nicht ausgeben zu können. Habt ihr Ideen wie ich das Problem entweder mit einem anderen Solver oder mit einem anderen Ansatz lösen kann? (Linienmethode ist allerdings verpflichtend)
Ausgangsgleichung:
yi(t)=q(xi,t)
y''=c*(yi+1-2yi+yi-1/dx^2)
(ich habe leider keine Ahnung wie man hier tiefstellt, das kursierte ist ein Index)
Das Code Beispiel aus der Vorlesung
global N x dx u
%
u = 15; a = 0; b = 100000; N = 100;
x = linspace(a,b,N+1); x = x(2:N+1); dx = x(2)-x(1);
t0 = 0; tend = 5200; tt = linspace(t0,tend,6);
y0 = q0(x);
options = odeset('RelTol',1.0e-6);
[T,Y] = ode45(@dgl,tt,y0,options);
%--
k = 0;
for t = tt
k = k+1;
q = loesung(x,t);
plot(x,q,x,Y(k,,'x')
end
function q = q0(x)
q = exp(-1.0e-8*(x-25000).^2);
end
function q = loesung(x,t)
q = q0(x-15*t);
end
function dy = dgl(t,y)
global N x dx u
dy(1,1) = -u*y(1)/dx;
for i = 2:N
dy(i,1) = -u * (y(i)-y(i-1))/dx;
end
end
|
|
|
|
|
|
|
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.
|
|