MATLAB: How to plot a first order differential equation with singular point

MATLABode45

Is there a way to plot a first or second order differential equation with singular point? Example equation:
(1-y^2)*y" + 5*y' + 3*y = 0
Usually I get error message from ode about division by zero.

Best Answer

Save this file as odef.m
function dx=odef(t,x)
dx=zeros(2,1)
dx(1)=x(2);
dx(2)=(-5*x(2)-3*x(1))/(1-x(1)^2)
Then call it
%y'(0)=0.1 and y(0)=0.1 are initial conditions
tspan=[0 10]
[t,y]=ode45(@odef,tspan,[0.1 ;0.1])
plot(t,y)
Related Question