- #1
adwodon
- 13
- 0
Ok so I am a student and we've started doing matlab, unforunately I was ill for the last session so I am currently doing it at home myself. The question is unassessed (we are given a few questions then a final assessed question with each session), so if any solutions could have a brief explanation of where they've come from so I understand what's going on.
The first question of the session (our 3rd session 'solving ode's with MATLAB') is as follows:
Using the following given function (projectile.m):
function dydt=projectile(t,y)
g=9.8;
dydt=zeros(2,1); %a column vector
dydt(1)=y(2);
dydt(2)=-g;
end
and the following commands:
>> [T,Y]=ode45(@projectile,[0 12],[0 10]);
>> plot(T,Y(:,1),'-',T,Y(:,2),'-.')
a) Modify the function so that you now solve differential equations for a projectile that is launched at an angle to the horizontal of 60 degrees with an initial velocity of 100m/s at x=0m and y=0m. Set the calculation span of 20 seconds with increments of 0.1 seconds.
My attempt:
[T,Y]=ode45(@projectile,[0:0.1:20],[0 100]);
I know that this will change the velocity and the time span, but how I do I change the angle, and make sure its at x=0?
b) Include the call to the ODE solver function in a separate m-file script as well as the commands to plot the trajectory of the projectile i.e. y vs x. Use the script to prompt you to input the initial conditions including velocity, angle and intial x an y positions as well as the time interval over which you find the solutions.
My attempt:
As I've not done the first part I've not really started this, I am not sure what the first part is asking but I am guessing for the inputs I just do something along the lines of:
t_initial=input('Time Start = ')
t_increment=input('Time Increment = ')
t_final=input('Time Finish = ')
y0=input('Initial y = ')
v=input('Velocity = ')
[T,Y]=ode45(@projectile,[t_initial:t_increment:t_final],[y0 v]);
Then add the part for angle and initial x when I know what they are.
c) To check your solution, overlay a plot of the x and y positions calculated from the analytical solutions to these equations.
Not sure on this one
Matlab is all pretty new to me so I am having a bit of trouble just understanding what some of the questions are asking.
The first question of the session (our 3rd session 'solving ode's with MATLAB') is as follows:
Using the following given function (projectile.m):
function dydt=projectile(t,y)
g=9.8;
dydt=zeros(2,1); %a column vector
dydt(1)=y(2);
dydt(2)=-g;
end
and the following commands:
>> [T,Y]=ode45(@projectile,[0 12],[0 10]);
>> plot(T,Y(:,1),'-',T,Y(:,2),'-.')
a) Modify the function so that you now solve differential equations for a projectile that is launched at an angle to the horizontal of 60 degrees with an initial velocity of 100m/s at x=0m and y=0m. Set the calculation span of 20 seconds with increments of 0.1 seconds.
My attempt:
[T,Y]=ode45(@projectile,[0:0.1:20],[0 100]);
I know that this will change the velocity and the time span, but how I do I change the angle, and make sure its at x=0?
b) Include the call to the ODE solver function in a separate m-file script as well as the commands to plot the trajectory of the projectile i.e. y vs x. Use the script to prompt you to input the initial conditions including velocity, angle and intial x an y positions as well as the time interval over which you find the solutions.
My attempt:
As I've not done the first part I've not really started this, I am not sure what the first part is asking but I am guessing for the inputs I just do something along the lines of:
t_initial=input('Time Start = ')
t_increment=input('Time Increment = ')
t_final=input('Time Finish = ')
y0=input('Initial y = ')
v=input('Velocity = ')
[T,Y]=ode45(@projectile,[t_initial:t_increment:t_final],[y0 v]);
Then add the part for angle and initial x when I know what they are.
c) To check your solution, overlay a plot of the x and y positions calculated from the analytical solutions to these equations.
Not sure on this one
Matlab is all pretty new to me so I am having a bit of trouble just understanding what some of the questions are asking.