Solving nonlinear DE by reduction of order on matlab

6 visualizaciones (últimos 30 días)
규민 권
규민 권 el 11 de Ag. de 2021
Comentada: 규민 권 el 13 de Ag. de 2021
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.
[sourcecode]
function dydt = odesys(t, y)
dydt(1) = y(1);
dydt(2) = t + y(2) - y(2)^2;
dydt = [dydt(1); dydt(2)];
end
[command]
[t, y] = ode45(@odesys, [-1 1], [-1 1])
plot(t, y);
grid
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?

Respuesta aceptada

Fabio Freschi
Fabio Freschi el 11 de Ag. de 2021
Editada: Fabio Freschi el 11 de Ag. de 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
  3 comentarios
Fabio Freschi
Fabio Freschi el 12 de Ag. de 2021
My pleasure. Regarding your questions
  1. the return outputs are the arrays t and y. The dimensions of t are Nx1, being N the number of time steps. This number is not known a priori, since ode45 uses adaptive step size. The dimensions of y is NxM, where M is the number of variables in your ODE. In this case M = 2. I understood you wanted only y(:,1), that is the variable y in your model.
  2. your way to call ode45 was correct, because you defined your ODE as an external function. I defined the model inline with an anonymous function. The data type of the anonymous function is a function_handle, so the @ symbol was not required in the call.
규민 권
규민 권 el 13 de Ag. de 2021
Thank you again! Very helpful for me to be handling MATLAB better. Have a good day!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by