Solving a system of ODEs with conditionally defined coefficient
1 次查看(过去 30 天)
显示 更早的评论
Hi, I want to plot on the interval the solution of the following system of ODEs
with the initial conditions
,
where
.
I wrote the function, by defining the coefficient f, using "piecewise" sintax:
function dzdt=odefunw1(t,z)
syms t
f=piecewise(0<=t<1, -2*t^2+3*t, t>=1, 1/t);
dzdt=zeros(2,1);
dzdt(1)=z(2);
dzdt(2)=z(1)-f*z(2);
end
In the Command Window, I wrote
tspan = [0 1000];
z0 = [0.1 0.1];
[t,z] = ode45(@(t,z) odefunw1(t,z), tspan, z0);
plot(t,z(:,1),'g',t,z(:,2),'b')
But several errors occured. Where do I wrong and how could I fix it? Thanks in advance.
0 个评论
采纳的回答
darova
2019-12-15
replace
f=piecewise(0<=t<1, -2*t^2+3*t, t>=1, 1/t);
with
if t >= 1
f = 1/t;
else
f = -2*t^2+3*t;
end
3 个评论
更多回答(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!