Integrating a constant?

14 次查看(过去 30 天)
This is more of a physics question than a Matlab question, but given an instantaneous velocity vx and a time increment dt, how do you numerically integrate to get a displacement? Analytically, this would usually be pretty straightforward since you'd have a function for the velocity, but given that vx is just a number, how do you do this?

采纳的回答

Walter Roberson
Walter Roberson 2023-8-8
format long g
constant = 1.23456;
constantFun = @(x) constant*ones(size(x));
attempt1 = integral(constantFun, 0, 10)
attempt1 =
12.3456
attempt2 = integral(@(x)constant, 0, 10, 'ArrayValued', true)
attempt2 =
12.3456
That is, the trick is that unless you use ArrayValued, integral() is going to pass in a vector of locations to integrate at, and you need to return a value for each of those locations. If you were to try integral(@(x)constant, 0, 10) then it would pass in a vector x but you would be only returning a scalar result no matter how big x was, and that would fail.
  2 个评论
L'O.G.
L'O.G. 2023-8-8
编辑:L'O.G. 2023-8-8
Thanks, so that's numerically integrating over a function that is constant over the entire interval. Is that correct? Also, like in my original post (I know this is a conceptual question), does it even make sense to numerically calculate a displacement from an instantaneous velocity where the latter is a particular number rather than a function? I am trying to understand this.
Walter Roberson
Walter Roberson 2023-8-8
If what you have is a vector of times and a vector of corresponding vx, then you can use cumtrapz . That function would also be suitable if what you have is a constant time-step and a vector of vx over time.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by