Trapezoidal rule to find total work?
조회 수: 3 (최근 30일)
이전 댓글 표시
I'm given 6 values for time, Force, and velocity. And I'm told to find total work with trapezoidal rule. (first time value is zero)
Does this seem correct? I excluded the code where I assign t=[0,#, #,...] & v=[.2, #, #...] & F=[2.0, #, #...]
pos(1)=0
work(1)=0
totalwork=0
for i=2:length(t)
area=(v(i)+v(i-1))*(t(i)-t(i-1))/2
pos(i)=pos(i-1) + area
work(i)= (pos(i) + pos(i-1))*(F(i)-F(i-1))/2
totalwork= totalwork + work(i)
end
totalwork
댓글 수: 2
David Goodmanson
2018년 3월 28일
편집: David Goodmanson
2018년 3월 28일
Hi Rachel,
you should take a look at the (pos(i) + pos(i-1))*(F(i)-F(i-1))/2 term. If the force is constant everywhere, your expression will produce zero for the total work. So you need to describe the correct trapezoid.
채택된 답변
Roger Stafford
2018년 3월 28일
편집: Roger Stafford
2018년 3월 28일
I would think your code should be this:
work = 0;
for k = 2:length(t)
work = work + (F(k)+F(k-1))/2*(v(k-1)+v(k))/2*(t(k)-t(k-1));
end
That is, the quantity "(v(k-1)+v(k))/2*(t(k)-t(k-1))" is the approximate displacement during the time interval t(k-1) to t(k), and if it is multiplied by the average force (trapezoid rule), "(F(k)+F(k-1))/2", during that time interval you would get the approximate work done then. The sum of the five work values should give you the total work done.
[Addendum: Or perhaps you could use this:
work = 0;
for k = 2:length(t)
work = work + (F(k)*v(k)+F(k-1)*v(k-1))/2*(t(k)-t(k-1));
end
because you are approximating the integral of F*v with respect to time, t.]
댓글 수: 2
Roger Stafford
2018년 3월 28일
편집: Roger Stafford
2018년 3월 28일
" I just tried both those sections of code you included and they give different answers." Yes, they are not identical, but are different approximations. Assuming F and v vary in a reasonably smooth fashion, they should not be greatly different. It is the difference between
(F(k)*v(k)+F(k-1)*v(k-1))/2
and
(F(k)*v(k)+F(k)*v(k-1)+F(k-1)*v(k)+F(k-1)*v(k-1))/4
It is not clear which of these best represents the trapezoidal rule. I would hazard the guess that the first of these (that is, the second in the answer) is likely to be the best.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!