
Need help fixing my ODE45 script
    7 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Stevon Kline
 am 1 Nov. 2019
  
    
    
    
    
    Kommentiert: Stevon Kline
 am 2 Nov. 2019
            My teacher tried helping me build this code for a falling object with resistance. (We did it on paper since we didn't have a computer near at the time.) Given only the acceleration a = g+kv2. With y(0) = 1000, and v(0) = 0. Need to find the time, and velocity when object hits the ground. 
I'm getting empty sets as my outputs....suggestions?
h = 1000;
t0 = 0; tfinal = 15;
tspan = [t0,tfinal];
options = odeset('Events',@landing);
[t,y,te,ye,ie] = ode45(@drag,tspan,[h;0],options);
function dydt = drag(t,y)
k = 1/10;
g = 9.8;
dydt =  [-y(2); g + k*-(y(2)).^2];
end
function [check,stop,direction]=landing(t,y)
check = y(1);
stop = 1;
direction=0;
end
Akzeptierte Antwort
  Takumi
      
 am 1 Nov. 2019
        Since you want to detect when the position becomes zero, the correct description is as follows.
check = y(1);
3 Kommentare
  Takumi
      
 am 1 Nov. 2019
				Change the value of tfinal to about 150 seconds (it takes about 100 seconds to hit the ground) and check the value of te and ye (2) when the calculation is complete .These are the time and velocity when the object hits the ground respectively.
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Ordinary Differential Equations finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


