#!/usr/bin/env ruby target_file = ARGV.shift tau = ARGV.shift.to_f m = ARGV.shift.to_i tau_m = tau * m data = [] open(target_file){|src| src.each{|line| data << line.to_f} } s = 0.0 # s=Y(0) v = 0.0 # v=Y(m) (0...m).each{|i| s += data[i] v += data[i+m] } D = [] D << (v-s)/m (1...(data.size + 1 - 2*m)).each{|i| D << D.last + (data[i-1] - 2*data[i+m-1] + data[i+2*m-1])/m } s = 0.0 (0...(data.size + 1 - 2*m)).each{|i| s += D[i]**2 } puts "AVAR: #{Math::sqrt(s/(data.size + 1 - 2*m)/2)}"