DGLen zweiter Ordnung müssten in Systeme von DGLen erster Ordnung umgeschrieben werden. Da du zwei Gleichungen hast, gehe ich hier davon aus, dass die DGL wirklich als eine in zwei Funktionen aufgefasst werden kann.
Das würde allerdings dem widersprechen, dass u eine Störfunktion ist. Anders gefragt: sind u / u' vorgegeben oder sollen sie bestimmt werden?
wisst ihr wie da bei diesem Problem die übergeführten Differentialgleichungen 1ter Ordnung ausshen müssen
Ist auch mit ODE45 möglich und welchen Unterschied macht es aus im Code con Matlab? GESUCHT WIRD x2´´!!!!!
y'(t) + f(t)y(t) = g(t)
Code:
%First, define the time-dependent parameters f(t) and g(t) as the %following:
ft = linspace(0,5,25); % Generate t for f
f = ft.^2 - ft - 3; % Generate f(t)
gt = linspace(1,6,25); % Generate t for g
g = 3*sin(gt-0.25); % Generate g(t)
%Write an M-file function to interpolate the data sets specified %above to obtain the value of the time-dependent terms at the %specified time:
function dydt = myode(t,y,ft,f,gt,g)
f = interp1(ft,f,t); % Interpolate the data set (ft,f) at time t
g = interp1(gt,g,t); % Interpolate the data set (gt,g) at time t
dydt = -f.*y + g; % Evalute ODE at time t
Tspan = [15]; % Solve from t=1 to t=5
IC = 1; % y(t=0) = 1 [T Y] = ode45(@(t,y) myode(t,y,ft,f,gt,g),Tspan,IC); % Solve ODE [/quote]
Verfasst am: 13.09.2009, 10:57
Titel: Problem beim aufstellen der Differentialgleichungssystem
Hallo habe nun das system aufgestellt, bekomme aber immer eine Fehlermeldung wenn ich das M* file Starten will! wisst ihr wodader fehler liegt?????????
vermutlich liegt es daran, dass ode45 eine Funktion mit zwei Input Parametern erwartet.
Zwei Abhilfemöglichkeiten:
Die Funktion gleich als geschachtelte ("nested") Funktion mit Inputs t,x zu file1 definieren. Alle anderen Inputs werden automatisch übernommen.
ODER
statt der Funktion gleich ein Handle
f = @(t,x) gleich( t,x,m1,m2,c1,c2,d1,d2 )
übergeben.
So oder so: bitte nicht nur sagen, DASS man einen Fehler bekommt, sondern auch WELCHEN!!
Was soll bei der Berechnung von dx(3) das u' am Ende? Damit wird transponiert, was aber bei einem Skalar wenig Sinn macht. Eine Ableitung müsstest du ggf. schon von Hand berechnen!
Als erstes mal vielen DANK HARALD das du mir bis jetzt so viel geholfen hast.!!!!!!
Aber einmal muss ich dich bzw. euch noch mal stören mit diesem Problem. Ist es beim ODE45 Befehl möglich die Zeitschritte von hand aus zu wählen!!!! Also das ich sage zB.: alle 0,1 sek soll er die Gleichung lösen?
und wenn ja WIE????????????
mir würd noch interessieren, wie man statt eine sinusfunktion eine liste als u angibt!!! Ich stelle mir das so for das ich eine Liste einlese und nach dieser Liste wird das u mitintegriert das soll so aussehen:
nur ich bekomme nur einen Punkt als Plot uder eine Gerade um 0 was sicher nicht stimmt!
DANKE
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
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.