Skip to content

Instantly share code, notes, and snippets.

@hkparker
Created April 9, 2014 22:45
Show Gist options
  • Save hkparker/10326632 to your computer and use it in GitHub Desktop.
Save hkparker/10326632 to your computer and use it in GitHub Desktop.
Simple Riemann sum calculator in ruby
#!/usr/bin/env ruby
def eval_function(function, x_value)
function.upcase!
function.gsub!(/X/, "#{x_value}")
return eval(function)
end
def riemann_sum(function, delta_x, lower_bound, upper_bound)
areas = []
x_value = delta_x+lower_bound
while x_value < upper_bound
areas << eval_function(function.dup, x_value)*delta_x
x_value += delta_x
end
left_hand = areas[0..areas.size-2]
left_hand_area = 0
left_hand.each do |area|
left_hand_area += area
end
return (left_hand_area+left_hand_area+areas[-1])/2
end
if ARGV.size < 4
puts "Usage: ./riemann_sum.rb <formula> <delta_x> <lower_bound> <upper_bound>"
exit
end
puts riemann_sum(ARGV[0].dup,ARGV[1].dup.to_f,ARGV[2].dup.to_f,ARGV[3].dup.to_f)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment