Solving nonlinear DE by reduction of order on matlab

12 views (last 30 days)
Nice of you all to answer my question.
I tried to graph the nonlinear ordinary DE in a textbook(Advanced Engineering Mathematics 6th Ed by Zill Wright).\
the DE is like this.
dy/dx = u
du/dx = x + y - y^2
Written the codes like below, but only gained 2 graphs each.
function dydt = odesys(t, y)
dydt(1) = y(1);
dydt(2) = t + y(2) - y(2)^2;
dydt = [dydt(1); dydt(2)];
[t, y] = ode45(@odesys, [-1 1], [-1 1])
plot(t, y);
I want to get the graph as on the textbook, like the picture right below.(In case of copyright, I couldn't get original picture in the book)
What is wrong with my code?

Accepted Answer

Fabio Freschi
Fabio Freschi on 11 Aug 2021
Edited: Fabio Freschi on 11 Aug 2021
There are some typos in your description of the problem. Here the correct version
% your ODE - note that (y(1) and y(2) are exchanged)
odesys = @(t,y)[y(2); t+y(1)-y(1)^2];
% soluiton - note that the time span is [0 10] and the initial conditions
% are set for t = 0;
[t, y] = ode45(odesys, [0 10], [-1 1]);
% plot
figure, plot(t,y(:,1));
grid on
규민 권
규민 권 on 13 Aug 2021
Thank you again! Very helpful for me to be handling MATLAB better. Have a good day!

Sign in to comment.

More Answers (0)


Find more on Programming in Help Center and File Exchange




Community Treasure Hunt

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

Start Hunting!