Denna laboration handlar om system av differentialekvationer , med begynnelsevillkor x(0)=c. Här är A en
matris. MATLAB producerar lösningen med hjälp av kommandot
. Om A är diagonaliserbar med A=PDP-1, så är
, där
fås genom
att applicera exponentialfunktionen på diagonalelementen.
Redovisning
Redovisningen skall innehålla namn, grupparbetsgrupp samt
Den som inte vill hitta på ett eget program för att lösa system av differentialekvationer kan kanske ha hjälp av följande råa program:
function [t,x]=solveode(matris,start,stopptid,tidssteg)
if nargin<4 tidssteg=1; end;
x(:,1)=start;
for t=tidssteg:tidssteg:stopptid
x=[x,expm(t*matris)*start];
end;
t=0:tidssteg:stopptid;
Filen sparas under namnet solveode.m
Man använder detta program så här:
Mata först in systemets koefficienter i en matris, kallad t.ex. A
Mata sedan in startvärdena i en kolonnvektor, säg c.
Ge sedan (exempelvis) kommandot
>> [t,x]=solveode(A,c,10,0.1)
Detta ger lösningen x till systemet
med
Man kan sedan rita upp lösningarna med kommandon i stil med
>> plot(x(1,:),x(2,:))
(som ritar kurvan )
eller
>> plot(t,x(1,:),t,x(2,:))
(som ritar kurvorna och