{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 9 | INEQUALITIES AND ABOSOLUTE VALUES" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "><b>Dr J H Klopper</b></p>\n", ">Department of Biostatistics and Bioinformatics</br>\n", ">Milken Institute School of Public Health</br>\n", ">George Washington University" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "<p xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dct=\"http://purl.org/dc/terms/\"><span property=\"dct:title\">This chapter of Algebra for Health Data Science</span> by <span property=\"cc:attributionName\">Dr JH Klopper</span> is licensed under <a href=\"http://creativecommons.org/licenses/by-nc-nd/4.0/?ref=chooser-v1\" target=\"_blank\" rel=\"license noopener noreferrer\" style=\"display:inline-block;\">Attribution-NonCommercial-NoDerivatives 4.0 International<img style=\"height:22px!important;margin-left:3px;vertical-align:text-bottom;\" src=\"https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1\"><img style=\"height:22px!important;margin-left:3px;vertical-align:text-bottom;\" src=\"https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1\"><img style=\"height:22px!important;margin-left:3px;vertical-align:text-bottom;\" src=\"https://mirrors.creativecommons.org/presskit/icons/nc.svg?ref=chooser-v1\"><img style=\"height:22px!important;margin-left:3px;vertical-align:text-bottom;\" src=\"https://mirrors.creativecommons.org/presskit/icons/nd.svg?ref=chooser-v1\"></a></p>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Watch the pencil and paper video lecture [HERE](https://youtu.be/Rctqzu4hMjc)\n", "\n", "- Watch the Python video lecture [HERE](https://youtu.be/BEFiGCFhWLI)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 9.1 Packages used in the chapter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We start by importing the functions and package classes that we will use in this chapter and set the notebook to print mathematical notation." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from sympy import init_printing, symbols, Eq, solve, Rational\n", "from sympy import Abs, reduce_inequalities, reduce_abs_inequality, Poly, solve_poly_inequality, solve_rational_inequalities" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "init_printing()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use the `%config` magic to create high-resultion plots." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "%config InlineBackend.figure_format = 'retina'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also import the `spb` package to extend the plotting functionalities of `sympy`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "import spb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 9.2 Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The equal symbol $=$ allows us to consider two _versions_ of the same entity. We have a left-hand and a right-hand side of the equal sign. The left-hand side is equal to the right-hand side. We can also say that the left-hand side is _identical_ to the right-hand side. The equal sign is a _relational operator_." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also consider inequalities, where the relationship between the left-hand and the right-hand sides are not equal. In this chapter we consider inequalities. We also consider the useful notion of absolute values." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 9.3 Interval notation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In more advanced mathematical studies, we consider conditional statements. Such statements evaluate to either _true_ or _false_. Some simple statements include conditional arguments. We could write the statmenet $3=3$. The condition for this statement uses the equality symbols. The statement returns a value of _true_ since the left-hand side and the right-hand side are equal to each other. In Python code, we cannot use the `=` symbol, since this is used for assignment. We use the `==` symbol to test for equality." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Is 3 equal tot 3?\n", "3 == 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The code returns a value of `True` indicating that the statement is true." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The table below shows the symbols used for conditional statements, with example statements that all evaluate to _true_." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| Symbol | Meaning | Example |\n", "| :---- | :---- | :---- |\n", "| $=$ | equal to | $3=3$ |\n", "| $\\neq$ | not equal to | $3\\neq 4$ |\n", "| $<$ | less than | $3<4$ |\n", "| $\\leq$ | less than or equal to | $3\\leq 4$ |\n", "| $>$ | greater than | $4>3$ |\n", "| $\\geq$ | greater than or equal to | $4\\geq 3$ |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The symbols $\\le , \\leq, \\ge$ and $\\geq$ are called _inequality symbols_. We can use these symbols to write _inequalities_. For example, we can write $x<3$ or $x\\geq 3$. The first inequality states that $x$ is less than $3$. The second inequality states that $x$ is greater than or equal to $3$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These inequalities allow use to consider intervals of real number. Intervals are sets of contiguous values. For example, the interval $[1,3]$ is the set of all values between $1$ and $3$, including $1$ and $3$. The interval $(1,3)$ is the set of all values between $1$ and $3$, excluding $1$ and $3$. In bother cases, the values inside of the brackets and parentheses indicate the minimum and the maximum value in the set." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The brackets and the parentheses notations are commonly used in mathematics. The square brackets $[ \\, ]$ indicate that the minimum and maximum values are included in the interval. The round brackets $( \\, )$ indicate that the value is excluded from the interval. The interval $[1,3]$ is called a <span style=\"color:lightgreen\">__closed interval__</span> and the interval $(1,3)$ is called an <span style=\"color:lightgreen\">__open interval__</span>." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For any value $x$ in the closed interval $[a,b]$ where $a,b \\in \\mathbb{R}$ and $a<b$ we can also use the notation $a \\leq x \\leq b$. For any value $x$ in the open interval $(a,b)$ where $a,b \\in \\mathbb{R}$ and $a<b$, we can use the notation $a < x < b$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also define <span style=\"color:lightgreen\">__semi-open__</span> or <span style=\"color:lightgreen\">__semi-closed__</span> intervals. The interval $[ a , b )$ is left-closed and right-open and can be written as $a \\leq x < b$. The interval $(a,b]$ is left-open and right closed and can be written as $a < x \\leq b>$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Positive infinity and negative infinity are not numbers and cannot be the minimum or maximum values in an interval. We can never have that $[ -\\infty, a ]$ or $[3 , \\infty]$. Instead we would have $ \\left( - \\infty , \\infty \\right)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 9.3 Operations on inequalities" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When we perform operations on equalities, we require that the left- and the right-hand sides stay equal. In __Equation 9.3.1__ we start with the equality $3=3$ and then add $4$ to both sides, maintaining the equality." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\begin{align*}\n", "&3=3 \\\\ \\\\\n", "&3 + 4 = 3 + 4 \\\\ \\\\\n", "&7=7\n", "\\end{align*}\n", "\\tag{Equation 9.3.1}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The same argument applies to operations on inequalities. These operation must maintain the inequality. For $a,b,c,d \\in \\mathbb{R} - \\{ 0 \\}$ (the real numbers without $0$), we can write the following inequalities." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. If $a<b$ then $a + c < b + c$ \n", "\n", "2. If $a<b$ then $a - c < b - c$\n", "\n", "3. If $a>b$ then $a + c > b + c$\n", "\n", "4. If $a>b$ then $a - c > b - c$\n", "\n", "5. If $a<b$ and $c>0$ then $ac<bc$\n", "\n", "6. If $a<b$ and $c<0$ then $ac>bc$ (the sign flips)\n", "\n", "7. If $a>b$ and $c>0$ then $ac>bc$\n", "\n", "8. If $a>b$ and $c<0$ then $ac<bc$ (the sign flips)\n", "\n", "9. If $a<b$ and $c>0$ then $\\frac{a}{c} < \\frac{b}{c}$\n", "\n", "10. If $a<b$ and $c<0$ then $\\frac{a}{c} > \\frac{b}{c}$ (the sign flips)\n", "\n", "11. If $a>b$ and $c>0$ then $\\frac{a}{c} > \\frac{b}{c}$\n", "\n", "12. If $a>b$ and $c<0$ then $\\frac{a}{c} < \\frac{b}{c}$ (the sign flips)\n", "\n", "13. If $\\frac{a}{c} < \\frac{b}{d}$ then $\\frac{c}{a} > \\frac{d}{b}$ (the sign flips)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Problem 9.3.1__ Consider the inequality $-3 < 4$. Show that it is _true_ using code and the show that multiplying both sides by $3$ maintains the inequality." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use simply code to determine if $-3$ is less than $4$." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "-3 < 4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The statement is _true_ indeed." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We multiply both sides by $3$ and evaluate the inequality." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "-3 * 3 < 4 * 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The inquality is still _true_." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Homework 9.3.1__ Consider the inequality $-3 < 4$. Show that the inequality holds if we subtract $4$ from both sides." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Problem 9.3.2__ Consider the inequality $-3 < 4$. We have shown that it is _true_ using code. Now show that multiplying both sides by $-3$ reverses the inequality." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we mutiply both sides by $-3$ and _flip_ the inequality." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "-3 * (-3) > 4 * (-3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By flipping the inequality, we have changed the direction of the inequality and the statement remains _true_." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Homework 9.3.2__ Consider the inequality $-3 < 4$. Show that the inequality holds if we multiply both sides by $9$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Problem 9.3.3__ Show that the inequality in __Equation 9.3.2__ holds." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\text{If } \\frac{1}{3} < \\frac{1}{2} \\text{ then } \\frac{3}{1} > \\frac{2}{1}\n", "\\tag{Equation 9.3.2}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use the `Rational` function below and pass the numerator and denominator as arguments." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Rational(1, 3) < Rational(1, 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A <span style=\"color:lightgreen\">__reciprocal__</span> is the inverse of a number. The reciprocal of $3$ is $\\frac{1}{3}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below, we use the reciprocals of a thrid and a half and swap inequality symbol." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Rational(3, 1) > Rational(2, 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that __Equation 9.3.2__ is indeed true." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Homework 9.3.3__ Show that the inequality in __Equation 9.3.3__ holds." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\text{If } 1 < 3 \\text{ then } \\frac{1}{1} > \\frac{1}{3}\n", "\\tag{Equation 9.3.3}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 9.4 Solving inequalities" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Solving inequalities is the process of solving for the unknown variable in an equation. The rules are very similar to solving any algebraic equation with a single unknown. We do have to remember the rules for operations on inequalities." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Problem 9.4.1__ Solve the inequality $3x - 4 < 5$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see the steps of the solution in __Equation 9.4.1__." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\begin{align*}\n", "&3x - 4 < 5 \\\\ \\\\\n", "&3x - 4 + 4 < 5 + 4 \\text{ (add } 4 \\text{ to both sides)} \\\\ \\\\\n", "&3x < 9 \\text{ (property 1 holds)} \\\\ \\\\\n", "&\\frac{3x}{3} < \\frac{9}{3} \\text{ (divide by } 3 \\text{ on both sides)} \\\\ \\\\\n", "&x < 3 \\text{ (property 9 holds)}\n", "\\end{align*}\n", "\\tag{Equation 9.4.1}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `sympy` package can be used to solve ineqialities. We create the mathematical variable $x$ and assign it to the computer variable `x` using the `symbols` function." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "# Create the mathematical symbol x using the symbols function and assign it to the variable x\n", "x = symbols('x')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use the `reduce_inequalities` function and pass the inequality as first argument. The second argument `x` refers to the variable that we want to solve for. The `reduce_inequalities` function returns two intervals and the logical connective $\\land$. We use the `simplifty` method to simplify the result. Try the code withouth the `simplify` method to see the difference." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADIAAAAQCAYAAABUWyyMAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACJElEQVRIDdWW701CQQzAwTCAOIJugDiBuoF/JhA3kPAJvhndAJ3A6AhsgLoBjqBsgL/feXd5gsT3NBFp0ndtr+21vV6hPpvNausAg8FgmzjPY6ybrPJXyEfK6uuQCMEauEGnRGrQR8juwWPohw2IdYAOQXZi8CnecBMwPQUrS8SgwCfQFvkOnlGYRgy62MlnaGTqjwgCsLpd0Iruzwf0VRjoqNss7iGztYShn5wIG/ahhwh74BlotU5BYYzOwwdZ/YvtBVb2uD524T9VtIpHbA/QvwLPoW+0zYm4gTA8JlYPvQUNvguatYaVEsHO4tjDVm8Iv8P6Y8C+hbFJWGjb7REMEBJBwZsw0ARWy8O9FWELLO4H4bIP/rxJ2ydU7rcJpHPwY/BiDdr4fGNhaoXxC9MCg0JU8gbayHblqwA2jkQTuYSudINVzlEX/28s3npzIwpyEvLACXgXqH/wIWALbVvNQ2qtg5BIcRcD28EsczWRbYpFvWU0esfsiYfQEzANkGUmZeRPKNlGS2NoxE3bIf3c++CnyF8KJ/Tg7flSEG2dKB6s7YTVx35dysGi0hTRCHvXIrQjM/KxewOi08mDX8EMyNwbZ0EFIh6s30vMOqwhIeibuFfW20IRsfexG68Fm9b7/b6ME8lDagivo9IhrFf6Cp/bTJ3fAL7SD6I+HQjzVf7SPXoW1JZN4EBJXbS6P40xIdvY8Vls4xRopXUt/v2WyegdpNHfkqOpBwsAAAAASUVORK5CYII=", "text/latex": [ "$\\displaystyle x < 3$" ], "text/plain": [ "x < 3" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solve the inequality for x and simplify the solution\n", "reduce_inequalities(3 * x - 4 < 5, x).simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `solve_poly_inequality` can also be used and returns an interval where the inequality holds. The argument of this function contains the `Poly` function. The latter contains the left-hand side of the inequality after algebraic manipulation, that is, $3x-4<5$ is manipulated to be $3x-4-5<0$ and we pass $3x-4-5$ as argument to the `Poly` function. The second argument is the variable that we want to solve for. The second argument of the `solve_poly_inequality` function is the sign of the inequality. The `solve_poly_inequality` function returns a single interval." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFAAAAAVCAYAAADRhGlyAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADyUlEQVRYCd2Y7VFVMRCGL44FgHSAHYBUoHTARwfQgQy/4J+DHaAVIHSAdiB0IB2olODzHJPD+diEe+deZoCd2Ztkk2yym3c3OXfp+Pj442QyOYClnZOTk5v/1f4v8jX4ti99ma2arfT1/PUKF6zCB3S8hUvOc9L6y3RXaJVg0eYRIf+sr+i4hN+8Ho0YCBi8jWjViYOuZ9nEjjU2niNumbrtU+Tfs0HW4XV4H/6S5VEpAovEZBc4ojwsDnpGHcmeQ+1JrCPP4CvaAqUl2gLGyNQHRao6kFmnsAu8FNrHEFHVdVZG3lFgpLbrgyI95MBdFqtCuKj5aXaY4+8SNzvEPtshJdv1QRGFxRzIJE/pUW9d1vBi+gCblK/Thqn2KRmwi3QDvoa/ISsa3p9932KOaFu5l0wmyDIaS5GmD1w7BFINgVtMyvDurrmQOhs3nHJ46AwT+V9Yh7aUDPyBQEPMxT9h8/Lcr4K0lnsw14UOok8f6IuQighk9Du4dCqhsmmFbHaNsRuU7caof0Kmo0zovkcvYdGxRynyMhmGN8g0PHx25YGlkrkZ+ZtJh4dSol909A61O7CGQOP+T3fwAuueeH5KNGppi8L3sOUFbZ0n0nYoIzqnr2hYNCHLmOcB+J5T9zls+sihnIflUh944CHVEPiGGRozIhbTuaLFclrqfuX8jiah9w7Wiea5C7hF6HA843SCaWAuQodIz4e2kupdnaaOop01B3aV9OppkW5Y9frnaaC7QQc6/BIQpbU8XDQs2gO6m7zpGoN+Q1g0y35hdKkIJAfVQljozrTB7qpz1jVEI7cxNkQZcsNq1leCyDZcZ7HLsfoipJoD3Vwx9kNt0wtvMaJBw3AKckPXC8VQdg9nhbEjdE7hmDv05ZCl2pIXphShXQQWD6oWwiLAW2rhhKEaoWP8pNKoCaUnrfO8hZswojQHXsGixidMDi/rypq51CfUne8zyBRQSi+jT1LGenk414ut1Uc7k7r0RUg1BHo7hSgJNc0oZLMiyFvWG1cnfYV1aPunBXWR6iNbw/dgnxTZyb13G+M0XqQsU9chI0LuHHV6eA3Tdh9bqW80B4HpxP2FtMT/gb6nPPURfJG54e7tGSp5SkL2LKL8NyVC00xbRYcpTN94iD1C1vithkAnOMgTek60uQjnJYNFvj4oUtWBbETI++eiJ/HkiX0auuEbc9bNJ5u1vZcqhnqqDkyDfa0/yifdcDMLaO9jcJtD59SnzQ9GX86B+TMmzHfpNHyTLWpzc9r2uNOx00e8L4XR8yX16VifNzv/AHume0b7oM/VAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\left[ \\left(-\\infty, 3\\right)\\right]$" ], "text/plain": [ "[(-∞, 3)]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solve for the interval that satisfies the inequality\n", "solve_poly_inequality(Poly(3 * x - 4 - 5, x), '<')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also write the solution as the open interval $\\left( - \\infty , 3 \\right)$ which is simply $x<3$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `subs` method allows us to use an equation or an inequality and then substitute a value for the unknow. Below, we use the inequality in __Problem 9.4.1__ and subsitute $x=2$, which is on the open interval $\\left( - \\infty , 3 \\right)$." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Use the subs method to determine if 2 satisfies the inequality\n", "(3 * x - 4 < 5).subs(x, 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is _true_ and the number $2$, as representative of the interval that is our solution, does indeed satisfy the inequality." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using a value outside of the interval such as $x = 3$ does not satisfy the inequality. We use the `subs` method to substitute $x=3$." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAPCAYAAABwfkanAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACVUlEQVRIDdWW21FbMRCGZYYCGKgASsCkAkwHMHSQdJAMT/YbAx1AKgjQAVABIR3EHYS4A+f7BJvRuZhzDsMLO7NnV9K/F61WskfT6XQ3pXQCKzdh6e5Z5O8G3x041rZns9miWG9VwejvO6ztHeOjVuAbJkfL5TKb4XSCcgsb4KDu62X9mvl99F/19VVjsI+szZHvlvRaEWz+ordWkaBW/xts5YbQ0xBwH2yZdB/8FaChSffxOwjTmTQV3oHt64RsPYVBEd8BvN7Dh71ua+SESfxcG+RnRN4Mcss56LTPxsB4SfWrz/BxzPyYcSZ0T9R2/A3rf4O5L8j0atKFYfmaJOYPsT2Dx+j5LiAvGN87B68kcCZ5hqxcdsY5IQ3R3VT2hR7+v6I/wuO29piwcC1jKPftYbG72HXh98DtgYsKM8zkpoP0dQUmHoeE7gnr/7Ct0pU3FVDpLDtl7gZFTugGN5FK5VxrI/D690X5q470mb1Bj7azym7cp7JOPrWf2pKuA3XaIILkY2ZhE/4BPzRAqydsIX/Qos1sl0vYFomTsvW8NyVZwJ+dSWOYK1paMmcwf+2O0HO/I61QJ4EzqSekl0xO6CZ3gTSpaIlbxo3Y4tf8vIGi58oLasUzEey13nZzlQqCv2TOBO11W2ABH8MNYn1SJh0XI2TDoGMiKq19HPEqkxOC1+M4jiLso/sgTEoHjH2x5qPiD5OBDLyAw9h3151XiDlx9qR97HFqa7WiTz1mfTiOwI5tB7Fe2j9wkO+w7RBxE7q43D7IeKttofn/P0xh/RHkP0QG2/u59wGyAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{False}$" ], "text/plain": [ "False" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Use the subs method to determine if 3 satisfies the inequality\n", "(3 * x - 4 < 5).subs(x, 3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result indeed shows that a represenattive value outside of the solution interval does not satisfy the inequality." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Homework 9.4.1__ Find the interval where the inequality $x + 5 \\ge 3$ ." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Problem 9.4.2__ Solve the inequality $-2 (x - 4) < 5$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We solve the inequality in __Equation 9.4.2__ using the rules of the operations on inequalities." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\begin{align*}\n", "&-2 (x - 4) < 5 \\\\ \\\\\n", "&\\frac{-2 (x - 4)}{-2} < \\frac{5}{-2} \\\\ \\\\\n", "&x - 4 > -\\frac{5}{2} \\text{ (the sign flips)} \\\\ \\\\\n", "&x - 4 + 4 > -\\frac{5}{2} + 4 \\\\ \\\\\n", "&x > \\frac{3}{2}\n", "\\end{align*}\n", "\\tag{Equation 9.4.2}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We solve the inequality using the `reduce_inequalities` function." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle x > \\frac{3}{2} \\wedge x < \\infty$" ], "text/plain": [ "x > 3/2 ∧ x < ∞" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reduce_inequalities(-2 * (x - 4) < 5, x).simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Despite using the `simplify` method, the `reduce_inequalities` function still returns the solution with a logical connective $\\land$, which means _and_ that reads $x$ _is larger than three-halves and less than infinity_. The solution is the open interval $\\left( \\frac{3}{2} , \\infty \\right)$. A result that is returned by the `solve_poly_inequality` function." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\left[ \\left(\\frac{3}{2}, \\infty\\right)\\right]$" ], "text/plain": [ "[(3/2, ∞)]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve_poly_inequality(Poly(-2 * (x - 4) - 5, x), '<')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use the `subs` method to substitute $x=2$, as representative value in the interval solution, into the inequality." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(-2 * (x - 4) < 5).subs(x, 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A representative value in the interval solution satisfies the inequality." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also solve quadratic equations." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Problem 9.4.3__ Solve the inequality $x^2 - 4x > -3$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Through simple algebra, we recognize the quadratic equation (second order polynomial) $x^2 - 4x + 3 > 0$. We can factorize this equation to $(x - 3)(x - 1) > 0$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the product of two arbitrary values $a,b \\in \\mathbb{R}$ to be positive (larger than $0$), we must have that both $a$ and $b$ are positive or that both $a$ abd $b$ are negative. We show the solution in __Equation 9.4.3__." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\begin{align*}\n", "&(x - 3)(x - 1) > 0 \\\\ \\\\\n", "&x - 3 > 0 \\text{ and } x - 1 > 0 \\text{ or } x - 3 < 0 \\text{ and } x - 1 < 0 \\\\ \\\\\n", "&x > 3 \\text{ and } x > 1 \\text{ or } x < 3 \\text{ and } x < 1\n", "\\end{align*}\n", "\\tag{Equation 9.4.3}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `reduce_inequalities` function confirms the result." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\left(x > 3 \\wedge x < \\infty\\right) \\vee x < 1$" ], "text/plain": [ "(x > 3 ∧ x < ∞) ∨ x < 1" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reduce_inequalities(x**2 - 4 * x > -3, x).simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The logical connective $\\vee$ means _or_. We have the intervals $\\left( 3 , \\infty \\right)$ or $\\left( - \\infty , 1 \\right)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `solve_poly_inequality` function returns the same result." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJ0AAAAVCAYAAABcxexjAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFAklEQVRoBd2a7VEUQRCG0TIA0QwwA5UI1AwAM4AMtPgF/yjMAI0AJQMwAj8ykAxUQvB5ltmtu9vZudnbnfWgq5rd6/nqfqene2aWB0dHR+82NjYOYGn3+Pj45+3r/F/kW/D1vPR+/loHW9dBhz6zm9KXsjkfe0jHT+EDCp7BXQ5no+d9lLjjdV1g2vxfKIx91/DuxAx7PsDPAPMCfvKASHfKyyXCqxjCyHeQb/N8Hyu/qzLscVK/wC94v1m0A5lOd8Pz42JZyd+MF8Ub+Rbj1hnpMe/+PkUenbeSOnb1jS5JzCivfM1I10lU0rhDnvfC4bQH/gKfYdcn2ImLEnU+UGAGEINJKIzVwjvI3/OsWefTBoOFTroWhC5ZmCWdDkv0TI27FwQoRi73rU7aeYZR2i4GU1EX3vsosI/esw5WR7jDqZTLHGcpZsucbg9DJ00vmYZNUi3YLgZTRbsuvN1r3wSubEcnf68d5WD2qEtrGruqip5WGcN91WvYTeaPoDCv84TcSd+DX8A/4M/IpgJdDBy76OLDnk68KTOqbcINhfr+XjkT0Ucp/JOYpSLdGwyqQ3hj7FgvGGzKqFOXDuSm+C+sEzbEbyfjK6wh7i2/w+57pjrdiYFYlKZsvANGYueec6XFQLuS+Ccx64x0GPQSXnkVpWYIg93Ae2psJpP3E2Q6l5tj910XsA73lqcRriZTzU9kgh694qkrjvT8RT9zC2Gkfhe7WYo3NteRaZvG2u4C7E30Uxr/JGapSGdK+9PborwGrtD6+F+14LfR7hXs0xOmDmdE2+UZo3PKpnAGMXCSStNSvLHXxeadl5icw25JxKkvlcY/iVkq0j3BEh2gRRgqQEYln7k0+7Xjd6wR/Xq61PHct3mH1kTCxfrUcwJMEaXJtN7HzlX16cQ71iG2mwmcHxfoZniPVY3JSuOfxCzldDFlK1kwcDblddbtW0Df1WqmnReNRsPUvnLtnKGvvTn1waTav4rNQn3Tq9Fe9rZ/MI2Ef3IBpdKrIXKKSY0BJYgCvAMI0WiG3JTniipNYiAWpSmFt5HfVDrVfAzFP4lZyumc0FJ7mWsArFbv4kwiN616qDDNqsNZR91WFCw0Ka7apc49wtgpvG/QoU6nvDbk4UNqskGmHkXwv1Wl+pvELOV0RhpPSaMTwJgK5j4xCRZ8ifyb5bBAu6dzMlzl72A/Ksueqn/xtE5FvLu6vHIxKuSQ/+ggCVCK3EaIRSetMHasrxTeXhWJTUOM6QFCm8WxwiFXD+qNjn+j2O1LErPOD/4oZiRyk+rFbRGib689jKaCJ3AnyFoTjMz93VtYnSy3XmsPg8yjuhT9iG8BdYykkinEce1Px/aqpnXnFfp0YptoQt0WhXrKO8duNZoR0D6JN+XqO3uSF7fWB/8+elB3VPxrc4IOLczCeJedTmcHofHsqbPud22f6GwEuOJZrf4hitKHE6szZi28oWPT3kUzGO+hepTCDL108stUenVsK83dpylcc9rGuMEOF2w0rYlBLg0deyy8h+qRa2+s3lLMkk7H5Jluqn1UrPd1k6Gv6TJ6B9VXV/oyyml7K+XG+hpj7DDWILzH0CNmX46MsbMwSzpdGMh9RJHPYTmG9Kyzj+H+T9cYpM19ovxYYw/Feyw9VsEwC7N6T1d/SonuJ4IHe2c21oSuYtBkbbDTg4sn6KVXJSWUuot4pzALZS5gbwp2/wER460FR+bVPwAAAABJRU5ErkJggg==", "text/latex": [ "$\\displaystyle \\left[ \\left(-\\infty, 1\\right), \\ \\left(3, \\infty\\right)\\right]$" ], "text/plain": [ "[(-∞, 1), (3, ∞)]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve_poly_inequality(Poly(x**2 - 4 * x + 3, x), '>')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below, we use the `subs` method to substitute $x = 4$ and $x = 0$, one represenattive value from each of the two intervals." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(x**2 - 4 * x > -3).subs(x, 4)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(x**2 - 4 * x > -3).subs(x, 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A value such as $x = 2$ which is not in either of the two intervals does not satisfy the inequality." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAPCAYAAABwfkanAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACVUlEQVRIDdWW21FbMRCGZYYCGKgASsCkAkwHMHSQdJAMT/YbAx1AKgjQAVABIR3EHYS4A+f7BJvRuZhzDsMLO7NnV9K/F61WskfT6XQ3pXQCKzdh6e5Z5O8G3x041rZns9miWG9VwejvO6ztHeOjVuAbJkfL5TKb4XSCcgsb4KDu62X9mvl99F/19VVjsI+szZHvlvRaEWz+ordWkaBW/xts5YbQ0xBwH2yZdB/8FaChSffxOwjTmTQV3oHt64RsPYVBEd8BvN7Dh71ua+SESfxcG+RnRN4Mcss56LTPxsB4SfWrz/BxzPyYcSZ0T9R2/A3rf4O5L8j0atKFYfmaJOYPsT2Dx+j5LiAvGN87B68kcCZ5hqxcdsY5IQ3R3VT2hR7+v6I/wuO29piwcC1jKPftYbG72HXh98DtgYsKM8zkpoP0dQUmHoeE7gnr/7Ct0pU3FVDpLDtl7gZFTugGN5FK5VxrI/D690X5q470mb1Bj7azym7cp7JOPrWf2pKuA3XaIILkY2ZhE/4BPzRAqydsIX/Qos1sl0vYFomTsvW8NyVZwJ+dSWOYK1paMmcwf+2O0HO/I61QJ4EzqSekl0xO6CZ3gTSpaIlbxo3Y4tf8vIGi58oLasUzEey13nZzlQqCv2TOBO11W2ABH8MNYn1SJh0XI2TDoGMiKq19HPEqkxOC1+M4jiLso/sgTEoHjH2x5qPiD5OBDLyAw9h3151XiDlx9qR97HFqa7WiTz1mfTiOwI5tB7Fe2j9wkO+w7RBxE7q43D7IeKttofn/P0xh/RHkP0QG2/u59wGyAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{False}$" ], "text/plain": [ "False" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(x**2 - 4 * x > -3).subs(x, 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Homework 9.4.2__ Solve the inequality $x^2 - x -6 > 0$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Problem 9.4.4__ Solve the inequality in __Equation 9.4.4__." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\frac{x^{2}-1}{x+3} \\le 0\n", "\\tag{Equation 9.4.4}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The right-hand side of the inequality is non-positive. That means that the left-hand side can only be $0$ or negative. The left-hand side of the equation has a polynomial in the numerator and in the denominator and left-hand side can only equal $0$ when the numerator is $0$. Furthemore, the left hand side can only be negative when the numerator and denominator have opposite signs. Each of these cases have to be explored. We show the solution in __Equation 9.4.5__." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\begin{align*}\n", "&\\text{Case where LHS numerator is } 0 \\\\ \\\\\n", "&x^2 - 1 = 0 \\\\ \\\\\n", "&x^2 = 1 \\\\ \\\\\n", "&x = \\pm 1 \\\\ \\\\\n", "&\\textbf{ or } \\\\ \\\\\n", "&\\text{Case where LHS numerator is } < 0 \\text{ and LHS denominator is } > 0 \\\\ \\\\\n", "&x^2 - 1 < 0 \\text{ and } x + 3 > 0 \\\\ \\\\\n", "&x^2 < 1 \\text{ and } x > -3 \\\\ \\\\\n", "&-1 < x < 1 \\text{ and } x > -3 \\\\ \\\\\n", "&-1 < x < 1 \\\\ \\\\\n", "&\\textbf{ or } \\\\ \\\\\n", "&\\text{Case when LHS numerator is } > 0 \\text{ and LHS denominator is } < 0 \\\\ \\\\\n", "&x^2 - 1 > 0 \\text{ and } x + 3 < 0 \\\\ \\\\\n", "&x^2 > 1 \\text{ and } x < -3 \\\\ \\\\\n", "&-1 > x > 1 \\text{ and } x < -3 \\\\ \\\\\n", "&x < -3\n", "\\end{align*}\n", "\\tag{Equation 9.4.5}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Combining the three cases $x = \\pm 1 \\land -1 < x < 1$ and $x < -3$ we have the solution $(x < -3) \\lor (-1 \\le x \\le 1)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We confirm the result with the `reduce_inequalities` function." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\left(x \\geq -1 \\wedge x \\leq 1\\right) \\vee x < -3$" ], "text/plain": [ "(x ≥ -1 ∧ x ≤ 1) ∨ x < -3" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reduce_inequalities((x**2 - 1)/(x+3) <= 0, x).simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Choosing the representative values $x=-4$ and $x=0$ from the solution interval, we see that the inequality is _true_." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "((x**2 - 1)/(x+3) <= 0).subs(x, -4)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "((x**2 - 1)/(x+3) <= 0).subs(x, 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Homework 9.4.3__ Solve the inequality in __Equation 9.4.6__." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\frac{x^{2}-1}{x-3} \\ge 0\n", "\\tag{Equation 9.4.6}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 9.5 Inequalities in functions (optional)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Instead of solving for a single variable in an equation (or then finding the interval(s) where the inequality holds), we can also sconsider inequalities in functions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Problem 9.5.1__ Consider the function $f(x) \\ge x^2$. We want to use the Cartesian plane to show where $y \\ge x^{2}$. __Figure 9.5.1__ shows the graph of $y \\ge x^{2}$. To do this, we create the mathemical symbol $y$ using the `symbols` function and assign it to the variable `y`. We use the `spb` package to plot the function." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABOkAAAOsCAYAAAAfk+IjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAB7CAAAewgFu0HU+AABkSUlEQVR4nO39fZxXdZ0//j+GwQECFZUwWAhKl8TUbBHyMkDFKzRF00zTUGm1tU+66arZT0K3XDQ1re2CBMVKJTPWTbHWMETxIlAzqUBFE0TJxEWRK3GG+f3hl1lIrmaY95z3vOd+v9283c7Meb3P6znymvM+78e8XudU1dfX1wcAAAAAKEy7ogsAAAAAgLZOSAcAAAAABRPSAQAAAEDBhHQAAAAAUDAhHQAAAAAUTEgHAAAAAAUT0gEAAABAwYR0AAAAAFAwIR0AAAAAFExIBwAAAAAFE9IBAAAAQMGEdAAAAABQMCEdAAAAABRMSAcAAAAABRPSAQAAAEDBhHQAAAAAUDAhHQAAAAAUTEgHAAAAAAUT0gEAAABAwYR0AAAAAFAwIV0zW7p0aSZNmpQLLrgggwcPzq677prtt98+NTU16d69e4YMGZKrr746r7/+erP1OWnSpBx++OHp0aNHOnbsmL59++a0007LY4891mx9AAAAAFA6VfX19fVFF1FJpk6dmmHDhm22Xbdu3fLTn/40hx9+eJP7WrVqVU488cTcc889G9zfrl27jBkzJpdddlmT+wAAAACg9NoXXUAl6t27d4YOHZoBAwakd+/e6dGjR9asWZOFCxfmzjvvzOTJk7N48eJ86lOfyqxZs7LXXns1qZ+zzjqrIaAbOnRozjvvvPTs2TOzZ8/OlVdemeeffz6jR49Ojx49MmrUqOb8EQEAAABoRmbSNbO6urpUV1dvss1dd92VESNGJEmOP/74/OIXv2h0P9OnT8+QIUOSJMccc0z+67/+a71+Fy9enAEDBmTBggXZYYcd8sILL6Rr166N7gcAAACA0nNPuma2uYAuSY477rjstttuSZIHH3ywSf1cffXVDf19//vff0+/3bp1y1VXXZUkWbJkSSZMmNCkfgAAAAAoPSFdQTp37pzk3fvKNdayZcty//33J0mGDRuWXr16bbDd8ccfn+222y5JMnny5CZWCgAAAECpCekKMGfOnDz11FNJ0jCjrjFmzpyZt99+O0kyePDgjbarqanJvvvu2/Cad955p/HFAgAAAFByQroWsmLFijz33HO57rrrMnTo0NTV1SVJzjvvvEYfa86cOQ3bmwv51u6vra3Nc8891+i+AAAAACg9T3ctoYkTJ+aMM87Y6P4LL7wwp556aqOP+9JLLzVsb2yp61q9e/de73W77757o/pauHDhJvevWrUqc+fOzc4775z3v//9ad/ekAIAAABar9ra2rz22mtJkj333DMdO3ZskX4lKgXYe++988Mf/jCf+MQnmvT6t956q2G7S5cum2y79t53ybv3smusdUM+AAAAgLZk5syZGThwYIv0ZblrCR133HGZPXt2Zs+enZkzZ+b222/PiBEj8tRTT+XUU0/NPffc06TjrvuwiZqamk227dChQ8P2ypUrm9QfAAAAAKVlJl0Jde3aNV27dm34euDAgTn55JPzk5/8JJ///Odz7LHHZsKECRk5cmSjjrvuNMvVq1dvsu3aB0wkSadOnRrVT7L+0tqN7d9///2TJDNmzNjs8lsoZ3V1dXniiSeSJAMGDEh1dXXBFTXdkGseKLoEykBNu+QbB74vSfL/m7Eiq9cUXBBsBeOZSmNMsyEPXDik6BKapJKuoyF599ZfBx54YJLk/e9/f4v1K6QrwGmnnZZ77rknd9xxR770pS/l2GOPzQ477LDFr992220btje3hHX58uUN25tbGrshjQndevXqlT59+jS6DygXdXV1WbBgQZKkT58+rfrior5zt6JLoAzUVyfvf/+7tz2o77I89XUFFwRbwXim0hjTbEhr/TxVSdfR8Pda8t77lrsW5Nhjj03yboj2q1/9qlGvXTc429yDHdadCef+cgAAAADlSUhXkHWnS86fP79Rr133Ca1z587dZNu1+9u3b59dd921Uf0AAAAA0DKEdAV5+eWXG7Ybuwx14MCBDQ+MmD59+kbbrV69Oo899th7XgNUvhfHDi+6BAAAGsH1GyCkK8jPf/7zhu0999yzUa/ddtttc8ghhyRJpk6dutElr5MnT87SpUuTJCNGjGhipQAAAACUmpCumU2cODGrVq3aZJtvf/vbuffee5Mkffv2bXhiyLrHqKqqSlVVVcaMGbPBY1x44YVJktra2px77rmpq1v/TrOLFy/OxRdfnOTdp8yOGjWqKT8OAAAAAC3A012b2ZgxY3LBBRfkhBNOyIEHHphddtklXbp0yVtvvZXZs2fn1ltvzcMPP5wkqampyY033tikJ4UcfPDBOfnkkzNp0qT88pe/zLBhw3L++eenZ8+emT17dr75zW82PF1n7NixjXp6LAAAAC3HUlcgEdKVxP/+7//mxhtvzI033rjRNr169cpNN92UQw89tMn93HTTTVm6dGnuvffeTJs2LdOmTVtvf7t27XLZZZfl7LPPbnIfQOv14tjh6XvJlKLLAAAAYAsI6ZrZ/fffn6lTp2batGmZM2dOXn311bz++uvp2LFjdt555+y99945+uijc9JJJ+V973vfVvXVqVOnTJkyJbfddlsmTpyYP/zhD3njjTey884756CDDsqXvvSl7Lfffs30kwEAAABQKkK6ZrbLLrtkl1122arZayNHjszIkSO3uP0pp5ySU045pcn9AQAAAFAsD44AqGDubwIAUN5crwFrCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAOocO5zAgBQnlynAesS0gEAAABAwYR0AAAAAFAwIR0AAAAAFExIB9AGuN8JAEB5cX0G/D0hHQAAAAAUTEgHAAAAAAUT0gEAAEALstQV2BAhHUAb4WIQAACgfAnpAAAAAKBgQjoAAAAAKJiQDgAAAFqIW5AAGyOkA2hDXBQCAACUJyEdAAAAABRMSAcAAAAABRPSAbQxlrwCABTDdRiwKUI6AAAAACiYkA4AAAAACiakAwAAAICCCekA2iD3QwEAaFmuv4DNEdIBAAAAQMGEdAAAAABQMCEdAAAAABRMSAfQRrkvCgBAy3DdBWwJIR0AAAAAFExIBwAAAAAFE9IBAABAiVjqCmwpIR1AG+aiEQAAoDwI6QAAAACgYEI6AAAAACiYkA6gjbPkFQCgNFxnAY0hpAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgD3SwEAaGaur4DGEtIBAAAAQMGEdAAAAABQMCEdAAAANCNLXYGmENIBkMTFJAAAQJGEdAAAAABQMCEdAAAAABRMSAdAA0teAQC2juspoKmEdAAAAABQMCEdAAAAABRMSAcAAAAABRPSAbAe91EBAGga11HA1hDSAQAAAEDBhHQAAAAAUDAhHQAAAGwlS12BrSWkA+A9XGQCAAC0LCEdAAAAABRMSAcAAAAABRPSAbBBlrwCAGwZ101AcxDSAQAAAEDBhHQAAAAAUDAhHQAAAAAUTEgHwEa5vwoAwKa5XgKai5AOAAAAAAompAMAAACAggnpANgkSzgAADbMdRLQnIR0AAAAAFAwIR0AAAAAFExIBwAAAAAFE9IBsFnutwIAsD7XR0BzE9IBAAAAQMGEdAAAAABQMCEdAAAANIKlrkApCOkA2CIuRgEAAEpHSAcAAAAABRPSAQAAAEDBhHQAbDFLXgGAts71EFAqQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6UrgySefzJVXXpkjjzwyvXv3TocOHdKlS5f069cvI0eOzEMPPdQs/YwZMyZVVVVb9N8DDzzQLH0CuA8LANBWuQ4CSql90QVUmsGDB+fBBx98z/dXr16d5557Ls8991xuueWWnHbaaRk/fnxqamoKqBIAAACAciKka2Yvv/xykqRnz5458cQTc9BBB+WDH/xg6urq8uijj+baa6/Nyy+/nJ/85Cepra3Nbbfd1iz9zp49e5P7P/ShDzVLPwAAAAA0PyFdM9ttt91y5ZVX5oQTTkh1dfV6+/bdd9+cdtppOeCAA/Lss8/m9ttvzxe/+MUcdNBBW93vHnvssdXHANhSL44dnr6XTCm6DACAFmOpK1Bq7knXzO65556cdNJJ7wno1urWrVuuvfbahq/vvPPOlioNAAAAgDIlpCvAkCFDGraff/754goBAAAAoCwI6QqwevXqhu127fwTAAAAALR1EqICTJ8+vWF7t912a5ZjDhs2LDvttFNqamrSvXv3DBkyJGPHjs2SJUua5fgAf899WQCAtsJ1D9ASPDiiha1ZsyZjx45t+Pqkk05qluNOnTq1Yfu1117L9OnTM3369Fx11VWZOHFijj322CYdd+HChZvcv2jRoobturq61NXVNakfKAfrjl9jecvUbPj2m5SJmnYb3obWyHim0hjTrYtrw01zHU2lKWocV9XX19cX0nMbde211+bCCy9MkowYMSKTJ09u8rHGjBmTyZMn57jjjsugQYPSs2fPvPPOO3nmmWdy66235r777kuSVFdX5+67786RRx7Z6D6qqqq2uO0dd9yR97///Y3uAwAAAKBcvPbaaw2Tql566aX06tWrRfoV0rWg6dOn59BDD01tbW26d++ep59+OjvvvHOTj/fGG2+ka9euG90/bty4nHPOOUmSnj17Zt68eenUqVOj+hDSAQAAAG1JUSGd5a4t5E9/+lNGjBiR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/PjxW90XAAAAAKUhpGtmu+22W372s59lwYIFuf7663PCCSdk4MCB2XffffOv//qveeqpp9KvX78kye23375VS1+nT5+e2267LUlyzDHH5De/+U2OPfbYDBw4MGeeeWYee+yxfPCDH0ySXHTRRXnjjTe2+ucDKJKlLQCA6wGgUgnpmtk999yTk046KdXV1Rvc361bt1x77bUNX995551N7uvqq69OklRXV+f73//+e/rs1q1brrrqqiTJkiVLMmHChCb3BQAAAEDpCOkKMGTIkIbt559/vknHWLZsWe6///4kybBhw9KrV68Ntjv++OOz3XbbJUkmT57cpL4AAAAAKC0hXQFWr17dsN2uXdP+CWbOnJm33347ybsPq9iYmpqa7Lvvvg2veeedd5rUH0C5sMQFANou1wFAJRPSFWD69OkN27vttluTjjFnzpwtPsba/bW1tXnuueea1B8AAAAApdO+6ALamjVr1mTs2LENX5900klNOs5LL73UsL2xpa5r9e7de73X7b777lvcz8KFCze5f9GiRQ3bdXV1qaur2+JjQ7lZd/way+WtZsO3/eTv1LTb8Da0RsYzlcaYbhrXaOXJdTSVpqhxLKRrYd/+9rczc+bMJMmIESOyzz77NOk4b731VsN2ly5dNtm2c+fODdvLli1rVD/rBnyb88QTT2TBggWNOj6Uq0ceeaToEtiEHw3rvPlGrOc/D/H/jMphPFNpjOkt99BDDxVdApvhOppK8NprrxXSr7/ZtKDp06fnkksuSZJ07949P/jBD5p8rFWrVjVs19TUbLJthw4dGrZXrlzZ5D4BAAAAKA0z6VrIn/70p4wYMSK1tbXp0KFD7rjjjuy8885NPl7Hjh0bttd9EMWGrH3ARJJ06tSpUf2su6x2QxYtWpRBgwYlSQYMGJA+ffo06vhQTurq6hr+8rf//vunutqaynLWf/Sviy6h7NW0+7/ZGV+6f3lWrym4INgKxjOVxphuvDlXHFF0CWyE62gqzfz58wvpV0jXAv7yl7/ksMMOy5IlS1JdXZ3bb799k09k3RLbbrttw/bmlrAuX768YXtzS2P/3ubud7eu6upqJ2MqhvFc/p795vD0vWRK0WW0GqvXJKvdIoYKYTxTaYzpzfNU19bDdTSVoKgxbLlrib3yyis59NBD88orr6Sqqio33XRTRowYsdXHXTc829zD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n8mTJ5eym7Jz+eWX5+ijjy75sterr746SVJdXZ3vf//7qa6uXm9/t27dctVVVyVJlixZkgkTJpS0HgDKg9l0AK2T8zdA21bSkK66ujovvPBCTjzxxAwePDhPPvlkKbtrU5YtW5b7778/STJs2LD06tVrg+2OP/74bLfddknS5sJSAAAAgNaipCHd008/ncMPPzz19fWZMWNGBg0alDPOOCOvvPJKKbttE2bOnJm33347STJ48OCNtqupqcm+++7b8Jq2uPwYoC0yGwOgdXHeBqCkIV3//v3zq1/9Kvfcc0/69euXNWvW5Mc//nE+8pGP5N///d+zcuXKUnZf0ebMmdOwvdtuu22y7dr9tbW1ee6550paFwAAAACN174lOjnqqKNy+OGH53vf+16uuOKK/O///m/GjBmTH/3oR/mP//iPfO5zn2uJMirKSy+91LC9saWua/Xu3Xu91+2+++5b3M/ChQs3uX/RokUN23V1damrq9viY0O5WXf8GstUgj9+fVgeeeSRJEmN57nTyq07ho1nKsG64/iPXx/m2oNWzXU0laaocdwiIV3y7v3pvvzlL+e0007L17/+9fzwhz/Myy+/nM9//vP5zne+k29/+9s54IADWqqcVu+tt95q2O7Spcsm23bu3Llhe9myZY3qZ92Ab3OeeOKJLFiwoFHHh3K1NtiASvGfh3TefCNoJYxnKo3rDiqJ8UwleO211wrpt8X/DrnDDjvkO9/5Tv7whz803K/u8ccfzyc/+cl85jOfyYsvvtjSJbVKq1atatiuqanZZNsOHTo0bFtiDAAAAFB+Wmwm3d9be7+6X//61/nKV76SuXPn5s4778wvf/nLnH/++bn00kuz7bbbFlVe2evYsWPD9urVqzfZdu0DJpKkU6dOjepn3WW1G7Jo0aIMGjQoSTJgwID06dOnUceHclJXV9fwl7/9998/1dXVBVcEW2fdMf2l+5dn9ZqCC4KtUNPu/2bQGc9UgnXHtOsOWjvX0VSa+fPnF9JvYSHdWkcccUSGDRuW66+/PpdeemnefvvtXH311bn55ptzxRVX5Atf+EKqqqqKLrPsrBtgbm4J6/Llyxu2N7c09u9t7n5366qurnYypmIYz1Sa1WuS1W4RQ4Uwnqk0rjuoJMYzlaCoMVzIbXfr6+vzxz/+MTfffHPOPffc7Lfffvna176W2traVFVVpb6+Pn/729/yxS9+MR//+MczY8aMIsosa+uGZ5t7uMO6s+Eac485AAAAAFpGi8yke+655/L4449n1qxZmTVrVp566qmsWLGiYX99fX3DdlVVVfr375/u3btn+vTpefrppzN48OCcc845ue6669a7v1pbtu4TWufOnbvJtmv3t2/fPrvuumtJ6wIAAACg8Uo6k27YsGHZYYcdsttuu+Vzn/tcbrjhhjz88MNZvnx56uvrU19fnx133DFHHnlkLr/88vzP//xPlixZkj/96U+ZNm1afve732Xw4MGpr6/PD3/4wwwdOnS9pZtt2cCBAxseGDF9+vSNtlu9enUee+yx97wGgLZlzhVHFF0CAOtwXgbg75V0Jt3999+/fmft22evvfbKvvvu2/DfpmZ2DRw4MNOmTcv48eNz7rnn5ne/+12uueaafP3rXy9l2a3Ctttum0MOOSS/+tWvMnXq1CxcuHCD94+bPHlyli5dmiQZMWJES5cJAAAAwBYo6Uy6nj175vjjj8/VV1+dBx98MEuXLs3jjz+e//zP/8znPve5LV56OWrUqHzta19LfX19fvazn5Wy5LIxceLEVFVVpaqqKmPGjNlgmwsvvDBJUltbm3PPPTd1devfQXnx4sW5+OKLkyRdu3bNqFGjSlozAOXtxbHDiy4BgDgfA7BhJZ1Jt7kHGjTGpz71qYwZMyYvvvhisx2zVGbMmJF58+Y1fL148eKG7Xnz5mXixInrtR85cmST+jn44INz8sknZ9KkSfnlL3+ZYcOG5fzzz0/Pnj0ze/bsfPOb38yCBQuSJGPHjs0OO+zQpH4AAAAAKK0WeXBEc9h2222TJG+//XbBlWze+PHjc8stt2xw38MPP5yHH354ve81NaRLkptuuilLly7Nvffem2nTpmXatGnr7W/Xrl0uu+yynH322U3uA4DK8eLY4el7yZSiywBos8yiA2BjWk1I17Nnz4wbNy6///3viy6lrHTq1ClTpkzJbbfdlokTJ+YPf/hD3njjjey888456KCD8qUvfSn77bdf0WUCAAAAsAmtJqTr1KlTvvCFLxRdxhaZOHHie5a0NtbIkSMbNcPulFNOySmnnLJVfQLQNphNB1AMs+gA2JSSPjgCAAAAANg8IR0AAECJmUUHwOYI6QCgDfJhEQAAyouQDgAAAAAKJqQDgDbKbDqAluF8C8CWENIBAAAAQMGEdADQhpndAVBazrMAbCkhHQAAAAAUTEgHAG2cWR4ApeH8CkBjCOkAAAAAoGBCOgDAbA+AZua8CkBjCekAAAAAoGBCOgAgiVkfAM3F+RSAphDSAQAAAEDBhHQAQAOzPwC2jvMoAE0lpAMAAACAggnpAID1mAUC0DTOnwBsDSEdAAAAABRMSAcAvIfZIACN47wJwNYS0gEAAABAwYR0AMAGmRUCsGWcLwFoDkI6AAAAACiYkA4A2CizQwA2zXkSgOYipAMAAACAggnpAAAAmsAsOgCak5AOANgkH0IBAKD0hHQAAACN5A8YADQ3IR0AsFk+jAIAQGkJ6QAAABrBHy4AKAUhHQCwRXwoBQCA0hHSAQAAbCF/sACgVIR0AMAW8+EUAABKQ0gHAACwBfyhAoBSEtIBAI3iQyoAADQ/IR0AAMBm+AMFAKUmpAMAGs2HVQAAaF5COgCgSQR1QFvhfAdASxDSAQAAAEDBhHQAQJOZXQJUOuc5AFqKkA4AAAAACiakAwC2ilkmQKVyfgOgJQnpAAAAAKBgQjoAYKuZbQJUGuc1AFqakA4AAAAACiakAwCahVknQKVwPgOgCEI6AAAAACiYkA4AaDZmnwCtnfMYAEUR0gEAAABAwYR0AECzMgsFaK2cvwAokpAOAAAAAAompAMAmp3ZKEBr47wFQNGEdAAAQJsmoAOgHAjpAICS8KEXAAC2nJAOACgZQR1Q7pynACgXQjoAAAAAKJiQDgAoKbNUgHLl/ARAORHSAQAAAEDBhHQAQMmZrQKUG+clAMqNkA4AAAAACiakAwBahFkrQLlwPgKgHAnpAACANkNAB0C5EtIBAC3Gh2MAANgwIR0A0KIEdUBRnH8AKGdCOgAAAAAomJAOAGhxZrMALc15B4ByJ6QDAAAAgIIJ6QCAQpjVArQU5xsAWgMhHQAAULEEdAC0FkI6AKAwPjwDAMC7hHQAQKEEdUCpOL8A0JoI6QAAAACgYEI6AKBwZrsAzc15BYDWRkgHAAAAAAUT0gEAZcGsF6C5OJ8A0BoJ6QAAgIohoAOgtRLSAQBlw4drAADaKiEdAFBWBHVAUzl/ANCaCekAAAAAoGBCOgCg7JgNAzSW8wYArZ2QrsQWLFiQCy+8MP3790/nzp2z4447ZtCgQbnmmmuyYsWKrTr2mDFjUlVVtUX/PfDAA83zAwFAC/GBG9hSzhcAVIL2RRdQyaZMmZJTTz01b775ZsP3VqxYkVmzZmXWrFkZP3587r333nz4wx8usEoAAAAAiiakK5E//OEPOemkk7JixYp06dIlX/3qVzN06NCsXLkykyZNyo033phnnnkmw4cPz6xZs9KlS5et6m/27Nmb3P+hD31oq44PAEV4cezw9L1kStFlAGXMLDoAKoWQrkTOP//8rFixIu3bt899992X/fbbr2HfwQcfnH/8x3/MRRddlLlz5+a6667L6NGjt6q/PfbYY2tLBgAAAKAg7klXArNmzWq4B9xZZ521XkC31gUXXJD+/fsnSa6//vq88847LVkiALQaZskAG+P8AEAlEdKVwF133dWwfcYZZ2ywTbt27XL66acnSZYsWeLBDgCwCT6IA3/PeQGASiOkK4GHHnooSdK5c+cMGDBgo+0GDx7csD1jxoyS1wUAAABAeRLSlcCcOXOSJLvuumvat9/4bf92222397ymqYYNG5addtopNTU16d69e4YMGZKxY8dmyZIlW3VcACgXZs0AazkfAFCJPDiima1atSqLFy9OkvTq1WuTbXfYYYd07tw5y5cvz0svvbRV/U6dOrVh+7XXXsv06dMzffr0XHXVVZk4cWKOPfbYJh134cKFm9y/aNGihu26urrU1dU1qR8oB+uOX2OZSlCJY/r5bx6R/qN/XXQZFKCm3Ya3aXvmXHFERZzTKvEcTdtlPFNpihrHQrpm9tZbbzVsd+nSZbPt14Z0y5Yta1J/e+65Z4477rgMGjQoPXv2zDvvvJNnnnkmt956a+6777688cYbOeGEE3L33XfnyCOPbPTxe/fuvcVtn3jiiSxYsKDRfUA5euSRR4ouAZpVJY3pHw3rXHQJFOw/DzEG2rK1t5apJJV0jgbjmUrw2muvFdKvkK6ZrVq1qmG7pqZms+07dOiQJFm5cmWj+zr//PMzZsyY93z/E5/4RE4//fSMGzcu55xzTurq6jJq1KjMmzcvnTp1anQ/AAAAAJSWkK6ZdezYsWF79erVm23/9ttvJ0mTwrOuXbtucv/ZZ5+dxx9/POPHj88rr7ySyZMn59RTT21UH5tbhrto0aIMGjQoSTJgwID06dOnUceHclJXV9fwl7/9998/1dXVBVcEW6eSx7Qlr21PTbv/m0H3pfuXZ/WagguiEHOuOKLoEppNJZ+jaXuMZyrN/PnzC+lXSNfMtt1224btLVnCunz58iRbtjS2Kc4+++yMHz8+STJ9+vRGh3Sbu6/euqqrq52MqRjGM5Wm0sb0s98cnr6XTCm6DAqyek2y2i2P2pxKflhEpZ2jaduMZypBUWPYbXebWceOHdOtW7ckm3/owpIlSxpCusbc+60xdt9994btl19+uSR9AEARKvkDO7A+v+8AtAVCuhLo379/kmTevHmpra3daLu5c+e+5zXNrb6+viTHBQAAAKD5COlK4MADD0zy7lLWJ554YqPtpk+f3rB9wAEHlKSWP//5zw3bPXv2LEkfAFAUs2ug8vk9B6CtENKVwHHHHdewffPNN2+wzZo1a/LjH/84ybsPgBg6dGhJahk3blzD9uDBg0vSBwAUyQd4qFx+vwFoS4R0JTBo0KAcdNBBSZIJEybk0UcffU+ba6+9NnPmzEmSnHfeedlmm23W2z9x4sRUVVWlqqoqY8aMec/rZ8+enXnz5m2yjnHjxmXChAlJkg984AMZMWJEU34cAAAAAErM011L5IYbbsgBBxyQlStX5rDDDsull16aoUOHZuXKlZk0aVJ+9KMfJUn69euXCy64oNHHf+KJJzJq1KgMHTo0Rx55ZPbcc8/stNNOqa2tzdy5c/PTn/40v/nNb5K8+1SScePGpXPnzs36MwJAuXhxrKe9QqUxiw6AtkZIVyIf//jH87Of/Syf+9znsnTp0lx66aXvadOvX79MmTIl2267bZP6qKury9SpUzN16tSNttlpp50yYcKEfOpTn2pSHwDQWgjqoHII6ABoi4R0JXTMMcfk6aefzg033JApU6Zk4cKFqampya677poTTzwxX/rSl/K+972vScc+6qijGpbS/v73v8+rr76a119/PfX19dlxxx3zsY99LEcccURGjhyZ7bbbrpl/MgAAAACak5CuxPr06ZPrrrsu1113XaNeN3LkyIwcOXKj+7t3754zzzwzZ5555lZWCACVw2w6aP3MogOgrfLgCACgoviAD62X318A2jIhHQAAAAAUTEgHAFQcs3Gg9fF7C0BbJ6QDACqSD/zQevh9BQAhHQAAAAAUTkgHAFQss3Og/Pk9BYB3CekAgIomAIDy5fcTAP6PkA4AAGhxAjoAWJ+QDgCoeMIAAADKnZAOAGgTBHVQPvw+AsB7CekAgDZDMADF83sIABsmpAMAAFqEgA4A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HQAAAADlwEw6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompCuhFStW5Fvf+lYGDRqUHXfcMV26dEn//v1z4YUXZsGCBVt9/AceeCBVVVVb9N+YMWO2/gcCAAAAoCTaF11ApXr++eczfPjwPPPMM+t9f+7cuZk7d27Gjx+f2267LUcddVRBFQIAAABQLoR0JbBs2bIcffTRDQHdF77whZx88snp1KlTpk2blv/4j//Im2++mRNPPDGPPvpo9tprr63u86abbsrAgQM3ur979+5b3QcAAAAApSGkK4Frrrkmc+fOTZJcffXV+bd/+7eGffvtt1+GDh2aT37yk1mxYkXOP//8/Pa3v93qPj/0oQ9ljz322OrjAAAAANDy3JOumb3zzju54YYbkiT9+/fPBRdc8J42++23X84666wkybRp0/LEE0+0aI0AAAAAlBchXTN74IEH8sYbbyRJPv/5z6dduw3/Lx45cmTD9uTJk1ugMgAAAADKlZCumT300EMN24MHD95ou3322SedO3dOksyYMaPkdQEAAABQvoR0zWzOnDkN27vttttG27Vv3z677LLLe17TVJdeeml69eqVmpqa7LDDDvn4xz+ef/3Xf82zzz671ccGAAAAoLQ8OKKZvfTSS0mSzp07p2vXrpts27t37zz99NN57bXX8vbbb6dDhw5N7vfRRx9t2H7jjTfy1FNP5amnnsp3vvOdXHbZZfn617+eqqqqRh934cKFm9y/aNGihu26urrU1dU1ug8oF+uOX2OZSmBMU0mMZyqNMU0lMZ6pNEWNYyFdM3vrrbeSJF26dNls27XLXZNk2bJlTQrpevTokeOPPz4HHnhgPvzhD6d9+/ZZsGBB7r777vzkJz/JO++8k8svvzyrV6/OlVde2ejj9+7de4vbPvHEE1mwYEGj+4By9MgjjxRdAjQrY5pKYjxTaYxpKonxTCV47bXXCulXSNfMVq1alSSpqanZbNt1Q7mVK1c2uq+BAwdm/vz52Wabbdb7/j/90z/luOOOy9lnn53DDjssb775ZsaOHZuTTjope++9d6P7AQAAAKC02mxIV1tb+55wqyluvvnm9Z7U2rFjxyTJ6tWrN/vat99+u2G7U6dOje573Zl4GzJo0KB873vfy+c+97nU19fne9/7Xm688cZG9bF2+e7GLFq0KIMGDUqSDBgwIH369GnU8aGc1NXVNfzlb//99091dXXBFcHWMaapJMYzlcaYppIYz1Sa+fPnF9Jvmw3pSmXbbbdN8u7y1c1Zvnx5w/aWLI9tis985jM599xz8+abb2b69OmNfn2vXr22uG11dbWTMRXDeKbSGNNUEuOZSmNMU0mMZypBUWO4zYZ07du3b5anqvbo0WO9r3v16pXf/e53Wb58ed54441NPjxi7Sy197///Vv10IhNad++ffr165dZs2bl5ZdfLkkfAAAAAGydNhvSJcluu+3W7Mfcfffd84tf/CJJMnfu3Oy7774bbFdbW5vnn38+SdK/f/9mr2Nd9fX1JT0+AAAAAFunXdEFVJoDDzywYXtTy0sff/zxhuWuBxxwQMnqqa2tzbPPPpsk6dmzZ8n6AQAAAKDphHTNbMiQIdl+++2TJLfccstGZ7FNnDixYXvEiBElq2fSpElZunRpkmTw4MEl6wcAAACAphPSNbOampp8+ctfTpLMmTMn11xzzXvaPProo5kwYUKSd4OzgQMHvqfNiy++mKqqqlRVVWXIkCHv2b9kyZI88MADm6xl5syZ+X//7/8lSaqqqnLOOec08qcBAAAAoCW06XvSlcq//du/5Wc/+1meffbZXHTRRZk3b15OPvnkdOrUKdOmTcuVV16Z2tradOrUKddff32T+njzzTczdOjQ7LXXXjnuuOMyYMCA9OjRI9XV1VmwYEHuvvvu/OQnP8k777yTJLnwwguzzz77NONPCQAAAEBzEdKVwLbbbpspU6bkqKOOynPPPZcf/ehH+dGPfrRem+222y633npr9t57763q6+mnn87TTz+90f3V1dW57LLLMnr06K3qBwAAAIDSEdKVyK677prf//73+d73vpef//znmTdvXlavXp3evXvnqKOOynnnnZc+ffo0+fg9e/bMz3/+8zz66KOZOXNmXn755SxevDirVq3K9ttvn4985CMZMmRIRo0alb59+zbfDwYAAABAsxPSlVDnzp1z0UUX5aKLLmr0a/v27bvRh04k79777tOf/nQ+/elPb02JAAAAAJQBD44AAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAom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q6++Oq+//nrJa6mqr6+vL3kvtDm1tbXZZpttNttum222yRVXXJFLLrmkBaqCphs9enS+8Y1vZHOnzH322Se/+MUv8sEPfrCFKoOmGzp0aB544IEN7uvTp09efPHFFq0HNmbKlCk59dRT8+abb25w/0c+8pHce++9+fCHP9zClcGWq6qq2ui+z3/+85k4cWLLFQNbafDgwXnwwQc32+60007L+PHjU1NT0wJVQdNMnTo1w4YN22y7bt265ac//WkOP/zwktXSvmRHps3bfvvtM2TIkHziE5/Ihz/84fTo0SPve9/78sorr+SBBx7ITTfdlDfffDNf/epX07Vr15xzzjlFlwwb9corr6S+vj6dO3fOiBEjcsghh+Qf//Ef07Fjx8yZMyff+c53MmvWrDz++OM59NBD8+STT6ZLly5Flw2btG7ovMMOO2SfffbJo48+mmXLlhVYFazvD3/4Q0466aSsWLEiXbp0yVe/+tUMHTo0K1euzKRJk3LjjTfmmWeeyfDhwzNr1iznXlqF3r17p3///rnvvvuKLgWa5OWXX06S9OzZMyeeeGIOOuigfPCDH0xdXV0effTRXHvttXn55Zfzk5/8JLW1tbntttsKrhg2rXfv3hk6dGgGDBiQ3r17p0ePHlmzZk0WLlyYO++8M5MnT87ixYvzqU99KrNmzcpee+1VkjrMpKNk6urqUl1dvdH9f/nLXzJgwIAsWbIk73//+7No0aJNtociXXzxxdlpp53yxS9+Mdtuu+179tfV1eWUU07JHXfckSS54oorctlll7V0mdAoP/rRj9KlS5cMGjQou+66a5Kkb9++mT9/vpl0lI21Mz7bt2+fBx98MPvtt996+7/1rW/loosuSpJcfvnlGT16dBFlwmZ9/etfz8CBAzNw4MDsvPPOefHFF/OhD30oiZl0tD5HH310Tj/99Jxwwgkb/Ay3ePHiHHDAAXn22WeTJA8++GAOOuigli4TtsjmsoskueuuuzJixIgkyfHHH59f/OIXJalFSEehvvjFL+aHP/xhkuSPf/xjPvrRjxZcETTd66+/np49e2b16tXZa6+98oc//KHokqDRhHSUk1mzZmXQoEFJkrPPPrvhmmFda9asyR577JE5c+Zkhx12yKuvvrpFt9yAognpqHT33HNPjjnmmCTJl7/85dxwww0FVwRbp3///pk7d266deuW1157rSR9eHAEhercuXPD9qpVqwqsBLbeTjvt1DDt+fnnny+4GoDW76677mrYPuOMMzbYpl27djn99NOTJEuWLNnofRYBaFlDhgxp2HZtTCVYm1+UMrsQ0lGYlStX5r//+7+TvHuB3a9fv4Irgq339ttvJ3l3TAOwddY+GbBz584ZMGDARtsNHjy4YXvGjBklrwuAzVu9enXDtmtjWrs5c+bkqaeeSpLstttuJevHbwot6p133smCBQsyadKk7L///pk3b16Sd/86vqH7fEFr8re//S1z5sxJUtoTN0Bbsfacuuuuu6Z9+40/72zdc+7a1wBQrOnTpzdsuzamNVqxYkWee+65XHfddRk6dGjq6uqSJOedd17J+vR0V0pu3fttbMihhx6aa6+9tgUrgtL41re+ldra2iTJSSedVHA1AK3bqlWrsnjx4iRJr169Ntl2hx12SOfOnbN8+fK89NJLLVEeAJuwZs2ajB07tuFr18a0FhMnTtzoLTaS5MILL8ypp55asv7NpKMwO+20U26//fb8+te/zvbbb190ObBVfve73+X6669P8u6HyX/5l38ptiCAVu6tt95q2O7Spctm26+9T8yyZctKVhMAW+bb3/52Zs6cmSQZMWJE9tlnn4Irgq2z995757HHHsu3vvWtVFVVlawfM+kouX/4h3/I7NmzkyS1tbV5+eWX8+tf/zoTJkzIv/zLv+SFF17IV7/61ZIOdCilV199NZ/+9KdTW1ubqqqq3HLLLXnf+95XdFkArdq6N2WuqanZbPsOHTokefeetwAUZ/r06bnkkkuSJN27d88PfvCDgiuCLXfcccc1hMorV67M888/nzvuuCP/9V//lVNPPTXXX399jj766JL1byZdG7c2VNja/zb1yPhtttkme+yxR/bYY4/svffeGT58eL773e/mscceS1VVVb72ta/lrLPOarkfmorWEmN6XW+99VaGDx+ehQsXJkmuvPLKHHzwwSX8CWlrWnpMQ7no2LFjw/a6Nx/fmLUP7unUqVPJagJg0/70pz9lxIgRqa2tTYcOHXLHHXdk5513Lros2GJdu3ZtyC8GDhyYk08+OZMnT86Pf/zjvPDCCzn22GNLel0tpKMwe+21V77xjW8kSW6++ebcd999BVcEjbNq1aoce+yxeeKJJ5IkX/nKVxr+agjA1ln3gVJbsoR1+fLlSbZsaSwAze8vf/lLDjvssCxZsiTV1dW5/fbb13v6NrRmp512Wk488cSsWbMmX/rSl7JkyZKS9GO5axvXvn37ZnkKWo8ePZr0umOPPbbh3l133nlnDjvssK2uhbatpcZ0bW1tTjrppEybNi1JMmrUKA9AoSSKPk9DUTp27Jhu3bpl8eLFDbOVN2bJkiUNIV3v3r1bojwA1vHKK6/k0EMPzSuvvJKqqqrcdNNNGTFiRNFlQbM69thjc8cdd2T58uX51a9+lVNOOaXZ+xDSUejjsN///vc3bM+fP7+wOqgspR7Ta9asyWmnnZa77747SfKZz3wm48aNK2mftG1FnqehSP37989DDz2UefPmpba2Nu3bb/jSde7cueu9BoCWs3jx4gwbNiwvvPBCkuS73/1uTj/99IKrgubXEvmF5a4U6uWXX27YtjyF1uLss8/OpEmTkiRHH310fvKTn6RdO6dTgOZ24IEHJnl3KevaWwtsyPTp0xu2DzjggJLXBcC73nzzzRx++OH585//nCQZO3Zszj333IKrgtJoifzCp0oK9fOf/7xhe8899yywEtgyX/nKVzJ+/PgkySGHHJI777wz22yzTcFVAVSm4447rmH75ptv3mCbNWvW5Mc//nGSd2/2PHTo0JYoDaDNW7FiRYYPH54nn3wySfK1r30tF198ccFVQem0RH4hpKMk7rrrrixatGiTbR588MFcccUVSd6959JnP/vZligNmmzMmDH59re/nSTZf//989///d/p0KFDwVUBVK5BgwbloIMOSpJMmDAhjz766HvaXHvttQ33bTzvvPP84QSgBaxevTojRozIww8/nOTd8+/ahwJCazNx4sSsWrVqk22+/e1v5957702S9O3bt2G2f3Orqq+vry/JkWnTRo4cmdtvvz3Dhw/PIYccko9+9KPp2rVr3n777Tz//PO5++67c8cdd2TNmjVJkssvvzyjR48uuGrYuO9+97v58pe/nCT5h3/4h/zsZz/L9ttvv8nXfOQjH/FhkbI2b968zJgxY73vXXjhhXn99dez00475Zprrllv3xFHHJEPfOADLVki5Pe//30OOOCArFy5Ml26dMmll16aoUOHZuXKlZk0aVJ+9KMfJUn69euXxx9/fL2nwkI5mTFjRubNm9fw9eLFi/Nv//ZvSd5dpj1q1Kj12o8cObIly4NGOeGEEzJ58uQkycEHH5zrr78+VVVVG21fU1OTfv36tVR50Ch9+/bNW2+9lRNOOCEHHnhgdtlll3Tp0iVvvfVWZs+enVtvvbUhkK6pqcmUKVNy6KGHlqQWIR0lMXLkyNxyyy2bbdepU6f8+7//ey644IIWqAqabsiQIevd82hL/OUvf0nfvn1LUxA0g4kTJ+aMM87Y4vbTpk3LkCFDSlcQbMTdd9+dz33uc1m6dOkG9/fr1y9TpkzJrrvu2sKVwZbb0uvjtXxMo5xtKpDbkD59+uTFF18sTTGwlfr27btFD4Lo1atXbrrppgwbNqxktXi6KyVxzTXX5Kijjspvf/vbPPnkk/nrX/+av/3tb2nXrl123HHHfPSjH83BBx+c008/PT169Ci6XACgjB1zzDF5+umnc8MNN2TKlClZuHBhampqsuuuu+bEE0/Ml770pbzvfe8rukwAoBW6//77M3Xq1EybNi1z5szJq6++mtdffz0dO3bMzjvvnL333jtHH310TjrppJJfb5hJBwAAAAAF8+AIAAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAKDsLF++PDvvvHOqqqry4Q9/OO+8884G261atSoHHnhgqqqq0qFDhzzwwAMtWygAQDMR0gEAUHY6d+6cSy+9NEnyl7/8JRMnTnxPm/r6+px22ml5+OGHU1VVlVtuuSVDhgxp2UIBAJpJVX19fX3RRQAAwN97++23069fvyxYsCB9+vTJs88+m5qamob9X/nKV/Ltb387SXLNNdfkggsuKKpUAICtZiYdAABlqUOHDhk9enSSZP78+bnpppsa9t1www0NAd35558voAMAWj0z6QAAKFt1dXXZfffd8+yzz6Z3796ZN29e7rnnnpx44olZs2ZNTjzxxEyaNCnt2vnbMwDQugnpAAAoaz/72c9y8sknJ0nOOuus3HrrrVm1alU++clP5r777kuHDh0KrhAAYOsJ6QAAKGv19fX5p3/6pzz11FMN3/voRz+aGTNmpGvXroXVBQDQnKwLAACgrFVVVeULX/hCw9fdu3fPr371KwEdAFBRhHQAAJS15557Ll//+tcbvl6+fLklrgBAxRHSAQBQtv72t7/liCOOyOLFi7PTTjsleTek++Y3v1lwZQAAzUtIBwBAWVq+fHmGDx+eF154IV26dMl9992X4447Lkkybty4LFiwoNgCAQCakZAOAICyU1tbmxNPPDGPP/542rdvnzvuuCP/9E//lMsvvzxVVVV5++23c/nllxddJgBAsxHSAQBQds4555z86le/SpL84Ac/yJFHHpkk2WuvvXLCCSckSW655ZY8++yzhdUIANCchHQAAJSVMWPGZMKECUmSyy67LKNGjXrP/nbt2qWuri6XXXZZESUCADS7qvr6+vqiiwAAgCSZMGFCQyj3+c9/PhMnTtxgu89+9rOZNGlSqqqq8uSTT2bvvfduuSIBAEpASAcAQFm49957c+yxx6a2tjaHHnpo7r333myzzTYbbDt37tzsscceqaury1FHHZUpU6a0cLUAAM1LSAcAAAAABXNPOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAomJAOAAAAAAompAMAAACAggnpAAAAAKBgQjoAAAAAKJiQDgAAAAAKJqQDAAAAgIIJ6QAAAACgYEI6AAAAACiYkA4AAAAACiakAwAAAICCCekAAAAAoGBCOgAAAAAo2P8fD3Kns+i+IncAAAAASUVORK5CYII=", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": { "image/png": { "height": 470, "width": 628 } }, "output_type": "display_data" } ], "source": [ "# Create the mathematical symbol y using the symbols function and assign it to the variable y\n", "y = symbols('y')\n", "\n", "# Plot the function y >= x^2 using the spb.plot_inequality function\n", "spb.graphics(\n", " spb.implicit_2d(\n", " y >= x**2,\n", " (x, -3, 3),\n", " (y, -1, 3),\n", " title='Figure 9.5.1'\n", " )\n", ");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the shaded area we have that $y \\ge x^{2}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 9.6 Absolute values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In __Equation 9.6.1__ we show the definition of the __absolute value__ of a real number $x$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\begin{align*}\n", "&\\left| x \\right| = \\left\\{ \\begin{array}{ll}\n", "x & \\text{if } x \\geq 0 \\\\\n", "-x & \\text{if } x < 0\n", "\\end{array} \\right.\n", "\\end{align*}\n", "\\tag{Equation 9.6.1}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To illustrate the definition, we consider an example where $x=3$ and then $x=-3$. Since $3>0$ we have that $\\left| 3 \\right| = 3$ and since $-3<0$ we have that $\\left| -3 \\right| = -(-3) = 3$. The absolute value of a real number is always positive or zero. The absolute value of a real number is the distance of the real number from $0$ on the number line." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Problem 9.6.1__ Solve the equation $\\left| x - 3 \\right| = 5$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We create two separate equation using the definition of the absolute value in __Equation 9.6.1__. We solve each equation separately, shown in __Equation 9.6.2__." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\begin{align*}\n", "&\\left| x - 3 \\right| = 5 \\\\ \\\\\n", "&\\left\\{ \\begin{array}{ll}\n", "x - 3 = 5 & \\text{if } x \\geq 0 \\\\\n", "-(x - 3) = 5 & \\text{if } x < 0\n", "\\end{array} \\right. \\\\ \\\\\n", "&x=5+3 \\text{ or } -x=5-3 \\\\ \\\\\n", "&x=8 \\text{ or } x=-2\n", "\\end{align*}\n", "\\tag{Equation 9.6.2}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use the `solve` function to confirm the results. In this case, we have to solve both equation separately. We use the `Eq` function to define each case and assign it to the variable `case_1` and `case_2`." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFUAAAAPCAYAAACV4IPLAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACh0lEQVRYCe2Y7TEEQRCGlxLAIQMyOGRABj4iQAaUX3f/FBkcGSADJwJcBoRwZHCeZ+xMrS3HnmJ3f+iqvp7pnZ15553umdnLJpNJ9q+zcdDr9bplzvB10BX9C1mLpd/vrwDvMIfYwVo/wz/MfU2ZOzCIZ5QDsKys+dNaUnPQx9hIakZ5G8y32B30xgk0JON83C72GRXLKZhe9beWVLAdqACVxEhgjNATnkUfxdplBKadaaPOT3vQAr+p5cqH1RcPE0ll622V1kYqBBqVi0Xi8Jn+yuDdtPM3kQrgDhBNOWUD3Uc9GPZQ5Z42jaUcY2+C4Qw9pHwhoCYFDHIlZ8uoPLmnhoMrkYrTUzUcCtgj6peoRHpYGBlOqHZSGdvDQEJdaEE/oN9Kjtn3ZpEv98pCR5J5xRhhO8JK6hN2Cx0GUinIuqRFsbGpZrQqS2jxeXDW8QM2iQwRQFlMj9hvT3/apFvDb+Ok761in9SfUbcrg291zssqji4agNuYsg/XseHepe8roZ0rd4dqq4rEpDGrvsQ7L7R1nEXKLn4rBCxyZnCuxkgtT26Xh6dV0eaTq7QAM/Rp2mf0XcZm+pvWahPb0S3jLoFr2nw7gVQaJaGxYI2EBBhfiEBsnZHxKCjG/FFE8p6R41xmkSp76jodjj/p1C1SvKMFfiTsGo2ff+5Fr/j9UohyQv04VmqyLuCQccsL6aSU+CHwXiv98t5f7akXU7hwAQMmL/9W1DGNJfjDKuDz2T1at7iIploSsHhQidFrVZns1O6PCwPGNguSUPe2pISvrDn/XaHiyf6klwbnqOA94UxByU5bAfXahHFd0OLnoFeXmFG14SgPBC5xxMw17Q1Er55hod8AV3zjUEF9M/gAAAAASUVORK5CYII=", "text/latex": [ "$\\displaystyle x - 3 = 5$" ], "text/plain": [ "x - 3 = 5" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Use the Eq function to create the equation x - 3 = 5 and assign it to the variable case_1\n", "case_1 = Eq(x - 3, 5)\n", "case_1" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABIAAAAVCAYAAABLy77vAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABWklEQVQ4Ec2U7VECMRCGg2MBjCVgK9IBlKB2IOOvu7+UgJYgHUAHjnYAJSgl+Dzx7ibHJTfqL3dmSfbjfbPZ2zCpquohhHCPKsu6rt+/t+O/5PVwE4jWQHYE9uPQfBRcxF/mwyGQMCX2mMS1X0oHFokArQG1V4582BJN0W1yQNxenDu0SbxjecvEbvGlVXYpWSKi1+i8y/rBpkT0CnZBZX4Ee9OKjd20RrpmewR4q5K4QD/Zr1itUuJBf/CHUkUBwJL4k0mIldygxRkbI7KaE2olztgMPXCA/oFkiUj2q81ZV+gRtfFWqDxjp32LziwREa9iXzoBbG+sThKv2ZMBUXOaQ+e1eoLviEPCq14AI0ckwQnQ7Dy5sa1o8C4HRE2y/YjPobHjArm9cwSsrCelOdqT7HOwsR8J4vePFgJnpv1SCVd+W7paPnvE+/+I2mZv6ImF/+U/25nafQGKdnOorW06AgAAAABJRU5ErkJggg==", "text/latex": [ "$\\displaystyle \\left[ 8\\right]$" ], "text/plain": [ "[8]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solve the equation for x\n", "solve(case_1, x)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFUAAAAPCAYAAACV4IPLAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACjklEQVRYCe2X31EbMRCHL5kUYEgH0IFDOggdhKSCQAdheLLfGNIBpIMkHWAqINABlODQgfN9Qqucb+4y9ozxvdzO7K20qz+rn3YlXbVYLKqB18NgMpmMm5ihG8F76t9UmabT6R7Fk1wdIa1foJ9l3SD+IXADLmJ0n1WWpXd+Eqi5wSkyQK0of8R+jTyCf9l4oILAPJfGyEdYfM7B6Ul9ROox5WOUghgARoSeYQudfQYiQsHpqAuI19lgGItyQlodnUrZ+kCrIxDpb1Tu1LsBqukvXT6L4bsqApH+S+0B9AOKC/iE8tWScUsV5h0xlceS9B7+Ant5foalW9r0diwxt77p41tYvzxT08W1BCpKD14BdRE2+A33Rb480sWJ/IoT32GB9EI1e9z0TlBzG9eyDv33rKwNJJg/mCMdkUhBfUAewrMmqAKZ0MZo+t8ht377M6dRIGhBOq8/Rqu0C9ftSVn/MEZ5ydT1mygz9mF9HOqPsEeom73/ysdqF9HwDzZ3ZYdy2pVmW/Tab3K7prmr7kalzWtrgG1ct1PW2QNkege29elbl300GPZTpKIw7Stkc6Gmvykkt6YafQR7o4tt8eMTc5zDvRO+XePELrJrzaNI/zu9pWFnRPa1GnxyQ82GsqnorOuvG9pK2Ixu+65Dq5ypBww4bxnUI0mf7gNUnZu1OOkAUvwIPNde8IsPAvYTjl9kz8Yn9P65BJ1RP41Km8T+UmfqVcfcbmDCKR7/OmhYF6KjF4ML9FnVGRGlw+YKOifPmdf5l6ICnbZbuC+6xAezoBB1XydS+ssqF1V2tv7r5TMhoiX12MYHPwTSm/3B+ah/g91gb1yPKcEuRwH1rRPzi01kimnvxvvUS8H3F9YD5lAzLAOtAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle 3 - x = 5$" ], "text/plain": [ "3 - x = 5" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Use the Eq function to create the equation -(x - 3) = 5 and assign it to the variable case_2\n", "case_2 = Eq(-(x - 3), 5)\n", "case_2" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACIAAAAVCAYAAAAjODzXAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABbklEQVRIDe2W3VHDMBCEFYYCMikh6YCfDkIHpAXoAB7tV+ggNUAHDiVAB1ACQwl8a+QMOp0JQzie0Iws6XS6Xd+tNZ40TXOVUrqkq63atn36mMY+wSlwJxC5AbJjYxML7UcHt8c/9Lf3twIwJ8p1jnTC+Ko1djfjIUQyiTXjWSaSmOvNH2WjV9k/GBx/eRTooLs+NODKzhv9rjeYRxSRJTjPgE8NnjIxxa6yFS2KiABfAFQGvGYJpiiNrDx0bEeyQ7ASbFRGKh6Ai4RKMnxJhc+fEQFVIr2H0G3BIC/c0uCsGj7Qq1p6QbJt9FYm3hofaWasZL5GOCCRHX8B+u0tYl3gPGPc3ine4dDSAH4O6IJxmwnmc3VLJowIYBLnKaMVp8jpui+aq5HC4weL/MYS54a59PG5LbFVgg0hAmpHV/qlD9uqO0QOIUR444VF37UO08guYLv/T8RmZNCIfmK0N3o72oP7rsEb/llnxOreAXVmZ6TUy/qNAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\left[ -2\\right]$" ], "text/plain": [ "[-2]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solve the equation for x\n", "solve(case_2, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the two solutions are indeed $x = 8$ or $x = -2$. The `subs` method is used below to substitute $x=8$ and $x=-2$ into the two cases of the original equation." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "case_1.subs(x, 8) # The case that x is equal to or greater than 0" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "case_2.subs(x, -2) # The case where x is less than 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Homework 9.6.1__ Solve the equation $\\lvert x^{3} \\rvert = 27$. Hint: There are many solutions (inlcuding complex numbers)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Absolute values can also be used in inequalities. We use the same definition of the absolute value in __Equation 9.6.1__." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Problem 9.6.2__ Solve the inequality $\\left| x - 3 \\right| < 5$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see the solution in __Equation 9.6.3__." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\begin{align*}\n", "&\\left| x - 3 \\right| < 5 \\\\ \\\\\n", "&\\left\\{ \\begin{array}{ll}\n", "x - 3 < 5 & \\text{if } x \\geq 0 \\\\\n", "-(x - 3) < 5 & \\text{if } x < 0\n", "\\end{array} \\right. \\\\ \\\\\n", "&x < 8 \\\\ \\\\\n", "&\\text{ or } \\\\ \\\\\n", "&x - 3 > -5 \\text{ (multiplying both sides by } -1 \\text{ flips the sign)} \\\\ \\\\\n", "&x > -2\n", "\\end{align*}\n", "\\tag{Equation 9.6.3}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The final solution is the open interval $-2 < x < 8$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The use the `reduce_inequalities` function to solve an inequality that contains an absolute value expression. The `Bas` function is used to express an absolute value. To the the `reduce_inequalities` function, we have to do some algebraic manipulation to get the absolute value expression on the left-hand side of the inequality. In the case of this problem it would be $\\left| x - 3 \\right| - 5$. Note that this expression is passed as first argument. The second argument is a string denoting less than or more than. The third argument is the variable that we want to solve for." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIsAAAAQCAYAAAAmuIx/AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEaUlEQVRoBe2Z61HcMBCAD4YCMnQQ6ABCBRwdQFIB0EEy/IJ/DOngoAToAKiAQAdQAkMHl+9TbI9idLZ8Z97szCJZ3l2t9ikfc+PxePAR4ODgYIlz/irO+o3x3mfWb4q1Dz9giy8YYS8yhM+nrF+ENYPlveP+/v4SeB6fk+cjcAwO4/WcecG7mUP7lmg416iuL2unYDjrfBRF73l6xOF24wOSLVaZB/A0Xm+bF9m3CV2cgW1sr/4959pByeuEotushbP2GiwaErwuNk7s+2JLQ3a+Vb+aBpZXdbZF5YJGNfju4FPuqwX02wT1R875ljnIRtNh+g4WM3UdXEZBnfOzafNnfGdQ6Fz1S0E9iFI05douco55OATLO1D57lWM6LcD3qKMzl9nfpeh2BU0Btc5GNvDxBjJP2ePEgoCs0ZYAy0/RuQPULiC5uzfNO8v9AaL5V++Q54nOStPYM9U6KNBlxjnckRDZ/tZYwxBwmjZ3mLMccYAOp3Qq41jvZE/k73htyV7RsEzWm0MnuD3uLIcsfhbhMAoOwGHPMvkIY2wTlDIc0OdYjkcgXHUdpLXJzF6rCDPZAiOz5Rt7w5ZVtB3rS5PYWPbqHK18YDRqu5XXufEhGcLEVZNQX/bZquvxRAsEJV9WCLBjYywknGReedggScA8o/BEKUsXDI3aHTUS4JZdIYeJkcrQGdw2cqqKsLcjDOhWhMAml5tjDwrooFrdbPlGyRZZ4E+CfDrc32vr2zd+kjZodos8CD8YaEyAs+r4A1rIToZjbiZATkaVwcZsX6/u+c2Y9hn0ga81xmXoGMu2B6qrIiZWNfIOr7LuawqVpI6KMtAaHNUbzZGbwNdR9rabfMzA3I8w2okb4O5QeJeJ8wvQrAwqRv1OwQpw7DcK2Q5H/0MJgN4ZkCWRllkbLz5xxtBq55mct1Okll9ze7GYEnwPpeN1TEH7BxfY0J0NrHLa8RwPn7pnJdmvcYJl5pizb6Y5VjpJwEywqcc780GM9/oNRCeBdyfjSzXVUVhbhCYpU0wqaoM4FX/C8ZQqpuElO+gncnG8Ku/qP1sEybA1AC/vtXHj3zBmtXfWFiclxD0xusBBB35UBCFBf7s8fxIUPmybYR3B/QCZjYbJNlfEG2yc9+zp3eONcb6hVYn37fIMcir5EnQmpUGVBLg7d3GyLSN6isrrglg0Pg11Bng07f6fFLSGEyhDRkkojdoF/8zHGu+8+uoM8Abf8rZD6cOuM6bRwzsqxHsvVYA7xgxeEGd2EJ4Z9bWeWL+ATQ67h5cAVOt6iltrE31ndeGMinV14+KLva2UnmPXI/5mHt+i8ndAhNvvfZdDzRg0R+dfOmG9mKN0JRVslUArQHnBka9Xz32vJeGcxQwYFLlOuXcWF+rob85tYEVSxum5PVq45Qi2NnAMOj9+cNz+lOFfsv6fQtaE8lzepmNC0b1j8TqRzmIZgY2MVAMML/7y8/umeV+CpjOAvigTNpe2n6vwTLdkT653ooF/gJ9NKCTQwYDzwAAAABJRU5ErkJggg==", "text/latex": [ "$\\displaystyle x > -2 \\wedge x < 8$" ], "text/plain": [ "x > -2 ∧ x < 8" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solve the inequality for x\n", "reduce_abs_inequality(Abs(x - 3) - 5, '<', x).simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below we use three representative values, $x=-1$, $x=0$, and $x=7$, for the solution interval." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Determine of -1 satisfies the inequality\n", "(Abs(x - 3) < 5).subs(x, -1)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Determine of 0 satisfies the inequality\n", "(Abs(x - 3) < 5).subs(x, 0)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAOCAYAAABZ/o57AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0UlEQVRIDb2W7U0CQRCGD0IBqB1oBxAqEDuA2IF0oH/5Z6ADtAKFDqAEpAOxA0MH+Dzn7uVyhFNAb5JhZudj592vOWrb7TYZDodvSZI04Q38GWQLKWlbw/rPg1yTc4NeGTVCJUH1KT6LldHv0UfwAP0pZ++hP8dxVbIOCHdqlgdZVjzELcti/sNXZ1KPc37g5KuwwAPTjg8XqDvqHTyE3gl2gZVRg51ZHVHNhU3JvUQ+wo47cBfuwy7ee6x/QZy2BHmHGMBpHuOx9kiMtT/AbsQF3MRmfFL351Ai2eLtkHcV5ATpo+zi82rot4MIOiVsPsprOLN9e9JFmGv3GRE3hlPASG3HATUxkEAE5mN0V8+QWYdgvHOl8G9CblFMMbyGeVIfujveQvZieyom/XZs0QxMCYjS+chzNz32dPcKwV7NzqlAndNdPZUEKbUB7T3Ok1dq+RdA9x1lvthPejyVOUCzj04+qZ4fVKEDJO5eVg6bx+uCbzNjTsHfPRVok/nkfeSHpAjMFiYo20+e7AY+TP0ZMfYzvq75pyRSCLLn2cxNEISTLmDv4oQYW48++5vf/eh/wb5zbNi8Y5K90dhX+AOWlvizPzfoLsq2JMVeas31Fx2vogF49TMKAAAAAElFTkSuQmCC", "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Determine of 7 satisfies the inequality\n", "(Abs(x - 3) < 5).subs(x, 7)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The inequality is _true_ for all three values." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Homework 9.6.2__ Solve the inequality $\\left| x^{3} + 1 \\right| \\ge 5$." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "mathematics", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 2 }