Info
此问题已关闭。 请重新打开它进行编辑或回答。
Need Help Transcribing differential equations in to Matlab code
1 次查看(过去 30 天)
显示 更早的评论
I am trying to transcribe the following differential equation that describes a falling body:
dy/dt=mg/K (1-e^(-K/m t)) (with air resistance)
dy/dt=gt (without air resistance)
I would like to create a function and then call the function using ode45 and then plot a graph. I am still trying to get a good handle of matlab, but I have not been successful.
0 个评论
回答(2 个)
Fabricio Castro
2018-7-7
Hi JB
Your problem is kind of simple to solve. With the following code you will achieve what you want:
%Supose you may want to use a time interval of [0,3] with an initial
%condition y0 equal to 50 meters
timeInterval = linspace(0,3,51);
y0 = 50;
%Defining parameters like mass (m), air resistance (K), and gravity (g)
m = 5;
K = 2;
g = 9.8;
%Using ode45 function to solve the falling body equation
[t,y] = ode45(@(t,y) (m*g)/(K*(1-exp(-K/(m*t)))), timeInterval, y0);
%Plot the result
figure
subplot(1,2,1)
plot(t,((m.*g)./(K.*(1-exp(-K./(m.*t))))),'-bo')
xlabel('time')
ylabel('dy/dt')
title('ODE graph')
set(gca,'FontSize',18)
subplot(1,2,2)
plot(t,y,'-ro')
xlabel('time')
ylabel('y')
title('Solution graph')
set(gca,'FontSize',18)
Thanks
2 个评论
Star Strider
2018-7-7
@Fabricio Castro — We do not supply complete code to homework problems here on MATLAB Answers. The OP must demonstrate an effort. We will then help to get the posted code running.
Star Strider
2018-7-7
The syntax of your function is correct. However you need to spend some time with the documentation.
For future reference, see the documentation on Anonymous Functions (link), and Vectorization (link).
0 个评论
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!