# D. Scott
# Linear Algebra: TCI
# Code Challenge 11.2
import random
import numpy as np
import matplotlib.pyplot as plt
sizes = list(range(3, 31))
determinants = []
# outer matrix dimension loop (3-30)
for d in range(3,31):
# inner experiment count loop (100)
for i in range(0,100):
dets = []
m1 = np.random.normal(0, 1, d*(d-1))
m2 = np.random.normal(0, 1, (d-1)*d)
A1 = np.array(m1).reshape(d,d-1)
A2 = np.array(m2).reshape(d-1,d)
A = A1@A2
dets.append(np.linalg.det(A))
determinants.append(sum(dets)/len(dets))
fig, ax = plt.subplots()
ax.plot(sizes, determinants, label='Sample Line')
ax.semilogy(sizes, determinants)
ax.set_xlabel('Matrix size')
ax.set_ylabel('Average determinant')
ax.set_title('Matrix size vs Average determinant')
plt.show()