MATLAB Plotting Two First Order ODEs and Two Second Order ODEs

AI Thread Summary
To plot two first-order ODEs y(1) and y(2) against each other, use the command plot(Y(1,:), Y(2,:) for a matrix Y where rows represent different variables. For second-order ODEs, define y(1) = X, y(2) = X', y(3) = Z, and y(4) = Z' to convert them into first-order equations. When implementing in Matlab, ensure that all variables are properly defined and initialized, including y(4), to avoid errors. Providing initial conditions for the solver is crucial for successful execution.
sara_87
Messages
748
Reaction score
0

Homework Statement



I have two questions:
1) If i have two first order ODE y(1) and y(2) (in terms of time), i know how to plot y(1) versus time and y(2) versus time but i don't know how to plot y(2) versus y(1)

2)I have two second order ODES X''=... and Z''=... to solve this, we make the substitutions y(1)=X, y(2)=X', y(3)=Z, and y(4)=Z'
then we have two first order ODEs: y(2)'=... and y(4)'=...
I typed this into Matlab (dydt=[(the equation for y(2)'; the equation for y(4)']) but an error came up since i didnt define y(4). how do i do this?

Homework Equations





The Attempt at a Solution


1) i tried putting:
plot(y(1),y(:,2)), and i also tried plot(y(1),y(2)) but these didnt work.


Any help would be very much appreciated.
Than you.
 
Physics news on Phys.org
sara_87 said:

Homework Statement



I have two questions:
1) If i have two first order ODE y(1) and y(2) (in terms of time), i know how to plot y(1) versus time and y(2) versus time but i don't know how to plot y(2) versus y(1)



The Attempt at a Solution


1) i tried putting:
plot(y(1),y(:,2)), and i also tried plot(y(1),y(2)) but these didnt work.

Than you.

If you have two vectors x and y, you do plot(x,y). If you have two rows of a matrix Y, you do plot(Y(1,:),Y(2,:)) to plot the first row on the x-axis and the second on the y-axis. Similarly, if you have a matrix with two columns, you use plot(Y(:,1),Y(:,2)). Y(i,j) is the element in the i-th row and j-th column of the matrix Y. The colon (:) indicates to take all elements in that row or column. So Y(1,:) is all elements in the first row of Y.

2)I have two second order ODES X''=... and Z''=... to solve this, we make the substitutions y(1)=X, y(2)=X', y(3)=Z, and y(4)=Z'
then we have two first order ODEs: y(2)'=... and y(4)'=...
I typed this into Matlab (dydt=[(the equation for y(2)'; the equation for y(4)']) but an error came up since i didnt define y(4). how do i do this?

Homework Equations

I don't quite understand what you're saying here. Did you give the solver initial conditions for both equations? If you post the code and error I could be more helpful here.
 
for (1), they're not matrices, they're just equations in terms of y(1) and y(2).

for (2), I've lost my documents so if i find it i'll post another time.
Thank u.
 
ghyt y
 

Similar threads

Replies
4
Views
1K
Replies
5
Views
2K
Replies
8
Views
2K
Replies
4
Views
2K
Replies
2
Views
3K
Replies
5
Views
2K
Back
Top