# how to solve non linear differential equations

3 views (last 30 days)

Show older comments

dx(t)/dt=y(t)

dy(t)/dt=-(1/r+g+a+b|x(t)|)y(t)/c-x(t)/(lc)

t=-0.05:0.01:0.05

r = 1430;

a = -0.0683;

b = 0.0676;

c = 36*10^-9;

g = -0.0676;

l=27

i want to plot phase portrait of (x(t),y(t)) and plots for (t,x(t)),(t,y(t))

##### 0 Comments

### Answers (1)

Bjorn Gustavsson
on 3 Mar 2021

Edited: Bjorn Gustavsson
on 4 Mar 2021

Have a look at the help and documentation of ode45 and the numerous ode-examples.

In brief to solve this ODE-system write a matlab-function for the derivatives:

function dxdtdydt = your_ode(t,xy,pars)

r = pars(1);

a = pars(2);

b = pars(3);

c = pars(4);

g = pars(5);

l = pars(6);

y = xy(2);

x = xy(1);

dxdt = xy(2);

dydt = -(1/r+g+a+b*abs(x)*y/c-x/(l*c));

dxdtdydt = [dxdt;

dydt];

That ode you then integrate from some initial state over some time-period of interest

r = 1430;

a = -0.0683;

b = 0.0676;

c = 36*10^-9;

g = -0.0676;

l=27;

pars = [r,a,b,c,g,l];

t = -0.05:0.01:0.05;

x0y0 = [0,1]; % I wouldn't know.

[t,xy] = ode45(@(t,xy) your_ode(t,xy,pars),t,x0y0);

HTH

##### 13 Comments

Bjorn Gustavsson
on 5 Mar 2021

### See Also

### Community Treasure Hunt

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

Start Hunting!