https://courses.grainger.illinois.edu/bioe476/fa2019/homeworks/BIOE 476_Fall 2019_HW3_solutions.pdf