Solving ODEs using matlab (ode45)

Hello,
I am new to matlab. I was trying to follow an instruction from mit.edu.
I want to use ode45 to solve ODEs.
I have the following in my function page:
function dxy = diffxy (t, xy)
x = xy(1);
xdot = xy(2);
y = xy(3);
xdot = xdot;
ydot = 3*x+5;
xdoubledot = 3-ydot+2*xdot
dxy = [xdot; xdoubledot; ydot]
To get a solution, I type [T, XY] ode45 ('diffxy', 0, 10, [0 1 0]) in my command window (t from 0 to 10 and the initial value of x is 0, xdot is 1, and ydot is 0). But the following message :
??? [T, XY] ode45 ('diffxy', 0 10, [0 1 0])
|
Error: Unexpected MATLAB expression.
I wonder if anyone could please help.
Thankyou!
Pazzo

1 comentario

Jan
Jan el 20 de Jul. de 2013
Editada: Jan el 20 de Jul. de 2013
What is "my function page"?
I've formatted your code. Please read the "? Help" link to find out, how to do this by your own. Thanks.
You need an additional "=" to assign the output.

Iniciar sesión para comentar.

Respuestas (3)

Matt Kindig
Matt Kindig el 19 de Jul. de 2013
Did you forget the assignment sign?
[T, XY] = ode45 ('diffxy', 0 10, [0 1 0])

2 comentarios

Pazzo Giampalo
Pazzo Giampalo el 20 de Jul. de 2013
thank you Matt, but no, that didn't work. I guess my question is, when I have the function page written out, how do I call that function (execute it) in my command window? I tried to look up online, but still not figure it out using ode45.
Jan
Jan el 20 de Jul. de 2013
Please explain "didn't work" with details. And we have to know, where you have written the shown code.

Iniciar sesión para comentar.

Pazzo
Pazzo el 3 de Ag. de 2013

0 votos

Jan,
I found out that I should add a bracket, [ ],along with an equal sign, =, to make it work.
thank you for your help though.
Pazzo
SANDEEP KUMAR R
SANDEEP KUMAR R el 14 de Sept. de 2016

0 votos

Instead of 'diffxy' use @diffxy in ode45

Etiquetas

Preguntada:

el 19 de Jul. de 2013

Respondida:

el 14 de Sept. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by