How to solve ODE's and find m(t) using matlab? Urgent!!
    4 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Shubham Maurya
      
 il 25 Lug 2014
  
    
    
    
    
    Commentato: Star Strider
      
      
 il 26 Lug 2014
            Here is the given ODE for which I need a solution:

Please help me on how to do this!!!
2 Commenti
Risposta accettata
  Star Strider
      
      
 il 25 Lug 2014
        
      Modificato: Star Strider
      
      
 il 25 Lug 2014
  
      Use ode45. It’s five lines of code, including the plot:
mdot = @(t,m) sqrt(2E+5.*((1+(0.4-m)./0.5).^-1.4 - 1));
[t,m] = ode45(mdot, [0 1], 0.001);
figure(1)
semilogy(t, real(m), '-b',  t, imag(m), '-g')
grid
3 Commenti
  Star Strider
      
      
 il 26 Lug 2014
				Since I did’t have other information, I chose m(0)=0.001 and ran it from [0 1] in time. With your m(0)=0.4 and time span [0 0.5] the call to ode45 is:
[t,m] = ode45(mdot, [0 0.5], 0.4);
and the entire code is now:
mdot = @(t,m) sqrt(2E+5.*((1+(0.4-m)./0.5).^-1.4 - 1));
[t,m] = ode45(mdot, [0 0.5], 0.4);
figure(1)
plot(t, m, '-*b')
grid
axis([xlim    0  0.5])
With the square root, I’m somewhat surprised that there aren’t two solutions, for instance ±0.4 but the routine produces only one. Yours is a nonlinear equation, and the Symbolic Math Toolbox cannot solve it. (I have it, and I tried that to see what it would do. There is no analytic solution.)
The output doesn’t change from the initial conditions, and is uniformly 0.4 from 0 to 0.5.
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Ordinary Differential Equations in Help Center e File Exchange
			
	Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


