solving 2nd order nonlinear ode Numeric solution by using ode45

์กฐํšŒ ์ˆ˜: 5 (์ตœ๊ทผ 30์ผ)
Aseel Alamri
Aseel Alamri 2020๋…„ 10์›” 4์ผ
๋Œ“๊ธ€: Alan Stevens 2020๋…„ 10์›” 4์ผ
the eqution
d^2u/dt -k(1-u^2)du/dt+au = 0
initial condition
u(0)=2 (dimensionless); du/dt (0)=0
question
(a) With ๐‘˜๐‘˜ = 1.0 s-1, determine the value of ๐‘Ž๐‘Ž that would give a heart rate of 1.25 beats/second and Graphically display ๐‘ข๐‘ข(t) for this value of ๐‘Ž๐‘Ž and 0 โ‰ค tโ‰ค 5 ๐‘ ๐‘  . (25 points).
(b) Graphically display ๐‘ข๐‘ข(t) for your chosen values ๐‘˜๐‘˜ and ๐‘Ž๐‘Ž and 0 โ‰ค t โ‰ค 5 ๐‘ ๐‘  . Interpret the results.

์ฑ„ํƒ๋œ ๋‹ต๋ณ€

Alan Stevens
Alan Stevens 2020๋…„ 10์›” 4์ผ
This is the basic structure for solving the ode.
u0 = 2;
v0 = 0;
tspan = [0 5];
k = 1;
a = 25;
[t,U] = ode45(@odefn, tspan, [u0 v0],[],k,a);
u = U(:,1);
v = U(:,2);
plot(t,u),grid
xlabel('t'),ylabel('u')
function dUdt = odefn(~,U,k,a)
u = U(1);
v = U(2); % v = du/dt
dvdt = k*(1-u^2)*v - a*u;
dUdt = [v;
dvdt];
end
You could investigate fzero to get the value of k that gives 1.25 beats/sec, or adjust it manually (as I did here to get an approximate value).
  ๋Œ“๊ธ€ ์ˆ˜: 4
Aseel Alamri
Aseel Alamri 2020๋…„ 10์›” 4์ผ
great , What about part (b)
Alan Stevens
Alan Stevens 2020๋…„ 10์›” 4์ผ
Try playing with k.

๋Œ“๊ธ€์„ ๋‹ฌ๋ ค๋ฉด ๋กœ๊ทธ์ธํ•˜์‹ญ์‹œ์˜ค.

์ถ”๊ฐ€ ๋‹ต๋ณ€ (0๊ฐœ)

์นดํ…Œ๊ณ ๋ฆฌ

Help Center ๋ฐ File Exchange์—์„œ Ordinary Differential Equations์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by