Trapezoidal rule to find total work?
    16 views (last 30 days)
  
       Show older comments
    
    Rachel Dawn
 on 28 Mar 2018
  
    
    
    
    
    Edited: Roger Stafford
      
      
 on 28 Mar 2018
            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 Comments
  David Goodmanson
      
      
 on 28 Mar 2018
				
      Edited: David Goodmanson
      
      
 on 28 Mar 2018
  
			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.
Accepted Answer
  Roger Stafford
      
      
 on 28 Mar 2018
        
      Edited: Roger Stafford
      
      
 on 28 Mar 2018
  
      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 Comments
  Roger Stafford
      
      
 on 28 Mar 2018
				
      Edited: Roger Stafford
      
      
 on 28 Mar 2018
  
			" 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.
More Answers (0)
See Also
Categories
				Find more on Spline Postprocessing in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

