verify method added

This commit is contained in:
hg 2016-08-07 12:58:04 +02:00
parent a1014ed257
commit f769986d80

34
main.py
View File

@ -9,14 +9,17 @@ import random
startTime = 0
lastTime = 0
def log(msg, reset=False):
global startTime
global startTime, lastTime
currentTime = time.time()
if reset:
startTime = currentTime
print("%f: %s" % (currentTime - startTime, msg))
if lastTime == 0:
lastTime = currentTime
print("%f %f: %s" % (currentTime - startTime, currentTime - lastTime, msg))
lastTime = currentTime
def s_permutations(seq):
items = [[]]
@ -100,6 +103,28 @@ def generate(order, lowerBound, upperBound):
return matrix
def verify(m, v):
coeffs = m[:-1]
results = m[-1]
epsilons = []
good = True
MAX_EPSILON = 1E-10
worstEpsilon = 0.0
for i in range(len(results)):
res = 0.0
for j in range(len(results)):
res += coeffs[j][i] * v[j]
epsilon = res - results[i]
if epsilon > MAX_EPSILON:
good = False
if abs(epsilon) > worstEpsilon:
worstEpsilon = abs(epsilon)
epsilons.append(res - results[i])
return (good, worstEpsilon, epsilons)
#g = [[1.0,2.0,10.0], [5.0,3.0,11.0], [7.0,4.0,3.0], [8.0,9.0,13.0]]
#g = [[599.1290806728277, 80.40433203454268, 615.5120772027384], [187.33506822036273, 663.7490700388757, 677.5997857592452], [956.929845461785, 456.8619830134234, 419.21973493934263], [61.824473951393344, 342.8555419523176, 216.32654519677496]]
@ -115,6 +140,9 @@ for i in range(2, 10+1):
print(i)
print(g)
print(v)
e = verify(g, v)
print(e)
print