How to make a function proceed in time when t is unknown
1 view (last 30 days)
Show older comments
Maria Andersson
on 2 Feb 2014
Commented: Maria Andersson
on 2 Feb 2014
Hi!
I have a function, for example speed as following:
v= v0 + a.*(t-t0);
If I have the input variables v0, a and t0 but t is unknown and I know that for this specific step the process will continue until v=-20 m/s. How can I make matlab plot the whole process with small time steps (dt) until the speed is -20 m/s?
I'm thinking about using a while function such as:
while v>=-20
v0=46;
t0=2;
a=-9.81;
v= v0+a*(t-t0);
end
It would be great if anyone could help me with that cause I am having real hard trouble to find how this should be done and trial and error does not seem to be the best solution!
Thanks
0 Comments
Accepted Answer
Mischa Kim
on 2 Feb 2014
Edited: Mischa Kim
on 2 Feb 2014
I suggest computing the time tend at which v=-20 m/s by hand, since it is so simple and then use
v0 = 46;
t0 = 2;
a = -9.81;
t = linspace(t0, tend, 50);
for ii = 1:length(t)
v(ii) = v0 + a*(t(ii) - t0);
end
Alternatively, you can use your while loop instead
v(1) = v0;
t(1) = t0;
dt = 0.1; % or any other value
ii = 1;
while v(ii) >= -20
ii = ii + 1;
t(ii) = t(ii - 1) + dt;
v(ii) = v(ii - 1) + a*(t(ii) - t0);
end
2 Comments
Mischa Kim
on 2 Feb 2014
Edited: Mischa Kim
on 2 Feb 2014
Yep, as I was suggesting, compute tend by hand. Or add another line
tend = (-20 - v0)/a + t0;
The problem with the while-loop is that you might not exactly hit the -20 m/s. You can, but this will make your algorithm much more complex.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!