https://courses.grainger.illinois.edu/ece443/sp2025/secure/HW/HW3/HW3.pdf