15 lines
111 KiB
JSON
15 lines
111 KiB
JSON
{
|
||
"hash": "1217baf1c6e6a0c25f21cf66177ddedd",
|
||
"result": {
|
||
"markdown": "# Curve Sketching\n\n\n\nThis section uses the following add-on packages:\n\n``` {.julia .cell-code}\nusing CalculusWithJulia\nusing Plots\nusing SymPy\nusing Roots\nusing Polynomials # some name clash with SymPy\n```\n\n\n\n\n---\n\n\nThe figure illustrates a means to *sketch* a sine curve - identify as many of the following values as you can:\n\n\n * asymptotic behaviour (as $x \\rightarrow \\pm \\infty$),\n * periodic behaviour,\n * vertical asymptotes,\n * the $y$ intercept,\n * any $x$ intercept(s),\n * local peaks and valleys (relative extrema).\n * concavity\n\n\nWith these, a sketch fills in between the points/lines associated with these values.\n\n::: {.cell cache='true' hold='true' execution_count=4}\n\n::: {.cell-output .cell-output-display execution_count=5}\n```{=html}\n<div class=\"d-flex justify-content-center\"> <figure> <img src=\"data:image/gif;base64,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wgoATzhZsXCLgosjHB6grcInPrUnCMPh4qAbxTfOo0UowuHCsEHjOE5yx4xDBaX/ILgwaICLkrvcMd2gwr1yQIxQv/zmYuGHO/xhc5z7/OdAD7rQh070ohv96EhPutKXzvSmO/3pUI+61KdO9apb/epYz7rWt871rnv962APu9jHTvaym/3saE+72tfO9ra7/e1wj7vc5073utv97njPu973zve++/3vgA+84AdP+MIb/vCIT7ziF8/4xjv+8ZCPvOQnT/nKW/7ymM+85jfP+c57/vOgD73oR0/60pv+9KhPvepXz/rWu/71sI+97GdP+9rb/va4z73ud8/73vv+98APvvCHT/ziG//4yE++8pfP/OY7//nQj770p0/96lv/+tjPvva3z/3ue//74A+///jHT/7ym//86E+/+tfP/va7//3wj7/850//+tv//vjPv/73z//++///ABiAAjiABFiABniACJiACriADNiADviAEBiBEjiBFFiBFniBGJiBGriBHNiBHviBIBiCIjiCJFiCJniCKJiCKriCLNiCLviCMBiDMjiDNFiDNniDOJiDOriDPNiDPviDQBiEQjiERFiERniESJiESriETNiETviEUBiFUjiFVFiFVniFWJiFWriFXNiFXviFYBiGYjiGZFiGZniGaJiGariGbNiGbviGcBiHcjiHdFiHdniHeJiHeriHfNiHfviHgBiIgjiIhFiIhniIiJiIiriIjNiIjmz4iJAYiZI4iZRYiZZ4iZiYiZq4iZzYiZ74ieA2DmgwAhrwBN9FfeWAct4QDrFAA1ZSfR7ncLdABD0HfURwcQ7nAXdFfRbncN7QYtPnCW/gcKWABdY3D0RwBrcgDPzmb9SnD6KABU/ACHIUEAAAIfkEBWQACgAsOQACAIYB5gAACP8AFQgcSLCgwYMIEypcyLChw4cQI0oc+K+iRYMVJwp0F+VRw4saBU6LskogyIisokSDeDKky4SXopR7SbOmzZs4c9K0yDOjyX8PT64DMKVgSwVHH4GCeAxAo59AFW5rBKxgJABVg/rUiXQrRDEAunEdS7as2bNGe/L8qTWqgqFFCR49KiEHU6dQFwID4JHg1awOj+IU3BCsWLSIEyterPDk2q5tB8JN6zYvwbp3n3atfHBv34F/WXrNSZihYcaoU6se2xLkaLUKsBkKU6UNqG4VJw8ctwlUvIrtQImZEgeYxW6bIJjYxHxZ13ik0kRR4+mbwKaN6oHqckVSO7k8icH/AQCF+aZz//6Oe3SlSyp+Pf3hijMljG/OBom1mSKn2bxNtHSFyybuVPNHFZr8w08zkagx3Sr3RPXPNpss084lW2wBSoQWGYbNgWYE2BNUXqk12moopqhTaz6VqFYqC0CQwxApLGBIbkQNZA0LFvRSUTMhLCACDxQAAIc//xzjAQAQeODkJhVBYwIAIvhQ4xbXAZAHDxDIYAEAMrizGU+GfCmBkx5Mkx4Am4RAgQwQACAGT/FEsQAFOUz5gnUJPcJkDiwssAkAWZjUBQCeQCBBCl38gwsAEsiQw5c8fIeULlqyEMIQIgDgQzsdAiDKmTAsAIAkJsJG4ogqturqTls9/xara/+IkIJ1FXXj3Fs5KqCkCWr+U04IGuiClDtbAFBSRZj9tI4IEKTST0XfBOgrk2G48889h24y5maejXkVBJv0o8A4NgDQjEllKADIPAKtssASCR2zgA3jXEeBAoUidSgFsMD32zSy5FNRPYIAIIhJmEJQRj3/6JOHkUD9I4YCFsAiUDUhQHDOmC3OKmFpr5ZsMkKphkzRSWJiuZlkOdIigQ3fWORnSV21o4FdSDVrESV4vZxlCvBWtA0AWzxmUrgXXdUFQawAsFRs8yJpkhoATIPQ07wQ9AcABB26h9Kb9cPCCQwDYIGl/9QD7ToCgdWIhIwA0AuJK+OX98l89/99UMor401RChJ4Mo5QRIECwRBwW8TDAnBv1sQC8fTMs0VDAGCNZdeq8ZM/EvAwl2drXYWzQM0oXBEoUrcYdSp/i0CBPwQlQ+hAhybTUjW0gMKcDAAUjWkYK0+MS9wALCNh1KfsHTh4qvot/cmpgse5ScQECeYfWgs0lAQA5JAPVCEAYL75CpyfrwIS5F0jxEo3xQhUHsgwOl8gXXX3QNUAIEdFgEDf+cDGpoPwYwEx6Il1+qWAQ20DJOVIgvkW4KQ4peNSADDEyrx1iopc7IEmoQWinkfClOlteihcDclC5iJ3wKINKVAABEjhPQAMIXOUoJ8EUsHDHvKwcuzLGwv/APCb+AXNIvW73yPyhxWCVEMB/1PA1/Lgwx52zygQSEFPrHE7gRyqZj6ZAl/AqIAoAOCC/8DUwn5yCbB5MCwSEqEnSMgWwQkthXhE0QpH5iIJEYMCFOAHr6ZQJwDMz3EA4BNd8rYEADzxINihn/1eQwz8Na2JJumfHATCOkuwEGU2WICYBkKLBTDwi3RagA9eNkQ0YsplXYmD3ZB3GKTIkY6QueP18sjLxezReZapSBMAkK/J5CNZeZjWmnKoSwWkgAVQ8QQA/oCQSG6mfrr8RzSm+bLQZNJ/AtnGvQy2S4Jo0FsC8ccwT6kAXFXEHQBowmaackYMSuCCSImHByRg/6nThHCEdXwei07Uy4Ka5Zd4M9oepmGufySDAieAj27ycSg1SDQFEPBEEdvBCkkMZJiu6EY3QOWOQGkCftNwRZY0g0QZfMsi7YAAC5YhUoP9xSeaNIkcAFCFgeRjGW0YpUHKsU9PTAOoKejiP74IlRhAABcVWQbh6plGSFXhO/G4GCCi4k9bAjSXJWQhQQ1K1hWNFawg+0f/IAWDTnngGDiKiwL40QYAlEEf/8BGugCQgiXJaSDHKJL5UJVX4CngBUVymTVbmlaLNGKA0ViTcaKiSYvkAw6m0kCN2CdUgzQDmuazwTEUQLyKMBVc4DtBkNpwBapiChA5iFSRoDCPDv8poJb/uGVAA2rCsvqWLAjNm0WwQQpBqEEQqSjitlIBmLm6IhXYqAg/cGEIM/xhE9CgnUnakYznrqQi+YDFHswgCFdYahypgAZUXCEL4frkG7xgRSrWoc1UHC4q60iF8nhiDUu0oQ2RoAUQE5KPY8BiGfxYBjcrQozk5m0bDRKEcYCRinpgUBLxOEUb4BAwnhwjFUL9RzdS8Ui0onVEJPutilfM4oYYAgDtdQmmPNriGtv4xqnxBC/a4Y9vWEKm93jJjHFM5CIbOSdVMF+cABCDzQn5VEeOspSn3JB6HEMUkvAEMPRRE2w0YrRUDrOYx0zmMpv5zGhOs5rXzOY2u/n/zXCOs5znTOc62/nOeM6znvfM5z77+c+ADrSgB03oQhv60IhOtKIXzehGO/rRkI60pCdN6Upb+tKYzrSmN83pTnv606AOtahHTepSm/rUqE61qlfN6la7+tWwjrWsZ03rWtv61rjOta53zete+/rXwA62sIdN7GIb+9jITrayl83sZjv72dCOtrSnnRNugEO71OY1OcAgjWz3mh1sQIa3eY2POtRi3LvuRyJMge5df2IS2G63rWehBy7L+9bMGAM84n1vWYPjC9zot63hMYZnCLzW/SjELPh98FePYhINp3Ux3ICPiMuaG18Ah8VjTQ82MGPjsZ6EKkAO61oEwlwk/2+1NsCgjpS3Gh8ed3mrMcFuma86GHbYh81VTY4vkGPnqeYHHoIB9FS3AhJFR/U19J10U8NcGgxv+qc/MQqpl1oabKi41UVNjzFQY+ujxsTIwR7qZ7hB52T/dNe1kXZQd2Lsbe801u0d903jYwzXiHrdK22KUOyd09oYAz3+rul+0OHjhM/0LJCeeEyb4wstb/ylHZELvUve0cqwA8ovP2l6gCHgnKe0Kaoe+kn/Wx6ll7Q/+iDu1Ec6GH6wvOsP7XnQz97Ro6j57RsNDjAMfveNLsQwgN9oZehB9sQP9N3ZnnxFt+ITzVf049kR/URPYhbVR/TS0Z59QvcDD4jvPv+hh1EI8Rd6+eYn9PPTP2h2cIH67A90J16B/PjXmRtg0Lr9/ZwIou/fz9LgBpv3f3pmeN1GgHzmC4mAgHx2d7bHgHg2C5gAgXqGDlzwgBRYZ6agexlYZ+rwBfDQgXc2fyJoZ+AwBvpXgnIGCbuggnR2DWwwgC74ZoWgDDMoZwEogze4Zv5gB1C3g2+mDH0AhG/WD2zwdUTYZsGwgEnIZvwwBszXhGqWCxAnhWqmD2OgcVaYZhK4hWmGDz7nhWj2CtAnhmYGhuZghmbWCn6nhmRGD5DnhmTWCqQnh2EmD3Foh2GmChyoh1EGD1wQeX4oZXw4iFMGiPBniEdWiIp4ZIj/2IiL2IeQaGOPOIlExoiWeGOVmIk2homc2GKb+IksRoeiWGP0EIil2GKkmIorBoeCyIq+9QqhUH+wOD1oWIu/NQudgIu+pQ9g8HO8SFa1MIHBaFBPeG3FWFC7UIXJyEv9MAYY2IwoNAyOII3O6AbXYI15pAyJQIvaqCL+4AZI+I3T8wx4QI4p1AcGh47SIw104I3sqBo1GI9+ow0xSI994wj+h48mc4Lcx4+vggnnBpAl03MpSJAq8gkLh5Cu4n6/x5AqYgqtAJGtEooUqRqtIIkXyRi3uJGrMQtl6JGpsQ+/KJKqsYwmmRpGGIUpqRjIwIQtuRh1MI4xiRjPoAc1kLkYfrCOOYkW1+AG8NiTL+EIxSCUaHGCOmiUOoEJuaCUZmGQTlkWofAKUUkW7od6VckVqgB3WYkTp5iIXXkTshiUYckQJAmMZWkTuYAJZJmWCfGM0eiWGvGScmkTM1mXNCENd4CXNFEI4ceXE7EDWpCUgOkQN7AChakRExAEDZCYE1EDKOCYE4EADyCZEhEQAAAh+QQFZAAKACw+ACcAuAC3AAAI/wAVCBxIsKDBgwgTKlzIsKHDhwvxUUH1q+IvYynUQdzIsaPHjyBDMoxHrRYnOly4IJkz55DLOUi+aLEzqRWzdiJz6tzJs6e6XZC40Anli5s8fwn3gVPWKhEXPa249ZxKtSpVerv0fPnEDF9Hf/uutXLDphU4q2jTqlV4rROXTtR4gms1phCzfmvz6u0prRCbXfSq9ntWaEwtr3sTK34ozc4dZUjVgsM0Jte+xZgzDwSXyI00xeAmjUGmubReeKHA+MKLWZufQmdNy6aqDIwqxJr9+fpye7Zvkewm0ZHqG94nNtd+K+fI7Msr1sqlgWkFfbn1g/tGsSF+Hd6kO+Sui/8nSK5OJ9zjdz8bL/7Zl2HsC3IrWz2+6VljuNsXKM9RosD7aaYPJn6wE2BB/oxlzoGLwaPHJ5cxWJAvYGgjoV7quPFKZBcSJB0zHaYFzhi+hHjQiMGYSNU1X4CookHmsFHLizuxGBeNBrGjIY4hUQNGcjwaBA8eqgTZETVfAGlkQfRAteRDSFr4pEHy1PHKlAtpkySWB8HjxixcngjGZ2HmqIdGZQpkzhgupomgmwPBB+ecBd0BJp14KgBJKBzm6WYojtTnZ5roDZrmO4YmquiTbCizaJmJXPlomX1OaiRplmIZW6ZPeuUop0tiYgqoT/pBqpH6narqqqy2qhAydbj/KuusVPWjB6245hqSlLpK+Mw/vQYYSijBFmtsQtdUeuxynYy67HjSsFHos8slS+11nzh77XURbqscG9IA661yn4yrHDdgwGPub7Gu6+678IZUi7jxYsZMu/Vihs8YSua7GLH+YgZGwATPKWfBCIepbcJ6ycNwXomk+PDEFFdssTpcWIwWJgooq/HH43kM8sgkw/lKJyXz9EXKO33SCr0sf7RpzDTXbLOiEt/ckT4K8Krzz0AHLfTQrQ5MtEO5HM2QNmN0q3RCmD4t9Ue/Tm31Rm5cfdDBWne9ECReEwRGqmGXbfbZaBf0Srlpt+3223DHDTSactdt9914531tK2cHW0a33oAHLvjghBce4mUzG6744ow3HqLIWhcCs9b/2IH2rY6zTI0bk2fuObVgfy766Iu+0jnpqKeO5Siqa4zy2Ym3LvvstNfuNRun26777rz37vvvwAc+Se5WBwQAIfkEBWQACgAsPQAnABkBwQAACP8AFQgcSLCgwYMIEypcyLChw4cM+Qk05oyiAhbyIGrcyLGjx48gQ4ocSfLgvGuzPiUaI3DNoTkK5hxS4ARMH0wKnrkrybOnz59AgwolyA5ZJzBuRu2SZm4fQn/stBVTUEiBo1rghmrdyrWrV474ggnEFIwdx3/4no1SAEaBuq9w48qdKxLc2kkK/JEkZ+oLJGl0AwseTPeZgjGvzPrch8yPQKeEI0ueLFJboTrP+nUdppmy58+gC5rDNCZXZ69slIVezVpwxi+1IMOVVkcBt9a4c2t9xpKe4GJgXsnWTby4R3qf2GiTjMnNbePQozOUNuYTPsrKvqgaLr07dH2hFFz/A80Okh7v6I2ru6MbcPr3q8e/0o1YL/z7knd9oUYcXqFJ1+En4Fz7dFKHOcb1o4oC5AzooFfy9NFJd2I9aOFQZqnyj3fUfOHehSCSZA4bs7ynDRiqhajiR+CM4ct9Le6y4owaLceMgG/NYh+NPCIkzRd5DcjOHa30aGRB4y1nIR6v7HgkjbfxF6KOT9KYlWEhmpWLk1Va2CCWKqrjYpcgvoUMj+aMkSKZD1bIIzhgfMjmfec9qc0X4HA5p3T+YNLJhk/y9tae6JmSCJu71BEgodH54kZGbIbiyGmMEsefOYCS2Q8kplQKnZJ74oNHLZ7Sd2OlYspZ6qqr3Ykgq5+p/zIpq7nQsSiskTHDBqSsdvIJrpKRw8VzsOpjx4vADuaGm7iaAwaoyc61VrQKUAePntRu1YdE2b6SCKXZhuuVP4mUKO65XrEDxnjoBvVJeO1Sd2u7JSnjxrzijjIhvTy9RWy7+9AxFb8kFZILwQKRA8arCDc8ki93cOvwRuxOrMAkRVq8kTTY0ivPGNBqvNBaHfP7DBvciXzQNWP4pnInnaqcED5sUJOpxvSMcU3JIocCr8zVsoEv0CwBPdAnMRs9kM1KK0CzlE1HLRA1YwytsdUyh5K0yClHTc+6Mquyr9QDPeOGxBYDyTPQkFBpsR5nkl0QO180OHEth8ptUC55N//8lt16E9RPHwMj3HbgB4HzhWL82os4Qq2MzW/IjwukT82VyyyNG11H2yA8mSMECann/pMIsqEbpM4Xg4arTJ2pH/QKTuHiU3TsB+2Debg/427Q5p2XSs4XoPsuOunRom686osvj/DszhO8j87ASh69Qa+v3SXdrV9/UCGFe9rJfN4nxA0YWHe5XPrld5Ixo//4sWb5CLHDBcN7IqOH9uVDT7+4utvZnt73v4Vkb07q4EL3CpiQQMSNgdHSxhiCB0FPYcJcVXKEjCrIEHNwoXhHogYbOOgQU2yNR/6wA5hIqBB51O1IyAgECx0yC9rxiIIzLMj0uMG/HB6pGDL04ar/3PBAITJKhOAy4pxOt6JfKdEh3JjgExmFCeRZCC9TdIg5vuCyB/0riwwJBQEHlIjwgVEh9mOcgKB2xoao4oTw+Qfs2sgQFy7wPczYHx0d8gon7vFItsvKfZj1R4bUAouF7NEO4bPBRDrEF454z/Qc+ZB+sKFi3SFVDylZjL5JRx9gECQlG9IPN7AROrPoxCZHqQzHeAdwo2yIP0wZyxnlUTr3q6VG9MAx6PROlw2hzSqBKR0/nIqYFpIGHYaJTOMYs5nJdAM0LfTMaQ5oc7m5ozUXUs1t3gebocmINr2pkG56phXTIudDlMlMrohTnRox52TSCU+HsJMyoFNjPRvS/4dj7lM60rDDP9HThxUK5hWhaGc9nzHHwFwHfwN1yB1UNZdU3iyiDWFGEAMDSlhiVJa0/KhxlJEIhYqULqUUoFxygciTPqQYkaQLNy7q0oVYknLjqqlGfAEJneaGH2P4ok9Bw1K5mPSk+wjlUFuTyq9QdKkMwccXIApVyiC0qqGhhwK5ctShvlEriSgiVh8Cjw92lSFjOOtQRzFGnyhvrBCxXxfhKplPkI+uwfoC+/AKlyr+xG181UiLcBhYrziCkIWdizbYkMTExqUQ/nSsXO4pWbpMtLJ0UUZVMGtUN6iUs18JRk9BCxeg5om0X6mFDVHLlY6y1itX5UhkX+sQrYrqk7ZBMcWCcKsV+/GKt0EJxV0dolbSDm+vCqAqcCGCiS0tNyhRbOxzSeIIsU63JNRwQ3Gva5CCctcnz3Dld0syS0wSBBPb5e0wYloQ5Yy3I/0YgyjfKxLV0pckoFTufTkS2/2ChB7N8y9IHGEEgaxCugJWCCk24IQEg6QGKHCwRyYQBAl7JAIDCQgAIfkEBWQACgAsPgAnAHMBZgEACP8AFQgcSLCgwYMIEypcyLChw4cL+wl0poBiNhHs+EHcyLGjx48gQ4ocSbKkyZMoE8bThqwVJjoD56yRqUUBFy58TA0DF69eyp9AgwodSrSoUZT7mGHiomBSK2Tc8B2UoUAetVmT2AhsdbSr169gw4o92k9aJy6OFNDzCE9aqzF9fEkdS7eu3bt4iWr7pKDQLngk/VFb2unav7yIEytenJgbJDa1gNLLZUcr48uYM2suSQ7TmF0ah3LLquzw5tOoU29W94nLq7lGtfnRc0217du4xY5yDburP2RjMKnLTby4cZLSFJiSR1ffKy6teh+fTr26QH2jxtS+y64TG3DWw4v/x82NDqa1iJkpqGV6vPv3ifvVAqN+sbo+kADD388/LDk9kLCDWT+qjKFNfwgmKFRyvpwmDRizKCjhhCL5AsaBqAnoCHMUduihQv604kZudAj44Ykn7oNJIRzeVssY4KEoo4TwBNJJaLkxc+GMPPJHjgJcHUfNF9L40+OR4V0DBjLVabMkklBSR0145EDWXpRYosaNAtJcWV0dWYZ5GnhFvmeHAl6KqeZd4IxR33vwWLnmnHaR8yR/6oyBTJp09lmUOXomaOczfhbaVTESgvPFlIY2GlSDE2rzBYaOVjqSPic+iKalnILE14fqmdPpqBC1UgiOHvoyIqmsKqQMG/qh/2gKJK3WWpCTP/LoSJC2tmoOGMn1GCeTvZJKjxu7QKkopcVa6ogqfMoozRgmNuvoKLRmOYsfqFrbpzJuSAclJt42+kWMYuqRi5HlrrkPmHMO1+6coXTSJzVsyBPtvDOCK66YqkyyL78nknNuof3oASnBPb4bTKPDocuwjPVWCu7EGLv3SSgZf/ijxI3i44YyHXeo8KiKljzhK2mRmoseKifIDRjVxmwzav3YUdrNPJ/m0sA9B23XgbHWigmvQhu3jxuEFsucNkAnvZkpnzZL6D5SE1cbetYenTVu+FhWrjwGfm22Xc+wgfXZmzFKsNdsx/0V2czKnRjSBKu3tt2Igf/MMCav8I2YP4U8LPjhP+0SCLuIN04SYH5PrAfJjocFOOMdz8x15Ufhu7fKo5jCuVdsuB0zPWNsOXpRqlR9szJ3SLS6UCkL7UguswflTx/EBv1jzbmbVEwfwRdv/PEfqaIA5kmzITvyIb3DvNCTRAj9R7dPLzU82l+/kDRufP51K6573xA/pcstlermN4QV38MUEnX7Aolq9+5v0p9QK/MHrc0Y4tPf6gAnQIP4A2aO+wLwBBi//mXNXgW8zuj0YSAH5i5wEZxd0TLIuVEoj4OcM9jmQIi4SUSGhI6rTbdG50Hz/aMP+dOgAuwHPWXooXucewUEkYe+7RgPU5s6Xi3/JnE9XyQChaOjHBIR9ww34NBxTGlfIXq3RMHVbXQi1B8Rg3dC+uWqimDMmCMWFsa4XUNsBRQd5wKhxAJu8HDPgBcHWxGKJ37NH3UIFgi/8EW+IcMPSJxFJ+yYtH6wwYcg1AcYIne2liExF5MgZM+AWEV+lE1uEbKg94LhyLNJpY9LPKTdNFnGUt6MDnrMmiBNqYCmfQ0fX2DlQJ5BSn4FTpIcdGXSpEJDVvZBlz2joywJIsee0SOWwxzIL4XWilEkk5i4nNcxn0mQZfIMb9SsQzS91SJqejNu2owZYBZITeLFTBVq/CYxbUZOdbrznftZi7zgGbNXcIyeMYNlL/HJ/6VtkuoTteSnQK11poEa1DaMPKi3akEuhQqESQEt1BgcShA2QI2iBDMcRjfK0bzsYosd9RbWEhpSVjG0pChNqUpXehtp3IGlAvGnmPwQQ5hy6owRtalOVbql5+30p5yap6XAANROWA+oSK1fUpuCO0e9IqcG7amjugnUYSy1UrWB6lW3ytWuKgiBXu0TMwIxJ0uGdSBa7Q8Zz8pWiraxrXBd0z6P5NK4iomsdhWTTHfair32x6p5VUtgsfSJWfh1sBEEJWIXy9jGOvaxkI2sZM0nsMla9rKYzaxmN8vZznr2s6ANbQNCCx8clIC075lAEBKAWvfoYAWtHc8OtLDC2P8exw6ptO10lJGIw+p2MYa84m+J4wuQDtc4liTpcVMzi/ItF2xfEOpzcdOKdE4XN/Dgwhuvm5pRYJO7qFHHF/4F3s10oovlTQ04wBDA9GoGEhp172m0wQbfyhcsgajpfS8jDTzsFzV1MN1/L8Nb+w64KME9cGZ8kS0FMya5Dr7MKiO8GH1SeDHNvLBi6MGFdmp4LKb44Ifxwg4uUHXEdPkEBlFcp/Gy+C6YWNeL69Km9s7YK46I743Bckaf7vgrhXjrj7tCDScOOSzWPLJXngFWJXclwE72ijIKEWXfuOEaBq7yQ4bRSS0LJcFeJspHw0wUCJNZKCc9c1BgqVg1m8T/nll280E4LF05l0SYdkYJnfOMkgzz2STy4EKd/wwSdBK6JNn18KE3YuhFiyTRjhZJiCMdkuxyj9IfMcV3Me2QEm+X0w3xLqg7UuITj5ohodj0qROiDhOvGiKifnWnOyxrh0y61gyBNK4X0uhdJ0Qe0fW1Qvws7DkHu9gHeYVzka0ACzO7IMp+dkFgqdxdCzLOhMbHIqVNEEhi+8+WFC6ykYFXbi8PleYWyDPs8O0/BzndCqCvj5/tiGSle73kLbZR251nc2gX3rE2Nzq4UG1c49ncxyx4rXPRYG73ww25ffYz6DBvZidCx8+eWb6F3YlX8NvO7FAgvMkHb3ykDt6+/6ByuvuRx4/LGV8VR3a94b3eTxdbFfc0t8nZx21k9MHlci4EYM293hE+O3TwpgcYeC7tYPgB6Gr2hx+EzGxujMHozA6FiLkNj4Ol2xdPh3cimmpucxzb3LNouLRZrl9kz8zUyDZFzrkdtogzG1+U5HYnVC3srjP92cjAQ8yL7RR4w0M78J7Wxn0dirlLO2zAfLaTFO3rVqj92Qlb67MN1mZk76IPgxe2I1bM9THYHdlOGjSya6EHG+vbmenGBx2Gzm2DKVzWzGAD1uNu3LX7Ab3SVgcYBCz5L/yd2c8Yg+qLnYs6LH7XpkhE6HftD0wsG9n66APppR0n2kvbTqcv9gQ1uBEQACH5BAVkAAoALDwAJwDTAYABAAj/ABUIHEiwoMGDCBMqXMiwocOHDrHcCpdNoLMT+/pB3Mixo8ePIEOKHEmypMmTKFOqXJlwnjtmo/CwGeOkpgItc9YIdMNplrR28+axHEq0qNGjSJMqXcqU4T9usxJxKTRLGzl4gzJ5CzcQxj5tvkYF4jIGkgJyTdOqXcu2rdu3a+EVU/DFjSlp+hByHeivoLpnAgsp4we3sOHDiBMrPspOlQJMw9iR7MfMEZhW6hZr3sy5s+e38Fp9GbVS3SswgjV+Xs26tevXCtmZ4qIKXl+W+5AFGlNLNezfwIMLTytbQe2k4BzZ4Ta8ufPn0D3SE9gKHtN/yhSYwhe9u/fvza8J/7Sull6oMc/+gV/Pvn3ifq8UUHur7Y6jzO7z699/1JwfSOS91U8tAvnG34EIJrjRP8V8sUti5CSihzkKVmjhhQLRg0kd4Cz2zy5giIfhiCSypw0bo+zDmXjDqFfiizAK98oY0nxGDhut3Bbjjjxy1k8ofQTomTyJTMJdj0gmCVc/nShwJGs/uoGfklRWmdQ+kGCiImy7jGHll2CuRI8foRj4Wo3MuBjmmmxyxI4brTQHDm9t1mmnQuawQaBzb97p559z+tIdGw/+aWiY2iigjJrPqTMGModGSuU1X8z3HTlgMCPppjuC84WI4IEDRo2clophZtm1x02lpraaID1u7P/pnniJumqre/wk4th+oN7qq3f+YIKJjr8WayxK/5iSCGEIpnrss7DVUsd00FZrLUfMjCGZhaQRe+23hYnXIYaFxAfuuW95eo23FgKG7rtpwTOGpiUyhxa8+CLlDyRxwqgMG9TmKzBLrxTCoyqQmDnwwiNRA8a2MfbjSL8MVxwSO2NYyiM9bCxq8ccc9ZPILEp2CA67IKd8kCqOVJmtbSrHfNAzYwSsZCuJoCwzyJnVWqU/I++8Mz99FArmF8wJrfIok7BJr9IgMwNwm52YAvXVVXJMKtZc83jNGEJ2fS7Jf7YCCaNiXwsOF1Pa2Y8egqYNLh6QGkrOF/fKXe0rLUf/6ssdzOp9rKgQH9q04Mf2U4ezkVrXK+K2tnI4p9KM8STkrWoDRtiSjhIK5q7u4wbjnHK3LuilqoKJr26gzqk2YPs6ySs6u96mG+7eyg4X49rup9XG+lJI7b5bCTs9aLvqTyC+JF+8lW+T7muHhT//ZS6JOH9rK6tb731woj/9vZKdtKK9r19fPr7XXn77+fpI9oM7uj7DD+MskxBvbOv2w5hZ29+CBNn6N6J/TGKA5/ofAUckDTdsaYEQLMw+2KCxCFqwLa3oxPmuxQw6XDBB7NjgtRIRtw/uR4RqUwDyTNgeZehBYfgaBfBYCB59jKF+A5PHF3pHw+68ohP6Q1cu//rWw+5wIWX9sEPuiuicT8TscUwUjqhkdsAoDucfJJSZOo5oxeA8ww1BFFgrnNhF2MhvazFTXxlZkwuzKK1ua2QNPXYINX/4IY6sMQVp8MhHj5iDC5zroyCL9wWbDdIwY3jgIRd5EH/oQW9sYyRchhEIFMqMjJJkiw2TljZ8gIGHmWzKLLqntzaGci1fgJw72LDEUyalFXtEnAtduRTrVE9vfRAfLYsyCopB7hpsgOEuU/LHQOrNEUYbJks6gUDMiUqNyjRJh6CJuE6YK5opgUQyUaeOLxgTmyBJVOBstytwmqQQcPSdPBRAIXOOpIHCBN0rPmFJdy7kkWG05wWlZ/89TNRTnwBdZAnXR6B/BlSR61MRJwNqxV24kaEMSSUB+TEGbuQTogQMBhExWsR+sAGKHDUhMgwWUoPkbYH+cEMFS0rPCzKjDwYt6ff8gQc0YnSeLHyGHUrKnXaa8I4hxWkPPchRLviUhYHgpz3f10Nq8C+gc7RiICDaCqYykaj6nA4AewhUfVZVpkXcahH70EqwWvAZeoipIG2JRzvYdJiw5ONLwUmPSPLRDtRQKx5DcdEPKoOkZv1gSlcaWAj+dZgI7WM8C8tYsTGrr41F3YMgG1nMeRSHlV3fMByh1x764qGM/OgpCbPQQR7WlbmY3CHrkNfM9o8Zj3Rt/+4g29r/Yg2WnY1gWWl5yy46lbJ4NEU54ygYcEpGHrmF34ncGQra2RZ+X6Dmc6dL3TWBIS/V9d42e2jV7Ho3ZnOJ4nADClzrGTKgUy3iK7r73fa6l0S1IOV750tfBYG2voIDKX7FVt79+tdW+JDofwdMoq4SuGtPPTDXwqvgBjv4M7VIrjmxOz6xMnYSu5DwgzfMYaIkosMgdo6FQ7ywWbTUtsxIL4ll1t+dbXfFMLZVaTGn1Bjb+MYjwQOOd8zjHvv4x0AOspCHTOQiG/nISDZybJPM5CY7+clQjrKUp0zlKluvt1aWVHNbnOUue/nLYPbdQMNsqMWSOUyAPfOfaKvmP+nh/61tZlMhNBznC6VUv3XOs573TBJZ8fnPgA40RL4p6B75stBKOi+ieTQLLi/60ReMMKQnPUhIjJnS9RqDozH9nUSkk9MkAiadQR0dP+iS1BeSBptRTaI7wJnVCUoxrEvU2llbiMG2zrWufbzpXft6Z/oAw68VdOJhG9t2sTy2spdNX0Uz+zuHfvZ31jliaVv72oVVxQyx7Z0Qcts74/12c9gqbugIt9zQITe6m3PudTdHMoR2t7ytFe95e6aX9g4OlvOdx3DzezXw4OK/YcPegX/GqAZPeLFAqXDOxLfhq9lHRSH+GYeOmuJGoShmMZ6YYWSP45uRH2FBfhhl9IHkm/9ZNcpXHiZTszwxTn15YgoxDJkfhjkUtvlb5Ktzt3Sz54UxxbaB3pYZE12Uqj16WiS+caUrRTdOX4s/lBh1tVCDDVVXCzKz3hSGcx0pmPx6UrYodqYUvOxDoSPaj2LKtR8Fdxd3u0K+lli5p6SKdh/KFqud95G8gud9P8kERx54knTQzIX/iCNykfiU3O0dvW78QFRxdsl/BB/ts3xJkHFyzZPkH4H4tOc/MsXRm/70wwnGC1Evksh7/qis30gtPhx7j/RB9LVviKf2nfuEcK/3Gwkf8CGiOWcP/yCeO75DMH865S9EGmzIufMR0gl/T58g9ACD0a8/EGXUoe7cFwj/JoYe/vKbHyRRcb3lg3Z+grBD++0nyDOmFn+BjKJJ9VeA6HBffk/B/vy70AeI53yTEG3mJy+EF36ac1Ltlx3rlH84M4DH5w+TQH7mhw93wHj55ygJyH0LmH+KwgYPWH/WZ34VCIL44AaXZn6OUmPlx3/hNyen1m1+wHuwJoPs8SbN9Gs4+B154mfH1oPRYQ5jEAzWJoTOMSc1d22islu/MScuGIRg4ISusSozKG3ckCnCQSmvdoQ4on5MQQ2fAoacBg+J4AjGtxnD8AVN923+8Aps4HWaoQ+jQAcMKG/M8AVRaBjk4AaYIF3rBg5soAoSyBZ5+GL5Rg+O4Aj1thb98KAKcUiGvvaGcZgY6qAHfwhyyvAFswB+apGHKwhx6jAJbCANktgR8BAKbLB9GOdUjnCHSoEPr0AbgIhx/RAMo5GGLNEPyjAGk/B/MgcPowAGwXCKCNFAhcCKNscNgdAH1GCMA3ENeqAHzZd1LjQGrSCHIrEP0uAIbHCFVUcOrTAGelALMCMS+KAMmMAFiRAMhah02jAKUxEMtZgQ8KCOXIBMNoh2+8AMkMAFd4AJqhAM1GBh7AAO0jAMs1AIXIAJzFCPeecO14AMr8AJhUATa3AIGrkGWuAEX1AHjsAJqvAM8eB8qGAMtmAMzlARTBEQAAAh+QQFZAAKACw8ACcAMAKBAQAI/wAVCBxIsKDBgwgTKlzIsKHDhw6poHKmQJy4cB70QdzIsaPHjyBDihxJsqTJkyhTqlzJsmXLeeqevYIkcM0aLU60CORD09QravHquRxKtKjRo0iTKl3KtKlLfNdqYWLDpZAqZuoWKbKowNstHtSeBaulio4CVdz+OV3Ltq3bt3Djyp1L0B8zP1z8KEBGDqE4heReuWHTCpxauogTK17MuLHjlP2QufHzrB9JcK3YuFHQ97Hnz6BDix7tcl+uMY6oqeSmagydWqRjy55NuzZjerPATErb8p82SG6u+bNNvLjx48hBwmulABO4o9LYYGKXvLr169hjm1IwSp1Sfa2+5P+ynL28+fPolWobOJwpuUR21qefT7++fYj+an155pbZGEzwtHffgAQWmB08jgTi3Vv4MGfggxBGOBs1YLxCXlzgFNKHhBx26KFc/bQyhnCLyffhiSim2JI6fkACD2PSKMCMijTWaGNHzHxRi4CLgTOGAofdKOSQN/KTGTefwaPHJxcS6eSTEuLjByai4QOJI/hAqeWW9+ETiClBguZPK24syOWZaF6nB5iy7TIGkmnGKSdt9OihSm3S7Dfnnnx6Jg8ed9rGzRi58NjnoYi2BU8drxg6mzpuOJjopJQmBY8bryBHz2uVduopS+xgWh07bAzz6amohhTqLNd15miqsMb/WlCosGUHhomy5iordedR+JyuwKJKai7oIcMGr8EmO+k+frCaXi110KPstId+gkmY56lSyD7UdjtnlvT508kkTXprLpGqmUlfP5CEcu67Q5qjwDUE4rMhvPiqiI8bvmBbHz385itwh+xu96A5Y6g28MIF/qNKIuUSeA0YyDJs8XzKsCEPh7MEcvHH6HHzRWcS+kMTyChnx5+H8IwRY8owF8ePXiiux46/MeccmrUqdtwPzjoHzVgtenCboj+OtAK00EzP9Zy6KLb8ctNUI2YHMjdqAwbUVXfNlipUCumz12SvNfGLQposadlsH4UPGwoPKc+PbddN1D+dGOyk1lzb/+13Scy4Ae6TY/9tOEnsfAEnlGof7jhISDu75dy4Pm55Q7n0EfGTgV/uOUPkfCFvnJl+brpBepgaJztg/Hr66yfLGYwem7/uON17OlKr7Za/vfKe6oy8NO9sf+LuobkU8irxbFPDxuB8+hNIv8z/zcbUh5rzRd/Vd/1K2JPO4sjw3QetPfd79qMH1uV7/Y8jxLYvv43K2FH7/PhHSM8YlVPaTx35E5opRpEqboABbQFMmQGllSpVdCKBMNODMmKlDzaQCIIXy0UiyDcp7GFwYS8iWazg90GGYaJRuuoLAksIL+cla4AsjKF96AGGxcmwW9+bVjAKwcEbpmp00/KHH/8m6MMiZkcbY4CeEZd4nE6sjYmpMpq5qANEKKJqFtc61ywmYcVUrfBcbvBgFykVikC9SxqbGeOnGAgvSOxOjYlyxC4EFrp3LA+OaXLe/bqliuPhsU8AvOMfBykXXxTiYvciZJrwAQYFCFKRkFxLKz4RyUrKxTsVY9gk3mjJIXUChZ0MpVMMqESLheKJokzRPxKhOpQlLpOpPNEz3PBIgbXCj7E8UT/CGDQR5rJDuYhdzGrBxV9+6FZCc5kxO2TGoBUjED1cJnq888WY9YMO0qilNM/zCVAKDY3bfNAX2Mi0QrAvnPcBH9UGJUV00qeRXtukO+c5EnmRk57lGUM7q3b/Snyeh5Vsow4s/Ymca7BBmzm7JUGv849AKCOaOYPnQpMjjTogVGfEnChy/FGHbNptH2/SqHGUkUi7+UKYIp3NLuNmt36woX8pHc0wEuE4XzgiprPhB/8c51JtQBSndAmm5VoJ1NDoo4aeg2lRG6POx9F0qSndI1TpiYxEXHSqTtkY+v62UqwuphUEPJ0yeOhVxNCDC1s1nD/cwNKywgWsvGNGH37q1qOk9XD+uIMY67qWsMZVD3TlqyXxsFfBJiVTV/3bMwBr2KbgQ3Tl04NHG6uUV1CyfXagrFIeW8Xq0UyzR5nFA+VX0cSCFiSP9WX3+jCj0w5FtPmTRmZd25Kj/7pufpI1LW0fIpXAXo4ZetitSvbRugT+A4DCRYlUkhvLH+nWdBdkbkhyUUwMDuOm0h0Jb7LbSd++bhfV5e5GdGpDDOoUHM+V7klvuFzxbiSkMjyqat2bkOsWEbb0bUhw0ss7zuaXIR4z4itw+V/UMfGsd3UvHfjbPb0VmCCBaO0Sq/lgg46xFQxurCOICkUKu3dQcFTagxUwifip8Z7uDV0pmUjJDLu1E5JT4xdWLF11cAHFVsREofI7ClR28Tn7lO6LPNxFDktXFQ4esRoTrOQbuhiCd/BukwNYh7buFr+RVMZTp9zFnjIXvKH0RXh3q1RIShmnWDuzD7HM5Tbjb/+xuYSrawMcSyILlg3SVLObu/cF1wY5lnres6AHTWgDPbnQnhsyom/YiiQv+oN9frSkF/aMz06ahYG+tKY3PaDbcvrToA71Yu4g6lKb+tSoTrWqV81qvj6g1bybQBBgbbsaoIDWp/tAECaAa9MRwgi9/tw7uOCOYHtOzsZ+nH+hOseF1qITh072x84bbWlbLBgotbbd1kovbRuOGXT2tt9yK26/UYOW5fZbIs6ZbrYNSqrtFtokmh3vsoVOI/Uu2ydmUW13EjGX7LjxadOYS1NgON9kO+tABSvhVA4Y4WST726DEcv2JrffASQvc5sKyfUm96iddGm3k/vwSo41uzj/HmSVuauKZg4Szu7dmCL78LvshuIVmcbfuTGe0s7icd3/3TEe3w3xeNKbvo6gOBzBAYY/Z1cbbIC3DDHByfz+24raozF3dz7Gmxe9awGX+debZgqXPzi4HebCwv+L9iUie8rINeKyuazlJbKZy/v1IXE9PeVgYPeG1B20ZbbLQo0PGswy9Pigqc1CLxfa4h/0+6Il/kHHI/ruAbTvo+cewF1Gd+xBqyrom8ZtntO25Qk8uaZftHbirdXKjzZ4/lS/aerY+XWvB7XBTc804IY6cfPT6+iZBvPhB42wpkZy94pv/JzRHNXKJ15pUS2P7RHPDw039dtNJ40Fq5oe1n9d/4RZvf3LcX3V4Gdy27AP6wHznmHPsMP7H8x5x/kDm7i2rOeUYelWP/ZyLgV7q4Z5fmNT0jZfbWN4wUaAbUNd88dltmU4EShtDEg2ovWAbTaBdQN+PhdsDmg3CiVuFlQ38IBW6dZ/XlN27aYHNQd2atdu5yZ1MNNP8ZYIStc15sAFYpdu7OQ1MIaBi4YJMcY0TKd12paDt4cy8gRxo6AKOTctPQhxAtU0juALY3dLQOgpejR27fAFI5czbnB1RSdUOuMLWzZ2/DCCMYMPY4BexoeCHzNJzacAbYcyNtZ6EEdwIPNJcygQAAUypNSHChCFF5MIxSCIAiGET/gp8SeDCP8XOknYLQGIiANhdvlSC9kmiDs1MDSEgHOIDH2QhWgCQ5RIEA3Fbu+ChKVYEIGIL5MwhKuoAGWEL9egT7FYEPAwMvDSB2J4iwqAie+iDHogirS2S4UFLCBVZrHoPPzgLTnkiwjxit2iPXgYi3e4iGhCQtCYEK0wWsmiDHfgiLGojKeyP+W1jQZRP+KYKKPgaOhoEDYILAv0jviiPr1Ijwfhjp+iQfgIL4njif0YLCdEjPGmO9hoI87jdAFZEN4BkH2yD3CzkA6RPARpIN0okQ7hD4VghZ1iDhSDkQ4hL+p3JnIEkg8hPpWijibpEOqDinxijiv5EODwBdXIJaGgjzH/iRCtwHFyEh0pl5MHcU0PxSdz84VAyRAGFIlOMgk+dpQKYQqXJSfDUAfN6JQPAZHH+CTBw3dWuRC1aIRD0g+FIHRd+RCh4FdcMgtWVZYcMSJnMpMjyZYCER076CT7EIZy2RGqMAkHOR+m4I15uRF+UHU3cjaB2RHeQY4nsj8CeJgMIQ1joJQcggmW6JgOoQqOUJG0EThgaZkJIZaEeSLBc46e+RDqgEw04g+JAIulCRGQWZcf8grK05og0QqZmSL+ESC0+RFiyZoRMpNuuJsfQR1GGSHwwAbZJ5wdQQ2R2SH8UAilo5wicZsSEgqToJk52Q+rKSG+QAedKZ0OwTpZ/zkfFBKX4KkQBqSY5qE9jXmey6kAXJke+3J07jkSyDAGNWkd/jAJOFmfH5ELbgCb59EKiaCQ/ukRDrMt9MEMbCCZB/oQ4kIu6SEy8fmgIdEPjoCW2cF0LWihJWEv0YkdPpKcHloSx8mR1zGiJcoS5jkaIkOiK3oSXoidRWFA4xmjI3ENX1ChsqENX3CjODoSzAAGxTkbOtqeQWoS9OKSsXGkSVoU5EAYtXENXICkT3oS8OAHnVCVslGkV8oS+4AJhfCTjtFIffmlCeEPqlAmouELEoWmR/EPbqqecUEPmBB3cJoUMQKjdAF1o2CgeToUY1ALZ4oSc9ShgYoU7FAHo//ApXMBD5CgIIWaqA6BD1RipUwxMa2wjpTKEs7jCC3aEvkBBkDaqUbBD7XABRbSFuyQCImQn6Z6FObgCMHhFP2gDGDAb7EqF//wDGPQCbqJFPzgC2xQCHS6q0vRIDrCqSCxD8HABo7gpcgKF+CQCMHFrBtBD6/wBc4xqdOKEn0ABqPweSXBDqrABaHgkN86F+pQC+E6riTxD+ZAQN3hrevaEubwCnQwBmjREVDBKmzwBa/goPeKGP8ADq/ABmygCrugDNLADYNwEPugDbnQCW7ABV+iDB1YsKRxD9pwS5jgCHqABDihBWugAIeABE7QB6GwC9pQD/fAsdkhDOLgDdkVoAC/wAL4gK0ySxqbYBBUQKPYERAAADs=\" class=\"card-img-top\" alt=\"A Figure\">\n <figcaption><div class=\"markdown\"><p>After identifying asymptotic behaviours, a curve sketch involves identifying the \\(y\\) intercept, if applicable; the \\(x\\) intercepts, if possible; the local extrema; and changes in concavity. From there a sketch fills in between the points. In this example, the periodic function \\(f(x) = 10\\cdot\\sin(\\pi/2\\cdot x)\\) is sketched over \\([0,4]\\).</p>\n</div> </figcaption>\n </figure>\n</div>\n```\n:::\n:::\n\n\nThough this approach is most useful for hand-sketches, the underlying concepts are important for properly framing graphs made with the computer.\n\n\nWe can easily make a graph of a function over a specified interval. What is not always so easy is to pick an interval that shows off the features of interest. In the section on [rational](../precalc/rational_functions.html) functions there was a discussion about how to draw graphs for rational functions so that horizontal and vertical asymptotes can be seen. These are properties of the \"large.\" In this section, we build on this, but concentrate now on more local properties of a function.\n\n\n##### Example\n\n\nProduce a graph of the function $f(x) = x^4 -13x^3 + 56x^2-92x + 48$.\n\n\nWe identify this as a fourth-degree polynomial with postive leading coefficient. Hence it will eventually look $U$-shaped. If we graph over a too-wide interval, that is all we will see. Rather, we do some work to produce a graph that shows the zeros, peaks, and valleys of $f(x)$. To do so, we need to know the extent of the zeros. We can try some theory, but instead we just guess and if that fails, will work harder:\n\n::: {.cell execution_count=5}\n``` {.julia .cell-code}\nf(x) = x^4 - 13x^3 + 56x^2 -92x + 48\nrts = find_zeros(f, -10, 10)\n```\n\n::: {.cell-output .cell-output-display execution_count=6}\n```\n4-element Vector{Float64}:\n 0.9999999999999999\n 2.000000000000005\n 4.000000000000004\n 6.000000000000003\n```\n:::\n:::\n\n\nAs we found $4$ roots, we know by the fundamental theorem of algebra we have them all. This means, our graph need not focus on values much larger than $6$ or much smaller than $1$.\n\n\nTo know where the peaks and valleys are, we look for the critical points:\n\n::: {.cell execution_count=6}\n``` {.julia .cell-code}\ncps = find_zeros(f', 1, 6)\n```\n\n::: {.cell-output .cell-output-display execution_count=7}\n```\n3-element Vector{Float64}:\n 1.4257862014364733\n 3.0704645527012464\n 5.253749245862282\n```\n:::\n:::\n\n\nBecause we have the $4$ distinct zeros, we must have the peaks and valleys appear in an interleaving manner, so a search over $[1,6]$ finds all three critical points and without checking, they must correspond to relative extrema.\n\n\nNext we identify the *inflection points* which are among the zeros of the second derivative (when defined):\n\n::: {.cell execution_count=7}\n``` {.julia .cell-code}\nips = find_zeros(f'', 1, 6)\n```\n\n::: {.cell-output .cell-output-display execution_count=8}\n```\n2-element Vector{Float64}:\n 2.1413221086958276\n 4.358677891304171\n```\n:::\n:::\n\n\nIf there is no sign change for either $f'$ or $f''$ over $[a,b]$ then the sketch of $f$ on this interval must be one of:\n\n\n * increasing and concave up (if $f' > 0$ and $f'' > 0$)\n * increasing and concave down (if $f' > 0$ and $f'' < 0$)\n * decreasing and concave up (if $f' < 0$ and $f'' > 0$)\n * decreasing and concave down (if $f' < 0$ and $f'' < 0$)\n\n\nThis aids in sketching the graph between the critical points and inflection points.\n\n\nWe finally check that if we were to just use $[0,7]$ as a domain to plot over that the function doesn't get too large to mask the oscillations. This could happen if the $y$ values at the end points are too much larger than the $y$ values at the peaks and valleys, as only so many pixels can be used within a graph. For this we have:\n\n::: {.cell execution_count=8}\n``` {.julia .cell-code}\nf.([0, cps..., 7])\n```\n\n::: {.cell-output .cell-output-display execution_count=9}\n```\n5-element Vector{Float64}:\n 48.0\n -2.8788980209096167\n 6.035382559783841\n -12.949453288874281\n 90.0\n```\n:::\n:::\n\n\nThe values at $0$ and at $7$ are a bit large, as compared to the relative extrema, and since we know the graph is eventually $U$-shaped, this offers no insight. So we narrow the range a bit for the graph:\n\n::: {.cell execution_count=9}\n``` {.julia .cell-code}\nplot(f, 0.5, 6.5)\n```\n\n::: {.cell-output .cell-output-display execution_count=10}\n{}\n:::\n:::\n\n\n---\n\nThis sort of analysis can be automated. The plot \"recipe\" for polynomials from the `Polynomials` package does similar considerations to choose a viewing window:\n\n::: {.cell execution_count=10}\n``` {.julia .cell-code}\nxₚ = variable(Polynomial)\nplot(f(xₚ)) # f(xₚ) of Polynomial type\n```\n\n::: {.cell-output .cell-output-display execution_count=11}\n{}\n:::\n:::\n\n\n##### Example\n\n\nGraph the function\n\n\n\n$$\nf(x) = \\frac{(x-1)\\cdot(x-3)^2}{x \\cdot (x-2)}.\n$$\n\n\nNot much to do here if you are satisfied with a graph that only gives insight into the asymptotes of this rational function:\n\n::: {.cell execution_count=11}\n``` {.julia .cell-code}\n𝒇(x) = ( (x-1)*(x-3)^2 ) / (x * (x-2) )\nplot(𝒇, -50, 50)\n```\n\n::: {.cell-output .cell-output-display execution_count=12}\n{}\n:::\n:::\n\n\nWe can see the slant asymptote and hints of vertical asymptotes, but, we'd like to see more of the basic features of the graph.\n\n\nPreviously, we have discussed rational functions and their asymptotes. This function has numerator of degree $3$ and denominator of degree $2$, so will have a slant asymptote. As well, the zeros of the denominator, $0$ and $-2$, will lead to vertical asymptotes.\n\n\nTo identify how wide a viewing window should be, for the rational function the asymptotic behaviour is determined after the concavity is done changing and we are past all relative extrema, so we should take an interval that includes all potential inflection points and critical points:\n\n::: {.cell execution_count=12}\n``` {.julia .cell-code}\n𝒇cps = find_zeros(𝒇', -10, 10)\nposs_ips = find_zero(𝒇'', (-10, 10))\nextrema(union(𝒇cps, poss_ips))\n```\n\n::: {.cell-output .cell-output-display execution_count=13}\n```\n(-2.1527576020103956, 3.0)\n```\n:::\n:::\n\n\nSo a range over $[-5,5]$ should display the key features including the slant asymptote.\n\n\nPreviously we used the `rangeclamp` function defined in `CalculusWithJulia` to avoid the distortion that vertical asymptotes can have:\n\n::: {.cell execution_count=13}\n``` {.julia .cell-code}\nplot(rangeclamp(𝒇), -5, 5)\n```\n\n::: {.cell-output .cell-output-display execution_count=14}\n{}\n:::\n:::\n\n\nWith this graphic, we can now clearly see in the graph the two zeros at $x=1$ and $x=3$, the vertical asymptotes at $x=0$ and $x=2$, and the slant asymptote.\n\n---\n\n\nAgain, this sort of analysis can be systematized. The rational function type in the `Polynomials` package takes a stab at that, but isn't quite so good at capturing the slant asymptote:\n\n::: {.cell execution_count=14}\n``` {.julia .cell-code}\nxᵣ = variable(RationalFunction)\nplot(𝒇(xᵣ)) # f(x) of RationalFunction type\n```\n\n::: {.cell-output .cell-output-display execution_count=15}\n{}\n:::\n:::\n\n\n##### Example\n\n\nConsider the function $V(t) = 170 \\sin(2\\pi\\cdot 60 \\cdot t)$, a model for the alternating current waveform for an outlet in the United States. Create a graph.\n\n\nBlindly trying to graph this, we will see immediate issues:\n\n::: {.cell execution_count=15}\n``` {.julia .cell-code}\nV(t) = 170 * sin(2*pi*60*t)\nplot(V, -2pi, 2pi)\n```\n\n::: {.cell-output .cell-output-display execution_count=16}\n{}\n:::\n:::\n\n\nAhh, this periodic function is *too* rapidly oscillating to be plotted without care. We recognize this as being of the form $V(t) = a\\cdot\\sin(c\\cdot t)$, so where the sine function has a period of $2\\pi$, this will have a period of $2\\pi/c$, or $1/60$. So instead of using $(-2\\pi, 2\\pi)$ as the interval to plot over, we need something much smaller:\n\n::: {.cell execution_count=16}\n``` {.julia .cell-code}\nplot(V, -1/60, 1/60)\n```\n\n::: {.cell-output .cell-output-display execution_count=17}\n{}\n:::\n:::\n\n\n##### Example\n\n\nPlot the function $f(x) = \\ln(x/100)/x$.\n\n\nWe guess that this function has a *vertical* asymptote at $x=0+$ and a horizontal asymptote as $x \\rightarrow \\infty$, we verify through:\n\n::: {.cell execution_count=17}\n``` {.julia .cell-code}\n@syms x\nex = log(x/100)/x\nlimit(ex, x=>0, dir=\"+\"), limit(ex, x=>oo)\n```\n\n::: {.cell-output .cell-output-display execution_count=18}\n```\n(-oo, 0)\n```\n:::\n:::\n\n\nThe $\\ln(x/100)$ part of $f$ goes $-\\infty$ as $x \\rightarrow 0+$; yet $f(x)$ is eventually positive as $x \\rightarrow 0$. So a graph should\n\n\n * not show too much of the vertical asymptote\n * capture the point where $f(x)$ must cross $0$\n * capture the point where $f(x)$ has a relative maximum\n * show enough past this maximum to indicate to the reader the eventual horizontal asyptote.\n\n\nFor that, we need to get the $x$ intercepts and the critical points. The $x/100$ means this graph has some scaling to it, so we first look between $0$ and $200$:\n\n::: {.cell execution_count=18}\n``` {.julia .cell-code}\nfind_zeros(ex, 0, 200) # domain is (0, oo)\n```\n\n::: {.cell-output .cell-output-display execution_count=19}\n```\n1-element Vector{Float64}:\n 100.0\n```\n:::\n:::\n\n\nTrying the same for the critical points comes up empty. We know there is one, but it is past $200$. Scanning wider, we see:\n\n::: {.cell execution_count=19}\n``` {.julia .cell-code}\nfind_zeros(diff(ex,x), 0, 500)\n```\n\n::: {.cell-output .cell-output-display execution_count=20}\n```\n1-element Vector{Float64}:\n 271.8281828459045\n```\n:::\n:::\n\n\nSo maybe graphing over $[50, 300]$ will be a good start:\n\n::: {.cell execution_count=20}\n``` {.julia .cell-code}\nplot(ex, 50, 300)\n```\n\n::: {.cell-output .cell-output-display execution_count=21}\n{}\n:::\n:::\n\n\nBut it isn't! The function takes its time getting back towards $0$. We know that there must be a change of concavity as $x \\rightarrow \\infty$, as there is a horizontal asymptote. We looks for the anticipated inflection point to ensure our graph includes that:\n\n::: {.cell execution_count=21}\n``` {.julia .cell-code}\nfind_zeros(diff(ex, x, x), 1, 5000)\n```\n\n::: {.cell-output .cell-output-display execution_count=22}\n```\n1-element Vector{Float64}:\n 448.1689070338064\n```\n:::\n:::\n\n\nSo a better plot is found by going well beyond that inflection point:\n\n::: {.cell execution_count=22}\n``` {.julia .cell-code}\nplot(ex, 75, 1500)\n```\n\n::: {.cell-output .cell-output-display execution_count=23}\n{}\n:::\n:::\n\n\n## Questions\n\n\n###### Question\n\n\nConsider this graph\n\n::: {.cell hold='true' execution_count=23}\n\n::: {.cell-output .cell-output-display execution_count=24}\n{}\n:::\n:::\n\n\nWhat kind of *asymptotes* does it appear to have?\n\n::: {.cell hold='true' execution_count=24}\n\n::: {.cell-output .cell-output-display execution_count=25}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='15960807797932062823' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_15960807797932062823\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_15960807797932062823_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_15960807797932062823\"\n id=\"radio_15960807797932062823_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n Just a horizontal asymptote, \\(y=0\\)\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_15960807797932062823_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_15960807797932062823\"\n id=\"radio_15960807797932062823_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n Just vertical asymptotes at \\(x=-1\\) and \\(x=1\\)\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_15960807797932062823_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_15960807797932062823\"\n id=\"radio_15960807797932062823_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n Vertical asymptotes at \\(x=-1\\) and \\(x=1\\) and a horizontal asymptote \\(y=1\\)\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_15960807797932062823_4\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_15960807797932062823\"\n id=\"radio_15960807797932062823_4\" value=\"4\">\n </input>\n <span class=\"label-body px-1\">\n Vertical asymptotes at \\(x=-1\\) and \\(x=1\\) and a slant asymptote\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='15960807797932062823_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_15960807797932062823\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 4;\n var msgBox = document.getElementById('15960807797932062823_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_15960807797932062823\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_15960807797932062823\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\n###### Question\n\n\nConsider the function $p(x) = x + 2x^3 + 3x^3 + 4x^4 + 5x^5 +6x^6$. Which interval shows more than a $U$-shaped graph that dominates for large $x$ due to the leading term being $6x^6$?\n\n\n(Find an interval that contains the zeros, critical points, and inflection points.)\n\n::: {.cell hold='true' execution_count=25}\n\n::: {.cell-output .cell-output-display execution_count=26}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='16652237429635016138' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_16652237429635016138\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_16652237429635016138_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_16652237429635016138\"\n id=\"radio_16652237429635016138_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n \\((-5,5)\\), the default bounds of a calculator\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_16652237429635016138_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_16652237429635016138\"\n id=\"radio_16652237429635016138_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n \\((-3.5, 3.5)\\), the bounds given by Cauchy for the real roots of \\(p\\)\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_16652237429635016138_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_16652237429635016138\"\n id=\"radio_16652237429635016138_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n \\((-1, 1)\\), as many special polynomials have their roots in this interval\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_16652237429635016138_4\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_16652237429635016138\"\n id=\"radio_16652237429635016138_4\" value=\"4\">\n </input>\n <span class=\"label-body px-1\">\n \\((-1.1, .25)\\), as this constains all the roots, the critical points, and inflection points and just a bit more\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='16652237429635016138_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_16652237429635016138\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 4;\n var msgBox = document.getElementById('16652237429635016138_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_16652237429635016138\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_16652237429635016138\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\n###### Question\n\n\nLet $f(x) = x^3/(9-x^2)$.\n\n\nWhat points are *not* in the domain of $f$?\n\n::: {.cell execution_count=26}\n\n::: {.cell-output .cell-output-display execution_count=27}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='342412158759621938' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_342412158759621938\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_342412158759621938_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_342412158759621938\"\n id=\"radio_342412158759621938_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f, -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_342412158759621938_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_342412158759621938\"\n id=\"radio_342412158759621938_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f', -10, 10)</code>: <code>[-5.19615, 0, 5.19615]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_342412158759621938_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_342412158759621938\"\n id=\"radio_342412158759621938_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f'', -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_342412158759621938_4\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_342412158759621938\"\n id=\"radio_342412158759621938_4\" value=\"4\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the numerator: <code>[0]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_342412158759621938_5\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_342412158759621938\"\n id=\"radio_342412158759621938_5\" value=\"5\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the denominator: <code>[-3, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_342412158759621938_6\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_342412158759621938\"\n id=\"radio_342412158759621938_6\" value=\"6\">\n </input>\n <span class=\"label-body px-1\">\n The value of <code>f(0)</code>: <code>0</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_342412158759621938_7\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_342412158759621938\"\n id=\"radio_342412158759621938_7\" value=\"7\">\n </input>\n <span class=\"label-body px-1\">\n None of these choices\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='342412158759621938_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_342412158759621938\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 5;\n var msgBox = document.getElementById('342412158759621938_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_342412158759621938\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_342412158759621938\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\nThe $x$-intercepts are:\n\n::: {.cell hold='true' execution_count=27}\n\n::: {.cell-output .cell-output-display execution_count=28}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='16734935305345779169' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_16734935305345779169\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_16734935305345779169_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_16734935305345779169\"\n id=\"radio_16734935305345779169_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f, -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_16734935305345779169_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_16734935305345779169\"\n id=\"radio_16734935305345779169_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f', -10, 10)</code>: <code>[-5.19615, 0, 5.19615]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_16734935305345779169_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_16734935305345779169\"\n id=\"radio_16734935305345779169_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f'', -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_16734935305345779169_4\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_16734935305345779169\"\n id=\"radio_16734935305345779169_4\" value=\"4\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the numerator: <code>[0]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_16734935305345779169_5\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_16734935305345779169\"\n id=\"radio_16734935305345779169_5\" value=\"5\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the denominator: <code>[-3, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_16734935305345779169_6\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_16734935305345779169\"\n id=\"radio_16734935305345779169_6\" value=\"6\">\n </input>\n <span class=\"label-body px-1\">\n The value of <code>f(0)</code>: <code>0</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_16734935305345779169_7\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_16734935305345779169\"\n id=\"radio_16734935305345779169_7\" value=\"7\">\n </input>\n <span class=\"label-body px-1\">\n None of these choices\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='16734935305345779169_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_16734935305345779169\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 4;\n var msgBox = document.getElementById('16734935305345779169_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_16734935305345779169\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_16734935305345779169\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\nThe $y$-intercept is:\n\n::: {.cell hold='true' execution_count=28}\n\n::: {.cell-output .cell-output-display execution_count=29}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='4379146410226921356' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_4379146410226921356\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_4379146410226921356_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_4379146410226921356\"\n id=\"radio_4379146410226921356_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f, -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_4379146410226921356_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_4379146410226921356\"\n id=\"radio_4379146410226921356_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f', -10, 10)</code>: <code>[-5.19615, 0, 5.19615]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_4379146410226921356_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_4379146410226921356\"\n id=\"radio_4379146410226921356_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f'', -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_4379146410226921356_4\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_4379146410226921356\"\n id=\"radio_4379146410226921356_4\" value=\"4\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the numerator: <code>[0]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_4379146410226921356_5\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_4379146410226921356\"\n id=\"radio_4379146410226921356_5\" value=\"5\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the denominator: <code>[-3, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_4379146410226921356_6\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_4379146410226921356\"\n id=\"radio_4379146410226921356_6\" value=\"6\">\n </input>\n <span class=\"label-body px-1\">\n The value of <code>f(0)</code>: <code>0</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_4379146410226921356_7\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_4379146410226921356\"\n id=\"radio_4379146410226921356_7\" value=\"7\">\n </input>\n <span class=\"label-body px-1\">\n None of these choices\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='4379146410226921356_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_4379146410226921356\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 6;\n var msgBox = document.getElementById('4379146410226921356_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_4379146410226921356\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_4379146410226921356\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\nThere are *vertical asymptotes* at $x=\\dots$?\n\n::: {.cell hold='true' execution_count=29}\n\n::: {.cell-output .cell-output-display execution_count=30}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='10833813170044518280' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_10833813170044518280\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_10833813170044518280_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_10833813170044518280\"\n id=\"radio_10833813170044518280_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n The value of <code>f(0)</code>: <code>0</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_10833813170044518280_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_10833813170044518280\"\n id=\"radio_10833813170044518280_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f, -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_10833813170044518280_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_10833813170044518280\"\n id=\"radio_10833813170044518280_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n None of these choices\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_10833813170044518280_4\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_10833813170044518280\"\n id=\"radio_10833813170044518280_4\" value=\"4\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f', -10, 10)</code>: <code>[-5.19615, 0, 5.19615]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_10833813170044518280_5\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_10833813170044518280\"\n id=\"radio_10833813170044518280_5\" value=\"5\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the denominator: <code>[-3, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_10833813170044518280_6\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_10833813170044518280\"\n id=\"radio_10833813170044518280_6\" value=\"6\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the numerator: <code>[0]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_10833813170044518280_7\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_10833813170044518280\"\n id=\"radio_10833813170044518280_7\" value=\"7\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f'', -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='10833813170044518280_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_10833813170044518280\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 5;\n var msgBox = document.getElementById('10833813170044518280_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_10833813170044518280\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_10833813170044518280\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\nThe *slant* asymptote has slope?\n\n::: {.cell hold='true' execution_count=30}\n\n::: {.cell-output .cell-output-display execution_count=31}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='13028554335859461168' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_13028554335859461168\">\n <div style=\"padding-top: 5px\">\n </br>\n<div class=\"input-group\">\n <input id=\"13028554335859461168\" type=\"number\" class=\"form-control\" placeholder=\"Numeric answer\">\n</div>\n\n \n </div>\n </div>\n <div id='13028554335859461168_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.getElementById(\"13028554335859461168\").addEventListener(\"change\", function() {\n var correct = (Math.abs(this.value - 1) <= 0);\n var msgBox = document.getElementById('13028554335859461168_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_13028554335859461168\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_13028554335859461168\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n});\n\n</script>\n```\n:::\n:::\n\n\nThe function has critical points at\n\n::: {.cell hold='true,echo' execution_count=31}\n``` {.julia .cell-code}\nradioq(qchoices, 2, keep_order=true)\n```\n\n::: {.cell-output .cell-output-display execution_count=32}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='17545144651571496111' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_17545144651571496111\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_17545144651571496111_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_17545144651571496111\"\n id=\"radio_17545144651571496111_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f, -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_17545144651571496111_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_17545144651571496111\"\n id=\"radio_17545144651571496111_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f', -10, 10)</code>: <code>[-5.19615, 0, 5.19615]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_17545144651571496111_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_17545144651571496111\"\n id=\"radio_17545144651571496111_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f'', -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_17545144651571496111_4\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_17545144651571496111\"\n id=\"radio_17545144651571496111_4\" value=\"4\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the numerator: <code>[0]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_17545144651571496111_5\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_17545144651571496111\"\n id=\"radio_17545144651571496111_5\" value=\"5\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the denominator: <code>[-3, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_17545144651571496111_6\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_17545144651571496111\"\n id=\"radio_17545144651571496111_6\" value=\"6\">\n </input>\n <span class=\"label-body px-1\">\n The value of <code>f(0)</code>: <code>0</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_17545144651571496111_7\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_17545144651571496111\"\n id=\"radio_17545144651571496111_7\" value=\"7\">\n </input>\n <span class=\"label-body px-1\">\n None of these choices\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='17545144651571496111_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_17545144651571496111\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 2;\n var msgBox = document.getElementById('17545144651571496111_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_17545144651571496111\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_17545144651571496111\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\nThe function has relative extrema at\n\n::: {.cell hold='true' execution_count=32}\n\n::: {.cell-output .cell-output-display execution_count=33}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='11388292424505177996' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_11388292424505177996\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_11388292424505177996_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_11388292424505177996\"\n id=\"radio_11388292424505177996_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f, -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_11388292424505177996_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_11388292424505177996\"\n id=\"radio_11388292424505177996_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f', -10, 10)</code>: <code>[-5.19615, 0, 5.19615]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_11388292424505177996_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_11388292424505177996\"\n id=\"radio_11388292424505177996_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f'', -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_11388292424505177996_4\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_11388292424505177996\"\n id=\"radio_11388292424505177996_4\" value=\"4\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the numerator: <code>[0]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_11388292424505177996_5\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_11388292424505177996\"\n id=\"radio_11388292424505177996_5\" value=\"5\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the denominator: <code>[-3, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_11388292424505177996_6\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_11388292424505177996\"\n id=\"radio_11388292424505177996_6\" value=\"6\">\n </input>\n <span class=\"label-body px-1\">\n The value of <code>f(0)</code>: <code>0</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_11388292424505177996_7\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_11388292424505177996\"\n id=\"radio_11388292424505177996_7\" value=\"7\">\n </input>\n <span class=\"label-body px-1\">\n None of these choices\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='11388292424505177996_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_11388292424505177996\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 7;\n var msgBox = document.getElementById('11388292424505177996_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_11388292424505177996\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_11388292424505177996\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\nThe function has inflection points at\n\n::: {.cell hold='true' execution_count=33}\n\n::: {.cell-output .cell-output-display execution_count=34}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='12339552066780780167' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_12339552066780780167\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_12339552066780780167_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_12339552066780780167\"\n id=\"radio_12339552066780780167_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f, -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_12339552066780780167_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_12339552066780780167\"\n id=\"radio_12339552066780780167_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f', -10, 10)</code>: <code>[-5.19615, 0, 5.19615]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_12339552066780780167_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_12339552066780780167\"\n id=\"radio_12339552066780780167_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n The values of <code>find_zeros(f'', -10, 10)</code>: <code>[-3, 0, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_12339552066780780167_4\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_12339552066780780167\"\n id=\"radio_12339552066780780167_4\" value=\"4\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the numerator: <code>[0]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_12339552066780780167_5\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_12339552066780780167\"\n id=\"radio_12339552066780780167_5\" value=\"5\">\n </input>\n <span class=\"label-body px-1\">\n The zeros of the denominator: <code>[-3, 3]</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_12339552066780780167_6\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_12339552066780780167\"\n id=\"radio_12339552066780780167_6\" value=\"6\">\n </input>\n <span class=\"label-body px-1\">\n The value of <code>f(0)</code>: <code>0</code>\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_12339552066780780167_7\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_12339552066780780167\"\n id=\"radio_12339552066780780167_7\" value=\"7\">\n </input>\n <span class=\"label-body px-1\">\n None of these choices\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='12339552066780780167_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_12339552066780780167\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 7;\n var msgBox = document.getElementById('12339552066780780167_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_12339552066780780167\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_12339552066780780167\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\n###### Question\n\n\nA function $f$ has\n\n\n * zeros of $\\{-0.7548\\dots, 2.0\\}$,\n * critical points at $\\{-0.17539\\dots, 1.0, 1.42539\\dots\\}$,\n * inflection points at $\\{0.2712\\dots,1.2287\\}$.\n\n\nIs this a possible graph of $f$?\n\n::: {.cell hold='true' execution_count=34}\n\n::: {.cell-output .cell-output-display execution_count=35}\n{}\n:::\n:::\n\n\n::: {.cell hold='true' execution_count=35}\n\n::: {.cell-output .cell-output-display execution_count=36}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='7897674602405631850' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_7897674602405631850\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_7897674602405631850_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_7897674602405631850\"\n id=\"radio_7897674602405631850_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n Yes\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_7897674602405631850_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_7897674602405631850\"\n id=\"radio_7897674602405631850_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n No\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='7897674602405631850_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_7897674602405631850\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 1;\n var msgBox = document.getElementById('7897674602405631850_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_7897674602405631850\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_7897674602405631850\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\n###### Question\n\n\nTwo models for population growth are *exponential* growth: $P(t) = P_0 a^t$ and [logistic growth](https://en.wikipedia.org/wiki/Logistic_function#In_ecology:_modeling_population_growth): $P(t) = K P_0 a^t / (K + P_0(a^t - 1))$. The exponential growth model has growth rate proportional to the current population. The logistic model has growth rate depending on the current population *and* the available resources (which can limit growth).\n\n\nLetting $K=10$, $P_0=5$, and $a= e^{1/4}$. A plot over $[0,5]$ shows somewhat similar behaviour:\n\n::: {.cell execution_count=36}\n``` {.julia .cell-code}\nK, P0, a = 50, 5, exp(1/4)\nexponential_growth(t) = P0 * a^t\nlogistic_growth(t) = K * P0 * a^t / (K + P0*(a^t-1))\n\nplot(exponential_growth, 0, 5)\nplot!(logistic_growth)\n```\n\n::: {.cell-output .cell-output-display execution_count=37}\n{}\n:::\n:::\n\n\nDoes a plot over $[0,50]$ show qualitatively\t similar behaviour?\n\n::: {.cell hold='true' execution_count=37}\n\n::: {.cell-output .cell-output-display execution_count=38}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='6001833693634372227' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_6001833693634372227\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_6001833693634372227_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_6001833693634372227\"\n id=\"radio_6001833693634372227_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n Yes\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_6001833693634372227_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_6001833693634372227\"\n id=\"radio_6001833693634372227_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n No\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='6001833693634372227_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_6001833693634372227\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 1;\n var msgBox = document.getElementById('6001833693634372227_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_6001833693634372227\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_6001833693634372227\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\nExponential growth has $P''(t) = P_0 a^t \\log(a)^2 > 0$, so has no inflection point. By plotting over a sufficiently wide interval, can you answer: does the logistic growth model have an inflection point?\n\n::: {.cell hold='true' execution_count=38}\n\n::: {.cell-output .cell-output-display execution_count=39}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='15739806424610812285' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_15739806424610812285\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_15739806424610812285_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_15739806424610812285\"\n id=\"radio_15739806424610812285_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n Yes\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_15739806424610812285_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_15739806424610812285\"\n id=\"radio_15739806424610812285_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n No\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='15739806424610812285_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_15739806424610812285\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 1;\n var msgBox = document.getElementById('15739806424610812285_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_15739806424610812285\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_15739806424610812285\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\nIf yes, find it numerically:\n\n::: {.cell hold='true' execution_count=39}\n\n::: {.cell-output .cell-output-display execution_count=40}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='240560649080445891' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_240560649080445891\">\n <div style=\"padding-top: 5px\">\n </br>\n<div class=\"input-group\">\n <input id=\"240560649080445891\" type=\"number\" class=\"form-control\" placeholder=\"Numeric answer\">\n</div>\n\n \n </div>\n </div>\n <div id='240560649080445891_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.getElementById(\"240560649080445891\").addEventListener(\"change\", function() {\n var correct = (Math.abs(this.value - 8.78889830934488) <= 0.001);\n var msgBox = document.getElementById('240560649080445891_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_240560649080445891\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_240560649080445891\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n});\n\n</script>\n```\n:::\n:::\n\n\nThe available resources are quantified by $K$. As $K \\rightarrow \\infty$ what is the limit of the logistic growth model:\n\n::: {.cell hold='true' execution_count=40}\n\n::: {.cell-output .cell-output-display execution_count=41}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='173924680422992361' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_173924680422992361\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_173924680422992361_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_173924680422992361\"\n id=\"radio_173924680422992361_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n The limit is \\(P_0\\)\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_173924680422992361_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_173924680422992361\"\n id=\"radio_173924680422992361_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n The exponential growth model\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_173924680422992361_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_173924680422992361\"\n id=\"radio_173924680422992361_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n The limit does not exist\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='173924680422992361_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_173924680422992361\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 2;\n var msgBox = document.getElementById('173924680422992361_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_173924680422992361\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_173924680422992361\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\n##### Question\n\n\nThe plotting algorithm for plotting functions starts with a small initial set of points over the specified interval ($21$) and then refines those sub-intervals where the second derivative is determined to be large.\n\n\nWhy are sub-intervals where the second derivative is large different than those where the second derivative is small?\n\n::: {.cell hold='true' execution_count=41}\n\n::: {.cell-output .cell-output-display execution_count=42}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='6518824058241194571' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_6518824058241194571\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_6518824058241194571_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_6518824058241194571\"\n id=\"radio_6518824058241194571_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n The function will be much larger (in absolute value) when the second derivative is large, so there needs to be more points to capture the shape\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_6518824058241194571_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_6518824058241194571\"\n id=\"radio_6518824058241194571_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n The function will increase (or decrease) rapidly when the second derivative is large, so there needs to be more points to capture the shape\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_6518824058241194571_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_6518824058241194571\"\n id=\"radio_6518824058241194571_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n The function will have more curvature when the second derivative is large, so there needs to be more points to capture the shape\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='6518824058241194571_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_6518824058241194571\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 3;\n var msgBox = document.getElementById('6518824058241194571_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_6518824058241194571\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_6518824058241194571\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\n##### Question\n\n\nIs there a nice algorithm to identify what domain a function should be plotted over to produce an informative graph? [Wilkinson](https://www.cs.uic.edu/~wilkinson/Publications/plotfunc.pdf) has some suggestions. (Wilkinson is well known to the `R` community as the specifier of the grammar of graphics.) It is mentioned that \"finding an informative domain for a given function depends on at least three features: periodicity, asymptotics, and monotonicity.\"\n\n\nWhy would periodicity matter?\n\n::: {.cell hold='true' execution_count=42}\n\n::: {.cell-output .cell-output-display execution_count=43}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='8519221984698905431' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_8519221984698905431\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_8519221984698905431_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_8519221984698905431\"\n id=\"radio_8519221984698905431_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n An informative graph only needs to show one or two periods, as others can be inferred.\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_8519221984698905431_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_8519221984698905431\"\n id=\"radio_8519221984698905431_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n An informative graph need only show a part of the period, as the rest can be inferred.\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_8519221984698905431_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_8519221984698905431\"\n id=\"radio_8519221984698905431_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n An informative graph needs to show several periods, as that will allow proper computation for the \\(y\\) axis range.\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='8519221984698905431_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_8519221984698905431\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 1;\n var msgBox = document.getElementById('8519221984698905431_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_8519221984698905431\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_8519221984698905431\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\nWhy should asymptotics matter?\n\n::: {.cell hold='true' execution_count=43}\n\n::: {.cell-output .cell-output-display execution_count=44}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='1006581434455490418' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_1006581434455490418\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_1006581434455490418_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_1006581434455490418\"\n id=\"radio_1006581434455490418_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n A horizontal asymptote must be plotted from \\(-\\infty\\) to \\(\\infty\\)\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_1006581434455490418_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_1006581434455490418\"\n id=\"radio_1006581434455490418_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n A slant asymptote must be plotted over a very wide domain so that it can be identified.\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_1006581434455490418_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_1006581434455490418\"\n id=\"radio_1006581434455490418_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n A vertical asymptote can distory the \\(y\\) range, so it is important to avoid too-large values\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='1006581434455490418_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_1006581434455490418\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 3;\n var msgBox = document.getElementById('1006581434455490418_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_1006581434455490418\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_1006581434455490418\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\nMonotonicity means increasing or decreasing. This is important for what reason?\n\n::: {.cell hold='true' execution_count=44}\n\n::: {.cell-output .cell-output-display execution_count=45}\n```{=html}\n<form class=\"mx-2 my-3 mw-100\" name='WeaveQuestion' data-id='6417558088215178209' data-controltype=''>\n <div class='form-group '>\n <div class='controls'>\n <div class=\"form\" id=\"controls_6417558088215178209\">\n <div style=\"padding-top: 5px\">\n <div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_6417558088215178209_1\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_6417558088215178209\"\n id=\"radio_6417558088215178209_1\" value=\"1\">\n </input>\n <span class=\"label-body px-1\">\n For monotonic regions, the function will have a vertical asymptote, so the region should not be plotted\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_6417558088215178209_2\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_6417558088215178209\"\n id=\"radio_6417558088215178209_2\" value=\"2\">\n </input>\n <span class=\"label-body px-1\">\n For monotonic regions, a large slope or very concave function might require more care to plot\n </span>\n </label>\n</div>\n<div class=\"form-check\">\n <label class=\"form-check-label\" for=\"radio_6417558088215178209_3\">\n <input class=\"form-check-input\" type=\"radio\" name=\"radio_6417558088215178209\"\n id=\"radio_6417558088215178209_3\" value=\"3\">\n </input>\n <span class=\"label-body px-1\">\n For monotonic regions, a function is basically a straight line\n </span>\n </label>\n</div>\n\n \n </div>\n </div>\n <div id='6417558088215178209_message' style=\"padding-bottom: 15px\"></div>\n </div>\n </div>\n</form>\n\n<script text='text/javascript'>\ndocument.querySelectorAll('input[name=\"radio_6417558088215178209\"]').forEach(function(rb) {\nrb.addEventListener(\"change\", function() {\n var correct = rb.value == 2;\n var msgBox = document.getElementById('6417558088215178209_message');\n if(correct) {\n msgBox.innerHTML = \"<div class='pluto-output admonition note alert alert-success'><span> 👍 Correct </span></div>\";\n var explanation = document.getElementById(\"explanation_6417558088215178209\")\n if (explanation != null) {\n explanation.style.display = \"none\";\n }\n } else {\n msgBox.innerHTML = \"<div class='pluto-output admonition alert alert-danger'><span>👎 Incorrect </span></div>\";\n var explanation = document.getElementById(\"explanation_6417558088215178209\")\n if (explanation != null) {\n explanation.style.display = \"block\";\n }\n }\n\n})});\n\n</script>\n```\n:::\n:::\n\n\n",
|
||
"supporting": [
|
||
"curve_sketching_files"
|
||
],
|
||
"filters": [],
|
||
"includes": {
|
||
"include-in-header": [
|
||
"<script src=\"https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js\" integrity=\"sha512-c3Nl8+7g4LMSTdrm621y7kf9v3SDPnhxLNhcjFJbKECVnmZHTdo+IRO05sNLTH/D3vA6u1X32ehoLC7WFVdheg==\" crossorigin=\"anonymous\"></script>\n<script src=\"https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js\" integrity=\"sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==\" crossorigin=\"anonymous\"></script>\n<script type=\"application/javascript\">define('jquery', [],function() {return window.jQuery;})</script>\n"
|
||
]
|
||
}
|
||
}
|
||
} |