Skip to content

Instantly share code, notes, and snippets.

@lucaschain
Last active November 7, 2017 19:22
Show Gist options
  • Save lucaschain/466c66923f057e66827acd018ad1fe67 to your computer and use it in GitHub Desktop.
Save lucaschain/466c66923f057e66827acd018ad1fe67 to your computer and use it in GitHub Desktop.
minimization tests
require 'minimization'
# imita a calculadora de forma burra
def calculate(net_amount)
net_amount * 1.1
end
# encapsula o processo de minimização
def minimize (min, max, desired)
puts "minimizing between #{min} and #{max}. desired is #{desired}"
min = Minimization::Brent.new(min, desired, proc {|net_amount|
(calculate(net_amount) - max) ** 2
})
min.iterate
puts "found #{min.x_minimum.round(2)}"
end
# define minimum e maximum de net amount
minimum = 2000
maximum = 8000
# roda a minimização várias vezes pra validar
minimize(minimum, maximum, 6000)
minimize(minimum, maximum, 7000)
minimize(minimum, maximum, 8000)
minimize(minimum, maximum, 9000)
minimize(minimum, maximum, 10000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment