Solving non homogenous differential equations numerically using ode45 etc
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
How is a non homogenous differential equation solved in MATLAB using ode45 or ode23. I have a function like:- dmdt = a*exp(Asin(wt) + (2-m)^2);
Can I obtain the numerical solution for this?
Thanks in advance
0 Commenti
Risposta accettata
  Mischa Kim
    
      
 il 29 Ott 2014
        
      Modificato: Mischa Kim
    
      
 il 4 Nov 2014
  
      Sarah, yes you can. The typical approach for such an example is to create two functions:
 function my_EOM()
 a     = 1;
 A     = 1;
 w     = 1;
 fun   = @(w,x) sin(w.*x);
 param = {a; A; w; fun};
 IC    = -1;
 [t,m] = ode45(@EOM,[0 1],IC,[],param);
 plot(t,m)
 xlabel('t')
 ylabel('m')
 grid
 end
 function dmdt = EOM(t, m, param)
 a   = param{1};
 A   = param{2};
 w   = param{3};
 fun = param{4};
 dmdt = a*exp(A*fun(w,t) + (2 - m)^2);
 end
Save both functions in the same .m-file and with name my_EOM.m. Execute and enjoy.
2 Commenti
Più risposte (1)
  Orion
      
 il 29 Ott 2014
        you can rewrite your equation as :
dmdt + a*exp(Asin(wt)) * exp((2-m)^2) = 0
which is of the form of
y'(t) + f(t)y(t) = g(t)
with
y'(t) = dmdt
f(t) = a*exp(Asin(wt))
y(t) = exp((2-m)^2)
g(t) = 0
Look how it is resolved and just adapt it to your problem.
0 Commenti
Vedere anche
Categorie
				Scopri di più su Ordinary Differential Equations in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!