{"kind":"Notebook","sha256":"d798c6b2b3bbde4c235b18173c230eb11bb6b5015a67228b526b6c3a9df9325d","slug":"improved-quadratic-equation-solver","location":"/release/Lab3/Improved_Quadratic_Equation_Solver.ipynb","dependencies":[],"frontmatter":{"title":"Improved Quadratic Equation Solver","kernelspec":{"name":"python3","display_name":"Python 3 (ipykernel)","language":"python"},"authors":[{"nameParsed":{"literal":"Chung Chan","given":"Chung","family":"Chan"},"name":"Chung Chan","affiliations":["City University of Hong Kong"],"id":"contributors-myst-generated-uid-0"}],"github":"https://github.com/dive4dec/cs1302_24a","keywords":[],"affiliations":[{"id":"City University of Hong Kong","name":"City University of Hong Kong"}],"exports":[{"format":"ipynb","filename":"Improved_Quadratic_Equation_Solver.ipynb","url":"/~ccha23/cs1302_24a/build/Improved_Quadratic_E-632d6c7da601b5c325bfcc299de03476.ipynb"}]},"mdast":{"type":"root","children":[{"type":"block","kind":"notebook-code","data":{},"children":[{"type":"code","lang":"python","executable":true,"value":"import math\nimport numpy as np\nfrom ipywidgets import interact","key":"J0psXdOhSJ"},{"type":"output","id":"jquHKJdCP7FUNjWgsJNLM","data":[],"key":"S5YiRUtKfs"}],"key":"TowrPZJAVQ"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"In this notebook, we will improve the quadratic equation solver in the previous lab using conditional executions.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"jIbIQBaLzD"}],"key":"yBA6xkcWT6"}],"key":"dJgDD4hooW"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Discriminant","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"E3csIbJv1F"}],"identifier":"discriminant","label":"Discriminant","html_id":"discriminant","implicit":true,"key":"AUYDcJYRvG"}],"key":"rv1rwy9F22"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Recall that a quadratic equation is","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"xWbAzeqCzM"}],"key":"QuSPTuUhKg"},{"type":"math","identifier":"eq:quadratic","label":"eq:quadratic","html_id":"eq-quadratic","value":"ax^2+bx+c=0","position":{"start":{"line":3,"column":1},"end":{"line":5,"column":1}},"html":"<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>a</mi><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><mi>b</mi><mi>x</mi><mo>+</mo><mi>c</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">ax^2+bx+c=0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.9474em;vertical-align:-0.0833em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.7778em;vertical-align:-0.0833em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span></span>","enumerator":"1","key":"VerQVpFQOP"},{"type":"paragraph","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"text","value":"where ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"F83AA0VoJz"},{"type":"inlineMath","value":"a","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>a</mi></mrow><annotation encoding=\"application/x-tex\">a</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">a</span></span></span></span>","key":"zLGeMbbH0c"},{"type":"text","value":", ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"YUW30hAVJH"},{"type":"inlineMath","value":"b","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>b</mi></mrow><annotation encoding=\"application/x-tex\">b</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6944em;\"></span><span class=\"mord mathnormal\">b</span></span></span></span>","key":"rtvkYrPy2a"},{"type":"text","value":", and ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"f789NaXqZ9"},{"type":"inlineMath","value":"c","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>c</mi></mrow><annotation encoding=\"application/x-tex\">c</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">c</span></span></span></span>","key":"SYgNTrsWNT"},{"type":"text","value":" are real-valued coefficients, and ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"y7OMZv1uJo"},{"type":"inlineMath","value":"x","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi></mrow><annotation encoding=\"application/x-tex\">x</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">x</span></span></span></span>","key":"U0LG9rd3y5"},{"type":"text","value":" is the unknown variable.","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"d86qaKVIYA"}],"key":"S8BiB0kSbI"}],"key":"uEyG1L6cS2"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"proof","kind":"definition","enumerated":true,"children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Discriminant","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"rifOb7t3rp"}],"key":"EIF3YKDyGo"},{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"The disciminant of a quadratic equation is defined as","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"PGKbLYSpdH"}],"key":"hbjIYEj1a4"},{"type":"math","identifier":"eq:discriminant","label":"eq:discriminant","html_id":"eq-discriminant","value":"\\Delta := b^2 - 4ac.","position":{"start":{"line":6,"column":1},"end":{"line":8,"column":1}},"html":"<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi mathvariant=\"normal\">Δ</mi><mo>:</mo><mo>=</mo><msup><mi>b</mi><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>a</mi><mi>c</mi><mi mathvariant=\"normal\">.</mi></mrow><annotation encoding=\"application/x-tex\">\\Delta := b^2 - 4ac.</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em;\"></span><span class=\"mord\">Δ</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">:=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.9474em;vertical-align:-0.0833em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">b</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">4</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">c</span><span class=\"mord\">.</span></span></span></span></span>","enumerator":"2","key":"JsesaLKkJI"}],"enumerator":"1","key":"ps6mVW249s"}],"key":"L6nxjtwhsK"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The discriminant ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"kH3zmrmR1G"},{"type":"text","value":"Δ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"JGJLUUx3q8"},{"type":"text","value":" discriminates the roots","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"MeMydxaoiW"}],"key":"qQ2A9qel47"},{"type":"math","identifier":"roots","label":"roots","html_id":"roots","value":"\\frac{-b\\pm \\sqrt{\\Delta}}{2a}","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"html":"<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mfrac><mrow><mo>−</mo><mi>b</mi><mo>±</mo><msqrt><mi mathvariant=\"normal\">Δ</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">\\frac{-b\\pm \\sqrt{\\Delta}}{2a}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.2897em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.6037em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">−</span><span class=\"mord mathnormal\">b</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">±</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mord sqrt\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9267em;\"><span class=\"svg-align\" style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\" style=\"padding-left:0.833em;\"><span class=\"mord\">Δ</span></span></span><span style=\"top:-2.8867em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"hide-tail\" style=\"min-width:0.853em;height:1.08em;\"><svg xmlns=\"http://www.w3.org/2000/svg\" width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z'/></svg></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.1133em;\"><span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span>","enumerator":"3","key":"ClfDN9ebNW"},{"type":"paragraph","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"of a quadratic equation:","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"WM62cgFdmU"}],"key":"IG2aw1L4S7"}],"key":"rymAKUx0lp"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"proof","kind":"proposition","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"The roots of a quadratic equation ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"eP0VaPnR32"},{"type":"crossReference","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"(","key":"PhAGVmKSmk"},{"type":"text","value":"3","key":"MqbXY0B7jM"},{"type":"text","value":")","key":"BQA3xxR6ia"}],"identifier":"eq:quadratic","label":"eq:quadratic","kind":"equation","template":"(%s)","enumerator":"3","resolved":true,"html_id":"eq-quadratic","remote":true,"url":"/calculators","dataUrl":"/calculators.json","key":"t4nERT0KKb"},{"type":"text","value":" are both equal to","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"WCuyTCzscB"}],"key":"dqAkXuDsgs"},{"type":"math","identifier":"eq:repeated_root","label":"eq:repeated_root","html_id":"eq-repeated-root","value":"-\\frac{b}{2a}","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"html":"<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mo>−</mo><mfrac><mi>b</mi><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">-\\frac{b}{2a}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.0574em;vertical-align:-0.686em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.3714em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></span>","enumerator":"4","key":"Rew9hqU0Ax"},{"type":"paragraph","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"text","value":"if and only if the discriminant is zero, i.e., ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"rMQTJvAWyz"},{"type":"inlineMath","value":"\\Delta=0","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">Δ</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\Delta=0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em;\"></span><span class=\"mord\">Δ</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"Ht6SJdERPh"},{"type":"text","value":".","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"SMiSUYYjO6"}],"key":"kU7qabOy2Q"}],"enumerator":"1","key":"wZHO8PGPW8"}],"key":"qh4NhYohX5"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"For example, if ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Sj7XYDro08"},{"type":"inlineMath","value":"(a,b,c)=(1,-2,1)","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>a</mi><mo separator=\"true\">,</mo><mi>b</mi><mo separator=\"true\">,</mo><mi>c</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mo stretchy=\"false\">(</mo><mn>1</mn><mo separator=\"true\">,</mo><mo>−</mo><mn>2</mn><mo separator=\"true\">,</mo><mn>1</mn><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(a,b,c)=(1,-2,1)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">a</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mord\">−</span><span class=\"mord\">2</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span></span></span></span>","key":"WMfFxCUdLq"},{"type":"text","value":", then","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"fga4XaqClp"}],"key":"THFblxzYUn"},{"type":"math","value":"\\Delta = (-2)^2 - 4(1\\cdot 1) = 0","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"html":"<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi mathvariant=\"normal\">Δ</mi><mo>=</mo><mo stretchy=\"false\">(</mo><mo>−</mo><mn>2</mn><msup><mo stretchy=\"false\">)</mo><mn>2</mn></msup><mo>−</mo><mn>4</mn><mo stretchy=\"false\">(</mo><mn>1</mn><mo>⋅</mo><mn>1</mn><mo stretchy=\"false\">)</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\Delta = (-2)^2 - 4(1\\cdot 1) = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em;\"></span><span class=\"mord\">Δ</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.1141em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\">−</span><span class=\"mord\">2</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641em;\"><span style=\"top:-3.113em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">4</span><span class=\"mopen\">(</span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">⋅</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span></span>","enumerator":"5","key":"fUphjAF7PF"},{"type":"paragraph","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"and so the repeated root is","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"CYp2O3jS2d"}],"key":"eS3zJ9z9gy"},{"type":"math","value":"- \\frac{b}{2a} = \\frac{2}2 = 1.","position":{"start":{"line":7,"column":1},"end":{"line":9,"column":1}},"html":"<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mo>−</mo><mfrac><mi>b</mi><mrow><mn>2</mn><mi>a</mi></mrow></mfrac><mo>=</mo><mfrac><mn>2</mn><mn>2</mn></mfrac><mo>=</mo><mn>1.</mn></mrow><annotation encoding=\"application/x-tex\">- \\frac{b}{2a} = \\frac{2}2 = 1.</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.0574em;vertical-align:-0.686em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.3714em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mord mathnormal\">a</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">b</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.0074em;vertical-align:-0.686em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.3214em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">1.</span></span></span></span></span>","enumerator":"6","key":"Gop3k5TgsL"},{"type":"paragraph","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"children":[{"type":"inlineMath","value":"(x-1)^2 = x^2 - 2x + 1","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><mi>x</mi><mo>−</mo><mn>1</mn><msup><mo stretchy=\"false\">)</mo><mn>2</mn></msup><mo>=</mo><msup><mi>x</mi><mn>2</mn></msup><mo>−</mo><mn>2</mn><mi>x</mi><mo>+</mo><mn>1</mn></mrow><annotation encoding=\"application/x-tex\">(x-1)^2 = x^2 - 2x + 1</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.0641em;vertical-align:-0.25em;\"></span><span class=\"mord\">1</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8974em;vertical-align:-0.0833em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.7278em;vertical-align:-0.0833em;\"></span><span class=\"mord\">2</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">1</span></span></span></span>","key":"bPBg28fCPo"},{"type":"text","value":" as expected.","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"dd6xxjsyCH"}],"key":"FBi2cMr5X7"}],"key":"pNlvAoLsUP"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"exercise","label":"ex:rel_tol","identifier":"ex:rel_tol","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"To determine whether a number ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"mZ75eg8QuW"},{"type":"inlineMath","value":"v","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>v</mi></mrow><annotation encoding=\"application/x-tex\">v</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span></span></span></span>","key":"iyUPJOnGeq"},{"type":"text","value":" is close to ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"VGKV47YnX1"},{"type":"text","value":"0","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"IdqtrIoVSY"},{"type":"text","value":" in relation to the quadratic equation ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"lcFDerVzRh"},{"type":"crossReference","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"(","key":"v2yoR4GMFF"},{"type":"text","value":"3","key":"ZVaK2szxab"},{"type":"text","value":")","key":"wG1KZutiO1"}],"identifier":"eq:quadratic","label":"eq:quadratic","kind":"equation","template":"(%s)","enumerator":"3","resolved":true,"html_id":"eq-quadratic","remote":true,"url":"/calculators","dataUrl":"/calculators.json","key":"OfCTjO5MY5"},{"type":"text","value":", complete the following function to implement a test","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"jktkSF80KT"}],"key":"Ijj8RqG2LL"},{"type":"math","identifier":"eq:rel_tol","label":"eq:rel_tol","html_id":"eq-rel-tol","value":"\\lvert v\\rvert\\leq  \\max\\Set{\\lvert a\\rvert, \\lvert b\\rvert, \\lvert c\\rvert} \\delta_{\\text{rel}}","position":{"start":{"line":6,"column":1},"end":{"line":8,"column":1}},"html":"<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mo stretchy=\"false\">∣</mo><mi>v</mi><mo stretchy=\"false\">∣</mo><mo>≤</mo><mi>max</mi><mo>⁡</mo><mrow><mo fence=\"true\">{</mo><mtext> </mtext><mo stretchy=\"false\">∣</mo><mi>a</mi><mo stretchy=\"false\">∣</mo><mo separator=\"true\">,</mo><mo stretchy=\"false\">∣</mo><mi>b</mi><mo stretchy=\"false\">∣</mo><mo separator=\"true\">,</mo><mo stretchy=\"false\">∣</mo><mi>c</mi><mo stretchy=\"false\">∣</mo><mtext> </mtext><mo fence=\"true\">}</mo></mrow><msub><mi>δ</mi><mtext>rel</mtext></msub></mrow><annotation encoding=\"application/x-tex\">\\lvert v\\rvert\\leq  \\max\\Set{\\lvert a\\rvert, \\lvert b\\rvert, \\lvert c\\rvert} \\delta_{\\text{rel}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mclose\">∣</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">≤</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mop\">max</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top:0em;\">{</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mopen\">∣</span><span class=\"mord mathnormal\">a</span><span class=\"mclose\">∣</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mopen\">∣</span><span class=\"mord mathnormal\">b</span><span class=\"mclose\">∣</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mopen\">∣</span><span class=\"mord mathnormal\">c</span><span class=\"mclose\">∣</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mclose delimcenter\" style=\"top:0em;\">}</span></span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361em;\"><span style=\"top:-2.55em;margin-left:-0.0379em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord text mtight\"><span class=\"mord mtight\">rel</span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span></span>","enumerator":"7","key":"ZGpAdKndru"},{"type":"paragraph","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"children":[{"type":"text","value":"This test is similar to ","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"key":"EoKryZATSQ"},{"type":"inlineCode","value":"math.isclose","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"key":"Ul3ALXkZzq"},{"type":"text","value":", where ","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"key":"aiEwk76qE3"},{"type":"inlineMath","value":"\\delta_{\\text{rel}}\\geq 0","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>δ</mi><mtext>rel</mtext></msub><mo>≥</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">\\delta_{\\text{rel}}\\geq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8444em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em;\">δ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361em;\"><span style=\"top:-2.55em;margin-left:-0.0379em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord text mtight\"><span class=\"mord mtight\">rel</span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">≥</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"HKls27kbVL"},{"type":"text","value":" is the relative tolerance specified by the ","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"key":"Qo74Y7siAO"},{"type":"link","url":"https://peps.python.org/pep-3102/","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"children":[{"type":"text","value":"keyword-only argument","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"key":"llVtEGQaev"}],"urlSource":"https://peps.python.org/pep-3102/","key":"CJYHqHjZmp"},{"type":"text","value":" ","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"key":"bJC6ACBlFs"},{"type":"inlineCode","value":"rel_tol","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"key":"rFCS9BnJBw"},{"type":"text","value":", which has a default value of ","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"key":"cKFilSPWTT"},{"type":"inlineCode","value":"1e-9","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"key":"GD5kfBXxve"},{"type":"text","value":".","position":{"start":{"line":10,"column":1},"end":{"line":10,"column":1}},"key":"fowqp0dlkA"}],"key":"a2sMqop2Kj"}],"enumerator":"1","html_id":"ex-rel-tol","key":"ejNpY5D3mT"}],"key":"zBlkZ0mhIv"},{"type":"block","kind":"notebook-code","data":{"deletable":false,"nbgrader":{"cell_type":"code","checksum":"67c095f4d33ec3a8d990a0ac2695edc6","grade":false,"grade_id":"iszero","locked":false,"schema_version":3,"solution":true,"task":false}},"children":[{"type":"code","lang":"python","executable":true,"value":"def iszero(v, a, b, c, *, rel_tol=1e-9):\n    # YOUR CODE HERE\n    raise NotImplementedError","key":"LjgQbAMO66"},{"type":"output","id":"WWTTsu_n8w01ZSGlBGwJt","data":[],"key":"thCxfMk3BK"}],"key":"xuDg5NAXua"},{"type":"block","kind":"notebook-code","data":{"deletable":false,"editable":false,"nbgrader":{"cell_type":"code","checksum":"5baa57ed1c76535149899aae9eacf057","grade":true,"grade_id":"test_iszero","locked":true,"points":1,"schema_version":3,"solution":false,"task":false}},"children":[{"type":"code","lang":"python","executable":true,"value":"# tests\nassert not iszero(1e-8, 0, 2, 1)\nassert iszero(1e-8, 1, 0, 1, rel_tol=1e-7)\nassert not iszero(5e-9, 1, 2, 0)","key":"SI4CF5J0CW"},{"type":"output","id":"TdyyIxpr787xl0s-KRGfy","data":[],"key":"NmJVOxrRDZ"}],"key":"t1IvThtEYl"},{"type":"block","kind":"notebook-code","data":{"deletable":false,"editable":false,"nbgrader":{"cell_type":"code","checksum":"bff1fba6fc469a371cfb063e4045cb58","grade":true,"grade_id":"htest_iszero","locked":true,"points":1,"schema_version":3,"solution":false,"task":false}},"children":[{"type":"code","lang":"python","executable":true,"value":"# hidden tests","key":"iPcdZMj2wk"},{"type":"output","id":"NtR6-Luj-J2aDDuQzafMo","data":[],"key":"AU7k2kqKBK"}],"key":"gPNkfHAMbP"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"exercise","label":"zero-determinant","identifier":"zero-determinant","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Complete the following function by assigning ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"bxolA92RWs"},{"type":"inlineCode","value":"roots","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"YY5Dg8jcMP"},{"type":"text","value":" only one root when the discriminant is zero using the relative tolerance test in ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"hoh7fa6Obt"},{"type":"crossReference","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Exercise ","key":"cUwNGxeerJ"},{"type":"text","value":"1","key":"CgdwPiw9pN"}],"identifier":"ex:rel_tol","label":"ex:rel_tol","kind":"exercise","template":"Exercise %s","enumerator":"1","resolved":true,"html_id":"ex-rel-tol","key":"fjN9h6yS5Q"},{"type":"text","value":". E.g., if ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"hLj5CtKDCf"},{"type":"inlineCode","value":"(a, b, c) == (1, -2, 1)","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"xUJ00YjqPi"},{"type":"text","value":", then ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"eEHFquDJL9"},{"type":"inlineCode","value":"roots","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"kG3UqZ0mLz"},{"type":"text","value":" should be assigned the value ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"JCbPUC0H1K"},{"type":"inlineCode","value":"1.0","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"kf01AGchEt"},{"type":"text","value":" instead of ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"VkkSqgiHPl"},{"type":"inlineCode","value":"1.0, 1.0","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"ca3bnbjwaR"},{"type":"text","value":".","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"YJwRSBOUHL"}],"key":"sG2i3OlpDF"},{"type":"admonition","kind":"hint","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Hint","key":"bImw7BTPM6"}],"key":"sqyG37DDDx"},{"type":"paragraph","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"children":[{"type":"text","value":"You may use the ","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"uuWSH3Js7n"},{"type":"link","url":"https://docs.python.org/3/reference/compound_stmts.html#if","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"children":[{"type":"inlineCode","value":"if","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"f1UnNi3i7u"},{"type":"text","value":" statement","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"Mych0i8bqF"}],"urlSource":"https://docs.python.org/3/reference/compound_stmts.html#if","key":"kIS4mdLkdq"},{"type":"text","value":" as follows:","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"aRbDFLhHGb"}],"key":"vBxKGmw0LZ"},{"type":"code","lang":"python","value":"def get_roots(a, b, c, *, rel_tol=1e-9):\n    d = b**2 - 4 * a * c    # discriminant\n    if iszero(d, a, b, c, rel_tol=rel_tol):\n        roots = ...  # repeated root\n    else:\n        d **= 0.5\n        roots = ...\n    return root","position":{"start":{"line":11,"column":1},"end":{"line":20,"column":1}},"key":"AnXJSDjdSk"},{"type":"paragraph","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"children":[{"type":"text","value":"Replace ","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"w4fflnA4rZ"},{"type":"inlineCode","value":"...","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"v41kSvDMs9"},{"type":"text","value":" in the above code cell by your code. If you have a better implementation, you need ","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"gy4hnedGHC"},{"type":"emphasis","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"children":[{"type":"text","value":"not","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"BL74aYl4sR"}],"key":"J9TOMqClnr"},{"type":"text","value":" follow the solution template. E.g., you can write your solution entirely using boolean operations without any ","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"NrHwPHSgKI"},{"type":"inlineCode","value":"if","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"WrnD6u26Qe"},{"type":"text","value":" statement.","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"xQ44JAvDXn"}],"key":"hyYZWBQu0e"}],"key":"CdCVW3wNWj"}],"enumerator":"2","html_id":"zero-determinant","key":"xf6s7uSGjR"}],"key":"cdNCKPJR4E"},{"type":"block","kind":"notebook-code","data":{"deletable":false,"nbgrader":{"cell_type":"code","checksum":"95abf5cd59dab1125dc4f7976279bfc7","grade":false,"grade_id":"zero_determininant","locked":false,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"fragment"},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"def get_roots(a, b, c, *, rel_tol=1e-9):\n    d = b**2 - 4 * a * c    # discriminant\n    if iszero(d, a, b, c, rel_tol=rel_tol):\n    # YOUR CODE HERE\n    raise NotImplementedError\n    return roots","visibility":"show","key":"u2si3Qu9KW"},{"type":"output","id":"oS0Z3XtHyoyqI4gClgX3g","data":[],"visibility":"remove","key":"vA54OTQLRM"}],"visibility":"show","key":"rUE61NXQGz"},{"type":"block","kind":"notebook-code","data":{"code_folding":[0],"deletable":false,"editable":false,"nbgrader":{"cell_type":"code","checksum":"e8c362e0e7b5e5fd9e28381852c32c4a","grade":true,"grade_id":"test-zero_determinant","locked":true,"points":1,"schema_version":3,"solution":false,"task":false},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"# tests\nassert np.isclose(get_roots(1, 1, 0), (-1.0, 0.0)).all()\nassert np.isclose(get_roots(1, 0, 0), 0.0).all()","visibility":"hide","key":"JGa9H3kmZM"},{"type":"output","id":"pFjBCMrNNf9UPWaoK4HNB","data":[],"visibility":"remove","key":"ibNe54Htxn"}],"visibility":"show","key":"Cwha1D8SBa"},{"type":"block","kind":"notebook-code","data":{"code_folding":[0],"deletable":false,"editable":false,"nbgrader":{"cell_type":"code","checksum":"ea74289e50129048beb923088ce499c8","grade":true,"grade_id":"hidden_test-zero_determinant","locked":true,"points":1,"schema_version":3,"solution":false,"task":false},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"# hidden tests","visibility":"show","key":"JBrgchsw1i"},{"type":"output","id":"GHY_fextAdZD8oxErzpLL","data":[],"visibility":"show","key":"BIj5W4BdTl"}],"visibility":"remove","key":"c7P7ysyzNi"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"exercise","label":"ex:isclose","identifier":"ex:isclose","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Why use ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"UOP0qoHF8I"},{"type":"inlineCode","value":"iszero(d, a, b, c, ...)","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"qS2ngewz53"},{"type":"text","value":" instead of ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"ZwyoMDBjmi"},{"type":"inlineCode","value":"d == 0","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"MjoppA89Pv"},{"type":"text","value":"?","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"sRvaXzWrnB"}],"key":"orSVBj1vPw"}],"enumerator":"3","html_id":"ex-isclose","key":"nf1hQ61agc"}],"key":"HayORPYQk6"},{"type":"block","kind":"notebook-content","data":{"deletable":false,"nbgrader":{"cell_type":"markdown","checksum":"12889805830e3af64988ae0de141f1b7","grade":true,"grade_id":"isclose","locked":false,"points":1,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"YOUR ANSWER HERE","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"ZyG6iYJcHu"}],"key":"KALmhkxj5C"}],"key":"AKpw0q8uLT"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Linear equation","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"FNvu5OWbiF"}],"identifier":"linear-equation","label":"Linear equation","html_id":"linear-equation","implicit":true,"key":"eHEYSLyoEE"}],"key":"unZjaXiEjs"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"exercise","label":"ex:zero-a","identifier":"ex:zero-a","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Give the name of the error that the formula ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"jy7Xitd3ou"},{"type":"crossReference","kind":"equation","identifier":"roots","label":"roots","children":[{"type":"text","value":"(","key":"zOCpn5bqW5"},{"type":"text","value":"3","key":"ESEnZ4B6q1"},{"type":"text","value":")","key":"NqtEOyRl3l"}],"template":"(%s)","enumerator":"3","resolved":true,"html_id":"roots","key":"RY5ZbS9ZSm"},{"type":"text","value":" implemented in Python will raise when ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"jal1H7RK2Q"},{"type":"inlineMath","value":"a=0","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>a</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">a=0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"ODyEfpcb1F"},{"type":"text","value":". Explain whether it is a runtime error or not.","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"LKjVR2tmMv"}],"key":"Bug4qon7Lf"}],"enumerator":"4","html_id":"ex-zero-a","key":"IogrpKd48w"}],"key":"mNFbhzC0uP"},{"type":"block","kind":"notebook-content","data":{"deletable":false,"nbgrader":{"cell_type":"markdown","checksum":"2834199d60471cb799ae58c813746d4a","grade":true,"grade_id":"zero-a","locked":false,"points":1,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"YOUR ANSWER HERE","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"hTanKLRwAO"}],"key":"cQjENU4VTO"}],"key":"olWScy0r0v"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Nevertheless, the quadratic equation remains valid:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"xtcsjJyVah"}],"key":"jKzE9r8xns"},{"type":"math","value":"bx + c=0,","position":{"start":{"line":3,"column":1},"end":{"line":5,"column":1}},"html":"<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>b</mi><mi>x</mi><mo>+</mo><mi>c</mi><mo>=</mo><mn>0</mn><mo separator=\"true\">,</mo></mrow><annotation encoding=\"application/x-tex\">bx + c=0,</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7778em;vertical-align:-0.0833em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8389em;vertical-align:-0.1944em;\"></span><span class=\"mord\">0</span><span class=\"mpunct\">,</span></span></span></span></span>","enumerator":"8","key":"crG1syuLY5"},{"type":"paragraph","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"text","value":"the root of which is ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"u9MbnpKZNN"},{"type":"inlineMath","value":"x = -\\frac{c}b","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>x</mi><mo>=</mo><mo>−</mo><mfrac><mi>c</mi><mi>b</mi></mfrac></mrow><annotation encoding=\"application/x-tex\">x = -\\frac{c}b</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">x</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.0404em;vertical-align:-0.345em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6954em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">c</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span>","key":"VXQx78ayR7"},{"type":"text","value":".","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"izXnWSaAvU"}],"key":"Eul72EfGtr"}],"key":"aPZr1p1afT"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"exercise","label":"linear","identifier":"linear","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Improve the function ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"lbPj2JVfEx"},{"type":"inlineCode","value":"get_roots","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"iLCI7kAycW"},{"type":"text","value":" to return the root ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"B7aB5VGYVG"},{"type":"inlineMath","value":"-\\frac{c}{b}","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo><mfrac><mi>c</mi><mi>b</mi></mfrac></mrow><annotation encoding=\"application/x-tex\">-\\frac{c}{b}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.0404em;vertical-align:-0.345em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6954em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">c</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span>","key":"V3G4Rs5FKi"},{"type":"text","value":" when ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"WlR0mdzNQm"},{"type":"inlineMath","value":"a=0","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>a</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">a=0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"jxE3DiMWqy"},{"type":"text","value":".","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"Mi8rwWuMQR"}],"key":"Re4nt0kNAJ"},{"type":"admonition","kind":"hint","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Hint","key":"PWPiYKfF43"}],"key":"GktdTynd3K"},{"type":"paragraph","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"children":[{"type":"text","value":"Solution template:","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"wY0Af9Kzyt"}],"key":"mEAdms938n"},{"type":"code","lang":"python","value":"def get_roots(a, b, c, *, rel_tol=1e-9):\n    d = b**2 - 4 * a * c    # discriminant\n    if ...:\n        roots = ...\n    elif iszero(d, a, b, c, rel_tol=rel_tol):\n        roots = ...  # repeated root\n    else:\n        d **= 0.5\n        roots = ...\n    return roots","position":{"start":{"line":11,"column":1},"end":{"line":22,"column":1}},"key":"FOaA9EbwPm"}],"key":"HprDKTDhVN"}],"enumerator":"5","html_id":"linear","key":"dSRZeQ8LH5"}],"key":"X0V5Ez580V"},{"type":"block","kind":"notebook-code","data":{"deletable":false,"nbgrader":{"cell_type":"code","checksum":"b3d2b9768654219aec59bc89d58f1201","grade":false,"grade_id":"linear","locked":false,"schema_version":3,"solution":true,"task":false},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"def get_roots(a, b, c, *, rel_tol=1e-9):\n    d = b**2 - 4 * a * c\n    # YOUR CODE HERE\n    raise NotImplementedError\n    return roots","visibility":"show","key":"SjG1dNJDP6"},{"type":"output","id":"P30w4x1T34-XHWGROOT5C","data":[],"visibility":"remove","key":"EZWF84hO0w"}],"visibility":"show","key":"aIxjAqmQPs"},{"type":"block","kind":"notebook-code","data":{"code_folding":[],"deletable":false,"editable":false,"nbgrader":{"cell_type":"code","checksum":"cc2f2a8fdbfa61094c61c5e02a4b1551","grade":true,"grade_id":"test-linear","locked":true,"points":1,"schema_version":3,"solution":false,"task":false},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"# tests\nassert np.isclose(get_roots(1, 1, 0), (-1.0, 0.0)).all()\nassert np.isclose(get_roots(1, 0, 0), 0.0).all()\nassert np.isclose(get_roots(1, -2, 1), 1.0).all()\nassert np.isclose(get_roots(0, -2, 1), 0.5).all()","visibility":"hide","key":"s21ZRfzWwY"},{"type":"output","id":"95uL1pScf6U7n55tm5JIw","data":[],"visibility":"remove","key":"shXNLgncOr"}],"visibility":"show","key":"NoRSjL5JvB"},{"type":"block","kind":"notebook-code","data":{"code_folding":[0],"deletable":false,"editable":false,"nbgrader":{"cell_type":"code","checksum":"0b77d8b49baaccd677119a45a0a2a230","grade":true,"grade_id":"hidden_test-linear","locked":true,"points":1,"schema_version":3,"solution":false,"task":false},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"# hidden tests","visibility":"show","key":"vyyFzlF0w5"},{"type":"output","id":"ctK8jOmT2rrOpdk3ADvgq","data":[],"visibility":"show","key":"PrK5WXicvt"}],"visibility":"remove","key":"GAm55Web6D"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"heading","depth":2,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Degenerate cases","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"oZw4pDkFKb"}],"identifier":"degenerate-cases","label":"Degenerate cases","html_id":"degenerate-cases","implicit":true,"key":"RG6rND3kp4"}],"key":"STaEKTpY3c"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"What if ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"vgqH46aZZh"},{"type":"inlineMath","value":"a=b=0","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>a</mi><mo>=</mo><mi>b</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">a=b=0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6944em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"FYMjJR7Qzm"},{"type":"text","value":"? In this case, the equation becomes","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"EUCuIXbDdk"}],"key":"Zv6Wz27ugU"},{"type":"math","value":"c = 0","position":{"start":{"line":3,"column":1},"end":{"line":5,"column":1}},"html":"<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>c</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">c = 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span></span>","enumerator":"9","key":"zrmQ0HgPHM"},{"type":"paragraph","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"which is always satisfied if ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"CXHIiLoOaP"},{"type":"inlineMath","value":"c=0","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>c</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">c=0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"tkhHhwReJd"},{"type":"text","value":" but never satisfied if ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"aEAlWjW8R4"},{"type":"inlineMath","value":"c\\neq 0","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>c</mi><mo mathvariant=\"normal\">≠</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">c\\neq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em;\"></span><span class=\"inner\"><span class=\"mord\"><span class=\"mrel\"></span></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"wH6gHdEZdU"},{"type":"text","value":".","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"xy3imdqftg"}],"key":"XvWwxlEOhS"}],"key":"qDNi2U5BoT"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"exercise","label":"degenerate","identifier":"degenerate","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Improve the function ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"kjI9jbb5oK"},{"type":"inlineCode","value":"get_roots","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"JkYc35Q3mo"},{"type":"text","value":" to return root(s) under all the following cases:","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"IuuwvM9A5D"}],"key":"O0ILfm1YWN"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":5,"column":1},"end":{"line":9,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"text","value":"If ","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"xDcyxHhIms"},{"type":"inlineMath","value":"a=0","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>a</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">a=0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"ZdS6ixSoTj"},{"type":"text","value":" and ","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"DfW0iVt8iK"},{"type":"inlineMath","value":"b\\neq 0","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>b</mi><mo mathvariant=\"normal\">≠</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">b\\neq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em;\"></span><span class=\"inner\"><span class=\"mord\"><span class=\"mrel\"></span></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"j43lZc2hXN"},{"type":"text","value":", assign ","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"v754SzpWAa"},{"type":"inlineCode","value":"roots","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"IyDkLjCvI6"},{"type":"text","value":" to the single root ","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"iDQMw1gq7E"},{"type":"inlineMath","value":"-\\frac{c}{b}","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo>−</mo><mfrac><mi>c</mi><mi>b</mi></mfrac></mrow><annotation encoding=\"application/x-tex\">-\\frac{c}{b}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.0404em;vertical-align:-0.345em;\"></span><span class=\"mord\">−</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6954em;\"><span style=\"top:-2.655em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">b</span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.394em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">c</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span>","key":"okWEz8ongq"},{"type":"text","value":".","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"Yp2zJj8YAM"}],"key":"uH5MIfyUU9"},{"type":"listItem","spread":true,"position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"If ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"bktFx6KIus"},{"type":"inlineMath","value":"a=b=0","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>a</mi><mo>=</mo><mi>b</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">a=b=0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6944em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"sY9jQZu2NI"},{"type":"text","value":" and ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"zDMktaKQx7"},{"type":"inlineMath","value":"c\\neq 0","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>c</mi><mo mathvariant=\"normal\">≠</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">c\\neq 0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\"><span class=\"mrel\"><span class=\"mord vbox\"><span class=\"thinbox\"><span class=\"rlap\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em;\"></span><span class=\"inner\"><span class=\"mord\"><span class=\"mrel\"></span></span></span><span class=\"fix\"></span></span></span></span></span><span class=\"mrel\">=</span></span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"HC4c1A2ZMV"},{"type":"text","value":", assign ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"FE2QXpqDwn"},{"type":"inlineCode","value":"roots","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"dxdm9MZfrp"},{"type":"text","value":" to ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"yqJWu2cm7P"},{"type":"inlineCode","value":"None","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"WKZNa6OdvJ"},{"type":"text","value":".","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"j5KWqmBKtV"}],"key":"Mca3kmzxa5"},{"type":"listItem","spread":true,"position":{"start":{"line":7,"column":1},"end":{"line":9,"column":1}},"children":[{"type":"text","value":"If ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"EsifbU0SQQ"},{"type":"inlineMath","value":"a=b=c=0","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>a</mi><mo>=</mo><mi>b</mi><mo>=</mo><mi>c</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding=\"application/x-tex\">a=b=c=0</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">a</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6944em;\"></span><span class=\"mord mathnormal\">b</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em;\"></span><span class=\"mord mathnormal\">c</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0</span></span></span></span>","key":"NF10pzlbGR"},{"type":"text","value":", there are infinitely many roots. Assign to ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"PAV9Ordpth"},{"type":"inlineCode","value":"roots","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"A2LVI0d4Ur"},{"type":"text","value":" the tuple ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"ukyW7NK8lX"},{"type":"inlineCode","value":"-float('inf'), float('inf')","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"oVHDMBiFBL"},{"type":"text","value":".","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"k84giKForW"},{"type":"break","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"lE8TSoBRmh"},{"type":"text","value":"Note that ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"lQJGd4bpWK"},{"type":"inlineCode","value":"float('inf')","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"LRsSvtKZ7u"},{"type":"text","value":" converts the string ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"Wl6iemWf2N"},{"type":"inlineCode","value":"'inf'","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"LuH89wFjeS"},{"type":"text","value":" to a floating point value that represents ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"gTooAlndSO"},{"type":"text","value":"∞","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"fL3igsSPbA"},{"type":"text","value":".","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"gO31SZagcD"}],"key":"L96pWMxlnh"}],"key":"asuDUmY22y"},{"type":"admonition","kind":"caution","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Caution","key":"NWBrfhfzSE"}],"key":"w4SqM9wCmg"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":11,"column":1},"end":{"line":12,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"children":[{"type":"inlineCode","value":"None","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"R2hQhpDvSd"},{"type":"text","value":" a ","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"qir0Cu7n7q"},{"type":"emphasis","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"children":[{"type":"text","value":"Python keyword","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"g6GFcz1ubl"}],"key":"oEyxmxxSPC"},{"type":"text","value":" that refers to a special object. You should ","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"rnD8s305lb"},{"type":"emphasis","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"children":[{"type":"text","value":"NOT","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"K8o1Ysl67Z"}],"key":"ksXJCHg9nc"},{"type":"text","value":" regard it as a string or quote it like ","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"PnzS1REG6D"},{"type":"inlineCode","value":"\"None\"","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"LlMlXL7ESw"},{"type":"text","value":".","position":{"start":{"line":11,"column":1},"end":{"line":11,"column":1}},"key":"TXc0rThPY4"}],"key":"TqyQxa1T5q"},{"type":"listItem","spread":true,"position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"children":[{"type":"inlineCode","value":"float('inf')","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"SyxCeJZUfB"},{"type":"text","value":" converts the string ","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"JU1usp9WyW"},{"type":"inlineCode","value":"'inf'","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"Q2secYH8Be"},{"type":"text","value":" to a floating point number no smaller than any other floating point numbers. You should ","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"AuXpTuPBE2"},{"type":"emphasis","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"children":[{"type":"text","value":"NOT","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"MG2fbGMMtz"}],"key":"TnXwPfBU3x"},{"type":"text","value":" write ","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"cbkm0nJhfK"},{"type":"inlineCode","value":"inf","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"mj8bjwFh9K"},{"type":"text","value":", which needs not refer to ","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"RIn9Jvejex"},{"type":"inlineCode","value":"float('inf')","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"E7Kb1VmFUG"},{"type":"text","value":".","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"tV3rxXBB1o"}],"key":"Xxyazuz5ha"}],"key":"yC2j7cF16P"}],"key":"v1mzGFlbbN"}],"enumerator":"6","html_id":"degenerate","key":"xfQn0Mgugx"}],"key":"G5HK3o6R9D"},{"type":"block","kind":"notebook-code","data":{"deletable":false,"nbgrader":{"cell_type":"code","checksum":"328a4dc8df5214b3e988f490d30ea974","grade":false,"grade_id":"degenerate","locked":false,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"skip"},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"def get_roots(a, b, c, *, rel_tol=1e-9):\n    d = b**2 - 4 * a * c\n    # YOUR CODE HERE\n    raise NotImplementedError\n    return roots","visibility":"show","key":"kQuaOMRH8N"},{"type":"output","id":"W8Bw4y26ZGXLLHl5aA2SD","data":[],"visibility":"remove","key":"TOw0twIwYK"}],"visibility":"show","key":"PwN077gx1u"},{"type":"block","kind":"notebook-code","data":{"code_folding":[0],"deletable":false,"editable":false,"nbgrader":{"cell_type":"code","checksum":"d9a28fdc2a389dd0c7c64957c4c97828","grade":true,"grade_id":"test-degenerate","locked":true,"points":1,"schema_version":3,"solution":false,"task":false},"slideshow":{"slide_type":"skip"},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"# tests\nassert np.isclose(get_roots(1, 1, 0), (-1.0, 0.0)).all()\nassert np.isclose(get_roots(1, 0, 0), 0.0).all()\nassert np.isclose(get_roots(1, -2, 1), 1.0).all()\nassert np.isclose(get_roots(0, -2, 1), 0.5).all()\nassert np.isclose(get_roots(0, 0, 0), (-float('inf'), float('inf'))).all()\nassert get_roots(0, 0, 1) is None","visibility":"hide","key":"F4Zk5wrPtY"},{"type":"output","id":"TbGw780D6q_4_TSx5rddd","data":[],"visibility":"remove","key":"z6tTCudfw6"}],"visibility":"show","key":"A1URdMb7bY"},{"type":"block","kind":"notebook-code","data":{"code_folding":[0],"deletable":false,"editable":false,"nbgrader":{"cell_type":"code","checksum":"8ee8bbfeb16c1bf80e555537f093154d","grade":true,"grade_id":"test_test-degenerate","locked":true,"points":1,"schema_version":3,"solution":false,"task":false},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"# hidden tests","visibility":"show","key":"Q83fzCg43G"},{"type":"output","id":"VnRb-V6bOH1IuFKNqpK8M","data":[],"visibility":"show","key":"ikLJ8JTqCT"}],"visibility":"remove","key":"birk0eAhO8"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"After you have complete the exercises, you can run your robust solver below:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"WOMAfNuitP"}],"key":"adKBmEBBEj"}],"key":"iIfD6wsR3l"},{"type":"block","kind":"notebook-code","data":{"code_folding":[0],"slideshow":{"slide_type":"-"},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"# quadratic equations solver\n@interact(a=(-10, 10, 1), b=(-10, 10, 1), c=(-10, 10, 1))\ndef quadratic_equation_solver(a=1, b=2, c=1):\n    print(\"Root(s):\", get_roots(a, b, c))","visibility":"show","key":"USR1lPQof2"},{"type":"output","id":"PMe_GU15OEBBuRIeTZtIs","data":[],"visibility":"remove","key":"LE1SS2gIy7"}],"visibility":"show","key":"mysQJNumbw"}],"key":"ycgkYmNyNq"},"references":{"cite":{"order":[],"data":{}}},"footer":{"navigation":{"prev":{"title":"Conditional Execution","url":"/conditional-execution","group":"Lecture 3"},"next":{"title":"Parsing and Validation","url":"/parsing-and-validation","group":"Lab 3"}}},"domain":"http://localhost:3000"}