{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "In this review sheet we solve some of the review problems\n", "for the second midterm exam of mcs 320." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. List Comprehensions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Count the number of points with integer coordinates $(x,y)$\n", "in the region defined by the inequalities $0 \\leq x < 20$, $0 \\leq y < 20$,\n", "$y \\geq x/2$, $y \\leq 3 x$.\n", "\n", "Do the following:\n", "\n", "1. Generate a list L of integer points $(i,j)$ for $i$ and $j$ ranging between 0 and 19.\n", "\n", "2. Select from the list L those points in the cone $y \\geq x/2$ and by $y \\leq 3 x$.\n", "\n", "3. Count the number of points in the cone. Write also the number below." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "reset()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(0, 0),\n", " (1, 1),\n", " (1, 2),\n", " (1, 3),\n", " (2, 1),\n", " (2, 2),\n", " (2, 3),\n", " (2, 4),\n", " (2, 5),\n", " (2, 6),\n", " (3, 2),\n", " (3, 3),\n", " (3, 4),\n", " (3, 5),\n", " (3, 6),\n", " (3, 7),\n", " (3, 8),\n", " (3, 9),\n", " (4, 2),\n", " (4, 3),\n", " (4, 4),\n", " (4, 5),\n", " (4, 6),\n", " (4, 7),\n", " (4, 8),\n", " (4, 9),\n", " (4, 10),\n", " (4, 11),\n", " (4, 12),\n", " (5, 3),\n", " (5, 4),\n", " (5, 5),\n", " (5, 6),\n", " (5, 7),\n", " (5, 8),\n", " (5, 9),\n", " (5, 10),\n", " (5, 11),\n", " (5, 12),\n", " (5, 13),\n", " (5, 14),\n", " (5, 15),\n", " (6, 3),\n", " (6, 4),\n", " (6, 5),\n", " (6, 6),\n", " (6, 7),\n", " (6, 8),\n", " (6, 9),\n", " (6, 10),\n", " (6, 11),\n", " (6, 12),\n", " (6, 13),\n", " (6, 14),\n", " (6, 15),\n", " (6, 16),\n", " (6, 17),\n", " (6, 18),\n", " (7, 4),\n", " (7, 5),\n", " (7, 6),\n", " (7, 7),\n", " (7, 8),\n", " (7, 9),\n", " (7, 10),\n", " (7, 11),\n", " (7, 12),\n", " (7, 13),\n", " (7, 14),\n", " (7, 15),\n", " (7, 16),\n", " (7, 17),\n", " (7, 18),\n", " (7, 19),\n", " (8, 4),\n", " (8, 5),\n", " (8, 6),\n", " (8, 7),\n", " (8, 8),\n", " (8, 9),\n", " (8, 10),\n", " (8, 11),\n", " (8, 12),\n", " (8, 13),\n", " (8, 14),\n", " (8, 15),\n", " (8, 16),\n", " (8, 17),\n", " (8, 18),\n", " (8, 19),\n", " (9, 5),\n", " (9, 6),\n", " (9, 7),\n", " (9, 8),\n", " (9, 9),\n", " (9, 10),\n", " (9, 11),\n", " (9, 12),\n", " (9, 13),\n", " (9, 14),\n", " (9, 15),\n", " (9, 16),\n", " (9, 17),\n", " (9, 18),\n", " (9, 19),\n", " (10, 5),\n", " (10, 6),\n", " (10, 7),\n", " (10, 8),\n", " (10, 9),\n", " (10, 10),\n", " (10, 11),\n", " (10, 12),\n", " (10, 13),\n", " (10, 14),\n", " (10, 15),\n", " (10, 16),\n", " (10, 17),\n", " (10, 18),\n", " (10, 19),\n", " (11, 6),\n", " (11, 7),\n", " (11, 8),\n", " (11, 9),\n", " (11, 10),\n", " (11, 11),\n", " (11, 12),\n", " (11, 13),\n", " (11, 14),\n", " (11, 15),\n", " (11, 16),\n", " (11, 17),\n", " (11, 18),\n", " (11, 19),\n", " (12, 6),\n", " (12, 7),\n", " (12, 8),\n", " (12, 9),\n", " (12, 10),\n", " (12, 11),\n", " (12, 12),\n", " (12, 13),\n", " (12, 14),\n", " (12, 15),\n", " (12, 16),\n", " (12, 17),\n", " (12, 18),\n", " (12, 19),\n", " (13, 7),\n", " (13, 8),\n", " (13, 9),\n", " (13, 10),\n", " (13, 11),\n", " (13, 12),\n", " (13, 13),\n", " (13, 14),\n", " (13, 15),\n", " (13, 16),\n", " (13, 17),\n", " (13, 18),\n", " (13, 19),\n", " (14, 7),\n", " (14, 8),\n", " (14, 9),\n", " (14, 10),\n", " (14, 11),\n", " (14, 12),\n", " (14, 13),\n", " (14, 14),\n", " (14, 15),\n", " (14, 16),\n", " (14, 17),\n", " (14, 18),\n", " (14, 19),\n", " (15, 8),\n", " (15, 9),\n", " (15, 10),\n", " (15, 11),\n", " (15, 12),\n", " (15, 13),\n", " (15, 14),\n", " (15, 15),\n", " (15, 16),\n", " (15, 17),\n", " (15, 18),\n", " (15, 19),\n", " (16, 8),\n", " (16, 9),\n", " (16, 10),\n", " (16, 11),\n", " (16, 12),\n", " (16, 13),\n", " (16, 14),\n", " (16, 15),\n", " (16, 16),\n", " (16, 17),\n", " (16, 18),\n", " (16, 19),\n", " (17, 9),\n", " (17, 10),\n", " (17, 11),\n", " (17, 12),\n", " (17, 13),\n", " (17, 14),\n", " (17, 15),\n", " (17, 16),\n", " (17, 17),\n", " (17, 18),\n", " (17, 19),\n", " (18, 9),\n", " (18, 10),\n", " (18, 11),\n", " (18, 12),\n", " (18, 13),\n", " (18, 14),\n", " (18, 15),\n", " (18, 16),\n", " (18, 17),\n", " (18, 18),\n", " (18, 19),\n", " (19, 10),\n", " (19, 11),\n", " (19, 12),\n", " (19, 13),\n", " (19, 14),\n", " (19, 15),\n", " (19, 16),\n", " (19, 17),\n", " (19, 18),\n", " (19, 19)]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L = [(i,j) for i in range(20) for j in range(20)]\n", "F = [(x,y) for (x,y) in L if (y >= x/2 and y <= 3*x)]\n", "F" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "230" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(F)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We count 230 points." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. Memoization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For some parameter $t$, consider the sequence recursively defined as:\n", "\n", "$F(n) = (1-t) F(n-1) + t F(n-2)$, for $n > 1$, where $F(0) = a$ and $F(1) = b$.\n", " \n", "Using the recursive definition write an efficient SageMath function $F$\n", "to compute $F(n)$ as $F(a,b,t,n)$.\n", "What is the result of $F(a,b,0.3,100)$?" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "reset()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def f(a, b, t, n):\n", " \"\"\"\n", " Withouth memoization ...\n", " \"\"\"\n", " if n == 0:\n", " result = a\n", " elif n == 1:\n", " result = b\n", " else:\n", " result = (1-t)*f(a,b,t,n-1) + t*f(a,b,t,n-2)\n", " return result" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "A" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A, B = var('A, B')\n", "f(A, B, 0.3, 0)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "B" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(A, B, 0.3, 1)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.300000000000000*A + 0.700000000000000*B" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(A, B, 0.3, 2)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def F(a, b, t, n, D={}):\n", " \"\"\"\n", " Memoized F with D.\n", " \"\"\"\n", " if (a,b,t,n) in D:\n", " return D[(a,b,t,n)]\n", " else:\n", " if n == 0:\n", " result = a\n", " elif n == 1:\n", " result = b\n", " else:\n", " result = (1-t)*F(a,b,t,n-1) + t*F(a,b,t,n-2)\n", " D[(a,b,t,n)] = result\n", " return result" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We first test some base cases." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a\n", "b\n", "0.300000000000000*a + 0.700000000000000*b\n" ] } ], "source": [ "a, b = var('a, b')\n", "print(F(a,b,0.3,0))\n", "print(F(a,b,0.3,1))\n", "print(F(a,b,0.3,2))" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.230769230769230*a + 0.769230769230768*b" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F(a,b,0.3,100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. Functions defined by Integrals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider the function $f(t)$ as the integral of $(1 - e^x)$ for $x$ from 0 to $t$, for $t \\geq 0$. \n", "\n", "1. Define this function in Sage.\n", " \n", "2. What is $f'(1)$?" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "reset()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "t |--> t - e^t + 1" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(t) = integral( 1 - exp(x), (x, 0, t))\n", "f" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "t |--> -e^t + 1" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = diff(f,t)\n", "df" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-e + 1" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df(t=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 4. Taylor Series" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function $g(x,t) = (1-t^2)/(1 - 2xt + t^2)$ is a\n", "generating function for the Chebyshev polynomials.\n", "\n", "1. Compute a Taylor series approximation for $g(x,t)$\n", " around $t = 0$ of order 10. \n", " \n", "2. Select the coefficient of $t^8$ and compare\n", " with the output of ``chebyshev_T(8,x)``.\n", " \n", " Is there a difference between the two?" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "reset()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2*(512*x^10 - 1280*x^8 + 1120*x^6 - 400*x^4 + 50*x^2 - 1)*t^10 + 2*(256*x^9 - 576*x^7 + 432*x^5 - 120*x^3 + 9*x)*t^9 + 2*(128*x^8 - 256*x^6 + 160*x^4 - 32*x^2 + 1)*t^8 + 2*(64*x^7 - 112*x^5 + 56*x^3 - 7*x)*t^7 + 2*(32*x^6 - 48*x^4 + 18*x^2 - 1)*t^6 + 2*(16*x^5 - 20*x^3 + 5*x)*t^5 + 2*(8*x^4 - 8*x^2 + 1)*t^4 + 2*(4*x^3 - 3*x)*t^3 + 2*(2*x^2 - 1)*t^2 + 2*t*x + 1" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x, t = var('x,t')\n", "g = (1-t^2)/(1-2*x*t + t^2)\n", "tg = taylor(g,t,0,10)\n", "tg" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "256*x^8 - 512*x^6 + 320*x^4 - 64*x^2 + 2" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tg.coefficient(t,8)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "128*x^8 - 256*x^6 + 160*x^4 - 32*x^2 + 1" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chebyshev_T(8,x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the difference is a factor of 2: the ``tg.coefficient(t, 8)`` is twice of ``chebyshev_T(8,x)``." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 5. Slope of the Tangent Line" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider the point $(1,1)$ on the curve $f(x,y) = x^2 - y^3 - x + y = 0$.\n", "\n", "1. Give the Sage command(s) to compute a Taylor series about the point $(1,1)$\n", " where the term of the error is of second order.\n", "\n", "2. Compute the slope of the tangent line of the curve at the point $(1,1)$\n", " and use the slope to determine the tangent line.\n", " Write the equation of the tangent line.\n", " \n", " Verify that the tangent line equals the first-order Taylor series at $(1,1)$." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "reset()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "x - 2*y + 1" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x, y = var('x,y')\n", "f = x^2 - y^3 - x + y\n", "tf = taylor(f, (x, 1), (y, 1), 1)\n", "tf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can compute the slope of the tangent line directly from the Taylor series, as below." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1/2" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "-tf.coefficient(x, 1)/tf.coefficient(y, 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To compute the slope of the tangent line at $(1,1)$ we apply implicit differentiation." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "diff(y(x), x)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y = function('y')(x)\n", "dy = diff(y,x)\n", "dy" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-y(x)^3 + x^2 - x + y(x)" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g = f.subs(y=y)\n", "g" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-3*y(x)^2*diff(y(x), x) + 2*x + diff(y(x), x) - 1" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = diff(g,x)\n", "df" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[diff(y(x), x) == (2*x - 1)/(3*y(x)^2 - 1)]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = solve(df, dy)\n", "s" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1/2" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "slope = s[0].rhs().subs(x = 1)\n", "slope = slope.subs({y(x=1):1})\n", "slope" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-1/2*x + y(x) - 1/2 == 0" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tangent = (y-1) - slope*(x-1) == 0\n", "tangent" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us compare with the Taylor series approximation in ``tf``." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "x - 2*y + 1" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tf" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "# -tf.coefficient(x, 1)/tf.coefficient(y, 1)\n", "# does not work at this point, because y was defined as a function ..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As equations ``tangent`` and ``tf`` are the same, as can be seen by multiplying the coefficients of ``tangent`` by two." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 6. Plotting in Polar Coordinates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider the curve $x^4 - 3 x y + y^4 = 0$. Do the following.\n", "\n", "1. Make a plot for $x$ and $y$ both ranging between $-2$ and $+2$;\n", "\n", "2. Convert the curve into polar coordinates; and\n", "\n", "3. Plot the curve in polar coordinates." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "reset()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x,y = var('x,y')\n", "f = x^4 - 3*x*y + y^4\n", "pf = implicit_plot(f, (x, -2, 2), (y, -2, 2))\n", "pf.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We convert to polar coordinates with a substitution." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "r, t = var('r,t')" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "r^4*cos(t)^4 + r^4*sin(t)^4 - 3*r^2*cos(t)*sin(t)" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qf = f(x = r*cos(t), y = r*sin(t))\n", "qf" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{r: -sqrt(3)*sqrt(cos(t)*sin(t)/(cos(t)^4 + sin(t)^4))},\n", " {r: sqrt(3)*sqrt(cos(t)*sin(t)/(cos(t)^4 + sin(t)^4))},\n", " {r: 0}]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rf = solve(qf,r,solution_dict=True)\n", "rf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The problem is to select a good range for $t$,\n", "because ``cos(t)*sin(t)`` appears as argument of ``sqrt``.\n", "To see where ``cos(t)*sin(t)`` becomes negative, we make a plot." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(cos(t)*sin(t), (t, 0, 2*pi), figsize=3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We select the intervals $[0, \\pi/2]$ and $[\\pi, 3\\pi/2]$." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 3 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pp1 = polar_plot(rf[0][r], (t, 0, pi/2), color='red')\n", "pp2 = polar_plot(rf[0][r], (t, pi, 3*pi/2), color='green')\n", "pt0 = point((0,0), size=40, color='blue')\n", "(pt0+pp1+pp2).show(figsize=3,axes=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 7. Constrained Optimization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let $a$ and $b$ be positive numbers.\n", "Consider $f = x^2/a + y/b$ and the unit circle $x^2 + y^2 = 1$.\n", " \n", "Determine the number of candidate extremal values of $f$ on the unit circle.\n", " \n", "Use a lexicographic Groebner basis to compute a triangular form of the equations for this problem." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "reset()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(x, y) |--> (2*x/a, 1/b)\n", "(x, y) |--> (2*x, 2*y)\n" ] } ], "source": [ "a, b = var('a,b')\n", "f(x,y) = x^2/a + y/b\n", "c(x,y) = x^2 + y^2 - 1\n", "gf = diff(f)\n", "gc = diff(c)\n", "print(gf)\n", "print(gc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We introduce a new variable to apply the technique of Lagrange multipliers." ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[-2*Lambda*x + 2*x/a, -2*Lambda*y + 1/b, x^2 + y^2 - 1]" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Lambda = var('Lambda')\n", "sf = [gf(x,y)[k] - Lambda*gc(x,y)[k] for k in range(2)]\n", "sf.append(c(x,y))\n", "sf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To determine the number, we can bring the system in triangular form." ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Multivariate Polynomial Ring in x, y, a, b, Lambda over Rational Field" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "PR. = PolynomialRing(QQ, order='lex')\n", "PR" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Be aware that the constraints are rational expressions!" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[-2*Lambda*a*x + 2*x, -2*Lambda*b*y + 1, x^2 + y^2 - 1]" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ss = [p.numerator() for p in sf]\n", "ss" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[-2*x*a*Lambda + 2*x, -2*y*b*Lambda + 1, x^2 + y^2 - 1]" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sf2 = [PR(p) for p in ss]\n", "sf2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can compute a lexicographic Groebner basis." ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[x^2 + y^2 - 1, x*a*Lambda - x, y*a*Lambda - y - 2*a*b*Lambda^2 + 2*b*Lambda, y*b + 2*a*b^2*Lambda^2 - 1/2*a - 2*b^2*Lambda, a*b^2*Lambda^3 - 1/4*a*Lambda - b^2*Lambda^2 + 1/4]" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "J = ideal(sf2)\n", "g = J.groebner_basis()\n", "g" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Keeping in mind that a and b are parameters,\n", "and that the variables are x, y, and Lambda,\n", "we read off the triangular structure of the basis:\n", "\n", "1. There is a polynomial of degree 3 in Lambda.\n", " \n", "2. x and y appear linearly as equations in Lambda.\n", "\n", "Thus, there are 3 solutions, for generic values of the parameters a and b." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Extra Question:** Solve this problem numerically for a = 2, and b = 3." ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[x^2 + y^2 - 1,\n", " 2*x*Lambda - x,\n", " 2*y*Lambda - y - 12*Lambda^2 + 6*Lambda,\n", " 3*y + 36*Lambda^2 - 18*Lambda - 1,\n", " 18*Lambda^3 - 9*Lambda^2 - 1/2*Lambda + 1/4]" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g23 = [p(a = 2, b = 3) for p in g]\n", "g23" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to solve this problem properly, we must cast the polynomials in a ring with variables, x, y, and Lambda." ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Multivariate Polynomial Ring in x, y, Lambda over Rational Field" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "QR. = PolynomialRing(QQ, order='lex')\n", "QR" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[x^2 + y^2 - 1,\n", " 2*x*Lambda - x,\n", " 2*y*Lambda - y - 12*Lambda^2 + 6*Lambda,\n", " 3*y + 36*Lambda^2 - 18*Lambda - 1,\n", " 18*Lambda^3 - 9*Lambda^2 - 1/2*Lambda + 1/4]" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G23 = [QR(p) for p in g23]\n", "G23" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{Lambda: 0.50000000000000000?, y: 0.3333333333333334?, x: -0.9428090415820634?},\n", " {Lambda: 0.50000000000000000?, y: 0.3333333333333334?, x: 0.9428090415820634?},\n", " {Lambda: 0.1666666666666667?, y: 1, x: 0},\n", " {Lambda: -0.1666666666666667?, y: -1, x: 0}]" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "J23 = ideal(G23)\n", "J23.variety(QQbar)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that for the particular values of 2 and 3 for a and b, we have four solutions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 8. Solving a Linear System" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Do the following.\n", "\n", "1. Create a 5-by-5 matrix $A$ over the rationals where \n", " the $(i,j)$-the element is $1/(i+j)$ (for $i$ and $j$ both from 1 to 5).\n", "\n", "2. Define $b$ as a vector of length 5 of ones.\n", " Solve the system defined by $A x = b$.\n", " \n", "3. Verify that $b - A x$ equals zero." ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "reset()" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[ 1/2 1/3 1/4 1/5 1/6]\n", "[ 1/3 1/4 1/5 1/6 1/7]\n", "[ 1/4 1/5 1/6 1/7 1/8]\n", "[ 1/5 1/6 1/7 1/8 1/9]\n", "[ 1/6 1/7 1/8 1/9 1/10]" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = matrix(QQ, 5, 5, lambda i,j: 1/(i+j+2))\n", "A" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1, 1, 1, 1, 1)" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b = vector(QQ, [1 for k in range(5)])\n", "b" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(30, -420, 1680, -2520, 1260)" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = A\\b\n", "x" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0, 0, 0, 0, 0)" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b - A*x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 9. An Initial Value Problem" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider the intial value problem $dy/dt = 2 - 6y$, $y(0) = -1$.\n", "\n", "1. Solve this problem and plot the solution trajectory for $t \\in [0,2]$.\n", " \n", "2. Plot the slope field for $t \\in [0,2]$, $y \\in [-1,0.5]$.\n", " \n", " Place also the particular solution computed the first part of this question on the plot." ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "reset()" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "diff(y(t), t) == -6*y(t) + 2" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t = var('t')\n", "y = function('y')(t)\n", "ode = diff(y,t) == 2 - 6*y\n", "ode" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1/3*(e^(6*t) - 4)*e^(-6*t)" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sol = desolve(ode,y,ics=[0,-1])\n", "sol" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plotsol = plot(sol,t,0,2)\n", "plotsol.show()" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-6*y(t) + 2" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r = ode.rhs()\n", "r" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1/3*(e^(6*t) - 4)*e^(-6*t)" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sol" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-2*(e^(6*t) - 4)*e^(-6*t) + 2" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sr = r.subs({y(t=t):sol})\n", "sr" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "Y = var('Y')" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 2 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pslopes = plot_slope_field(sr,(t,0,2),(Y,-1,0.5),headlength=4,headaxislength=4)\n", "(pslopes+plotsol).show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 10. Polyhedral Optimization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Minimize $x+3y$ \n", "\n", "subject to $x \\geq 2$, $y \\geq 1$, $x + 2y \\leq 8$, $x+y \\leq 6$.\n", " \n", "Formulate the linear programming problem and solve it." ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "reset()" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Minimization:\n", " \n", "\n", "Constraints:\n", "Variables:\n" ] } ], "source": [ "p = MixedIntegerLinearProgram(maximization=False)\n", "p.show()" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Minimization:\n", " x_0 + 3.0 x_1 \n", "\n", "Constraints:\n", "Variables:\n", " x_0 is a continuous variable (min=0.0, max=+oo)\n", " x_1 is a continuous variable (min=0.0, max=+oo)\n" ] } ], "source": [ "x = p.new_variable(nonnegative=True)\n", "p.set_objective(x[1] + 3*x[2])\n", "p.show()" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Minimization:\n", " x_0 + 3.0 x_1 \n", "\n", "Constraints:\n", " 2.0 <= x_0 \n", " 1.0 <= x_1 \n", " x_0 + 2.0 x_1 <= 8.0\n", " x_0 + x_1 <= 6.0\n", "Variables:\n", " x_0 is a continuous variable (min=0.0, max=+oo)\n", " x_1 is a continuous variable (min=0.0, max=+oo)\n" ] } ], "source": [ "p.add_constraint(x[1], min=2)\n", "p.add_constraint(x[2], min=1)\n", "p.add_constraint(x[1]+2*x[2], max=8)\n", "p.add_constraint(x[1]+x[2], max=6)\n", "p.show()" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5.0" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p.solve()" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1: 2.0, 2: 1.0}" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p.get_values(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The optimal value 5 is obtained at (2, 1)." ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 10.3", "language": "sage", "name": "sagemath" }, "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" } }, "nbformat": 4, "nbformat_minor": 2 }