https://courses.grainger.illinois.edu/ece551/fa2023/secure/HW4_soln.pdf