Vinnaren i pepparkakshustävlingen!
2013-10-11, 14:15
  #1
Medlem
clear all
x=0; u(1)=1; u(2)=-1/3; %begynnelsevillkor%system av differentialekvationer
uprim1=u(2);
uprim2=u(1)./9-(pi.*u(1)*exp(x./3)*(2.*u(2)*sin(pi.*x)+pi.*u(1)*cos(pi.*x)));%lägg er in diffekvationerna i en vektor
u=[uprim1;uprim2];


Har detta som mina två diff.ekv. och vill lösa dom med hjälp av ODE45. Hittar ingen bra info så hjälp uppskattas!
Citera
2013-10-11, 19:06
  #2
Medlem
Brukar alltid göra en separat funktionsfil för diffrentialekvationen. Typ såhär:

Kod:
function uprim = minODE(x,u)

uprim = [u(2);
            u(1)./9-(pi.*u(1)*exp(x./3)*(2.*u(2)*sin(pi.*x)+pi.*u(1)*cos(pi.*x)))];

end

Sen i en main-fil som måste ligga i samma mapp som funktionsfilen (funktionsfilen måste för övrigt heta samma som funktionen, i detta fallet då minODE.m) skriver vi följande:

Kod:
clc, clear variables

T = [0 10]; %Start- och stopptid
u0 = [1, -1/3]; %Begynnelsevärdena

[x,u] = ode45(@minODE,T,u0);

Nu verkar det som är din diffekvation är lite instabil och styv, men det lämnar jag upp till dig att lösa.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback