Info
この質問は閉じられています。 編集または回答するには再度開いてください。
Need Help Transcribing differential equations in to Matlab code
4 ビュー (過去 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!