import cust_input import numpy as np from hooke_jeeves_method import hooke_jeeves # variant 28: # f(x) = x1^2 + 16x2^2 n = 2 x0 = np.zeros([n]) print(x0) delta_x = np.zeros([n]) alpha = 2 print("Enter the starting point coordinates:\n") for i in range(n): x0[i] = cust_input.float_input(-1000000000, 1000000000, "Enter %d coordinate (from -1000000000 to 1000000000):\n" %(i+1)) epsilon = cust_input.float_input(0.0000000001, 1, "Enter accuracy (from 0.0000000001 to 1):\n") print("Enter step sizes:\n") for i in range(n): delta_x[i] = cust_input.float_input(0.00001, 1, "Enter step size for %d coordinate (from 0.00001 to 1):\n" %(i+1)) print("\nMinimum point: ", hooke_jeeves(x0, delta_x, epsilon, alpha))
def test_hooke_jeeves_10(self): for i in range(2): self.assertEqual( hooke_jeeves(np.array([7, 6]), np.array([0.6, 0.8]), 0.001, 2)[i], 0)
def test_hooke_jeeves_60(self): for i in range(2): self.assertEqual( hooke_jeeves(np.array([-2000, -2000]), np.array([0.8, 0.8]), 0.001, 2000)[i], 16)
def test_hooke_jeeves_50(self): for i in range(2): self.assertEqual( hooke_jeeves(np.array([-200, -200]), np.array([0.1, 0.1]), 0.001, 20)[i], 0)
def test_hooke_jeeves_40(self): for i in range(2): self.assertEqual( hooke_jeeves(np.array([0, 0]), np.array([0, 0]), 0.1, 2)[i], 0)
def test_hooke_jeeves_30(self): for i in range(2): self.assertEqual( hooke_jeeves(np.array([1, 1]), np.array([0.01, 0.01]), 0.001, 2)[i], 0)