{
"cells": [
{
"cell_type": "markdown",
"id": "b8f82468-9139-45be-b92d-8d15d8a3deaa",
"metadata": {},
"source": [
"Submit your answers to gradescope before or at the latest at 12:50pm."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "74a55580-3c77-4f50-aa0d-8c9c95f006de",
"metadata": {},
"outputs": [],
"source": [
"using Plots"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "bb19421b-3f88-461b-9a21-dd0047921b83",
"metadata": {},
"outputs": [],
"source": [
"using SymPy"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "b796286d-4cfe-412f-833f-f8b016632b5a",
"metadata": {},
"outputs": [],
"source": [
"using JuMP\n",
"using GLPK"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "85567ad4-3565-40e1-97e1-41a3184f169c",
"metadata": {},
"outputs": [],
"source": [
"using NLsolve"
]
},
{
"cell_type": "markdown",
"id": "759505cc-204e-48d9-8a07-c075d299f08b",
"metadata": {},
"source": [
"# Question 1"
]
},
{
"cell_type": "markdown",
"id": "2fc70133-b025-4ff3-8626-c5a338436f08",
"metadata": {},
"source": [
"It costs \\$100 to produce an item. If the production misses\n",
"the target of 20 with a deviation of 3 or more,\n",
"then the item must be discarded.\n",
"\n",
"1. Define the quality loss function.\n",
"\n",
"2. Compute the expected loss for the current production mean of 19\n",
" and deviation 2.\n",
" \n",
"3. Suppose we want to reduce the deviation of the production to 1.\n",
"\n",
" How much extra cost may this reduction add?"
]
},
{
"cell_type": "markdown",
"id": "b60494d1-0c80-4c71-97e0-4ee977ec7b67",
"metadata": {},
"source": [
"## answer to question 1"
]
},
{
"cell_type": "markdown",
"id": "df94b59f-b055-4eac-9003-2f7bf3cc2512",
"metadata": {},
"source": [
"1. If the item misses the target of 20 by 3, the loss is 100 in both directions (17 and 23). Let m=20, which is the target value for production and y is the value of the product. The quality loss function is :\n",
"$$\n",
"L(y) = k(y-m)^2\n",
"$$\n",
"To find k, solve via interpolation. y-m is the deviation from the target where loss of 100 occurs, so y-m=3."
]
},
{
"cell_type": "markdown",
"id": "0dd6dadb-3218-414a-8514-3d3944771ecf",
"metadata": {},
"source": [
"So, $k=\\frac{100}{9}$.\n",
"\n",
"The numerical quality loss function L(y) is:\n",
"$$\n",
" L(y) = \n",
" \\left\\{\n",
" \\begin{array}{ll}\n",
" 100 & \\mbox{for } y \\geq 23 \\\\\n",
" \\frac{100}{9}(y - 20)^2 & \\mbox{for } 17 < y < 23 \\\\\n",
" 100 & \\mbox{for } y \\leq 17\n",
" \\end{array}\n",
" \\right.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "3c2e4572-ccff-44b1-988b-8f125b24469b",
"metadata": {},
"source": [
"2. \n",
"The expected loss function is:\n",
"$$\n",
"\\frac{100}{9}\\sigma^2 + \\frac{100}{9}(\\mu-m)^2\n",
"$$\n",
"where m is the target, $\\mu$=19 and $\\sigma$=2."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "9bbedd91-168d-471a-8a24-7e5b746f794a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"55.55555555555556"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"eloss = (100/9)*(2^2) + (100/9)*(19-20)^2"
]
},
{
"cell_type": "markdown",
"id": "207b4a5a-e447-42a2-a08c-dc516f3a59dc",
"metadata": {},
"source": [
"The expected loss is $55.56."
]
},
{
"cell_type": "markdown",
"id": "86cc8901-43bf-41a2-b3e3-efdf98a43181",
"metadata": {},
"source": [
"3. We want to compute the extra cost $x$ so that we have the same expected loss with a reduction of the variance to 1. The loss coefficient then becomes $(100+x)/9$."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "a5f87c46-f828-4ea4-9c07-2b696c459e71",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\frac{2 x}{9} - 33.3333333333333$"
],
"text/plain": [
"2*x \n",
"--- - 33.3333333333333\n",
" 9 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = Sym(\"x\")\n",
"equ = ((100+x)/9)*(1^2) + ((100+x)/9)*(19-20)^2 - eloss"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "dc0c1af8-a08b-4b51-81d5-f42a7f2b53e2",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\left[\\begin{smallmatrix}150.0\\end{smallmatrix}\\right]$"
],
"text/plain": [
"1-element Vector{Sym{PyCall.PyObject}}:\n",
" 150.000000000000"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cost = solve(equ, x)"
]
},
{
"cell_type": "markdown",
"id": "5a843ce8-91be-4f7a-94c9-b67428a1a2ce",
"metadata": {},
"source": [
"Let us check that the extra cost is indeed $150."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "08e179c2-8475-4b7d-b891-5ebeea205265",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"55.55555555555556"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"neweloss = (250/9)*(1^2) + (250/9)*(19-20)^2"
]
},
{
"cell_type": "markdown",
"id": "92d4c88e-d79e-4d7c-a351-8aad60b61983",
"metadata": {},
"source": [
"Indeed, we have the same expected loss as before."
]
},
{
"cell_type": "markdown",
"id": "417cad69-d117-4d55-a98e-45605931429f",
"metadata": {},
"source": [
"# Question 2"
]
},
{
"cell_type": "markdown",
"id": "493982cf-ae57-4722-8ecb-3a4fc6ba02e9",
"metadata": {},
"source": [
"Give the transfer function of a filter to remove a signal\n",
"at 40 Hz, sampled at 320 Hz.\n",
"\n",
"1. Justify the design of your filter.\n",
"\n",
"2. Which signals are also removed by your filter? Interpret the Bode plot."
]
},
{
"cell_type": "markdown",
"id": "d492a6ce-60d4-425b-930c-f5bfcd37cf02",
"metadata": {},
"source": [
"## answer to question 2"
]
},
{
"cell_type": "markdown",
"id": "63a33ba7-486f-49f2-b64f-e2cc62236abf",
"metadata": {},
"source": [
"The transfer function is $H(z) = 1 + z^{-4}$. This filter copies the original signal and then adds the delay of the signal, delayed by 4 time units. This factor of 4 comes from half of 8 = 320/40."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "744ad9b9-eab2-403d-9862-ac13f8082d9c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"fphase (generic function with 1 method)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"H(z) = (1+z^(-4))\n",
"r(omega, T) = abs(H(exp(im*omega*T)))\n",
"fphase(omega, T) = atan(imag(H(exp(im*omega*T)))/real(H(exp(im*omega*T))))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "54574582-fa07-4ea0-aff3-5c0ba40d0108",
"metadata": {},
"outputs": [],
"source": [
"T = 1/320\n",
"freq = 0:1:320\n",
"omega = [2*pi*n for n in freq];"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "61deffed-851d-40a2-8399-eadd43d19cb1",
"metadata": {},
"outputs": [],
"source": [
"rw = [r(w, T) for w in omega];\n",
"phi = [fphase(w, T) for w in omega];"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c362341b-71a2-4b4a-8136-d98e6490ead3",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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A19UjUwme+utt1577TUcHQUArEDsUTXNcl0ONoRisdjX1/fevXv4sKioKDAw0LEiNQv+/v7V1dVqtRofFhUV4Sq1gICA4uJi3FhbW1tWVkb49S5evPj48eN79uxh1vpjXwLze7EbAaCwsPBhFsltAZ588smRI0f+9NNPeXl5aWlpYHZdPj4+EokkICCAGZzA+h15TEBAQElJCfMcw5tLNhmi7KHLIf2j0WiGDRvWrVu3//znP7jF39+/pqamoqICH3JU1bi4uAwcOHDy5Mlbtmz54osvampqcLmv+U/Dvi6j0Xjv3r1muS7H5wj79et34MAB/DolJaVfv34OFad5CAgIiIqKSklJgboi5meeeQYA+vXrd/DgQaxlUlNTw8LCSK7If/fdd1NSUvbv38+eO/HMM8/g6wLW79W9e/eioiK8oblKpTp58iQnfketVqvVavFS7xbHYZcuXWpqanBYu6qqKj09Hf+OPCYqKkqhUPz1118AoNPpDh06xI9L7tOnz/nz50tKSgAgNzc3Ozu7V69ewCn9o9VqR40aFRUV9dVXXzFekZ+fX3R0NL4lEUKpqanmqiYtLS0kJMRkcheZ3Lt3z8XFRSKRyGSyxx9/3FzV9OvX79ChQzqdDgCOHj0qk8kePi4KQMD0ibNnz9I0/d57773xxhteXl537txxtESNo6KiIjExccKECSKRKDEx8a233sLtW7Zs8ff3X7Vq1aRJk2JjY2tqahBCer2+S5cuY8eO/fzzz4OCgr799luHym6LpKQkABg3blxiHbiINDs7W6FQLF68eNmyZXK5PDMzE5//5ptvxsbGrlmz5umnn544caJDZbfFrl27Jk6cuGLFig8++KBTp06DBg3S6/UIobt373p5eb322mvvv/8+TdNnzpzB57/33ntRUVFffPHFgAEDhg4d6lDZW4g1a9aEh4evXr16xIgRTz31VLNU5bUkx48fT0xM7NmzZ2hoaGJi4vfff4/bp0+f3qNHjzVr1nTp0uXll1/GjVlZWZ6enm+99dbSpUvlcvnly5cdJ3gDzJ49283NbdasWfh+/Pjjj3H7Dz/84Ofnt2rVqvj4+JiYGEbVdO3adcyYMZ9//nlwcPCGDRscKrst3nnnnblz53722WeLFi3y8fFhJg789ttv3t7eK1eunD59ert27bD+MRqNvXr1GjZs2OrVq9u0abN6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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"
"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gainplot = plot(freq, rw, label=\"gain\", legend=:top, xlabel=\"frequency Hz\")\n",
"phaseplot = plot(freq, phi, label=\"phase\", legend=:topright, xlabel=\"frequency Hz\")\n",
"plot(gainplot,phaseplot)"
]
},
{
"cell_type": "markdown",
"id": "3bf9698d-1bd1-4198-bc88-449f6ddb11f6",
"metadata": {},
"source": [
"From the gains, we see that signls at 40 Hz are removed, but also those around 120 Hz, 200 Hz, and 280 Hz."
]
},
{
"cell_type": "markdown",
"id": "1bd8b79a-5c56-4496-96c9-948852e160be",
"metadata": {},
"source": [
"# Question 3"
]
},
{
"cell_type": "markdown",
"id": "727232d1-cd60-4be8-9fc2-f4268f5f9fb5",
"metadata": {},
"source": [
"A plywood manufacturer offers four types of plywood,\n",
"distinguished as grades $A$, $B$, $C$, \n",
"and $D$, with revenues $\\$25$, $\\$12$, $\\$9$, and $\\$4$ respectively.\n",
"\n",
"* Upper limits on production are 1000/3 for $A$ and $D$;\n",
" and 1500/3 for $B$ and $C$.\n",
"\n",
"* In 8 hours, a laborer can produce at most 1/25-th units\n",
" of $A$ and $B$ and 1/30-th units of $C$ and $D$.\n",
" \n",
"* The manufacturer needs to offer 40\\% of grade $A$ and $B$,\n",
" and 60\\% of grade $C$ and $D$.\n",
"\n",
"Formulate the optimization problem to maximize revenue,\n",
"subject to the constraints."
]
},
{
"cell_type": "markdown",
"id": "2ed1f9b3-e436-4aa2-99ed-690ed004500d",
"metadata": {},
"source": [
"## answer to question 3"
]
},
{
"cell_type": "markdown",
"id": "81b84cda-7903-4b55-a224-ac4e95b68d18",
"metadata": {},
"source": [
"We use JuMP to formulate the model."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "fba0f817-20ba-458f-b155-7478c369d3a7",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$$ \\begin{aligned}\n",
"\\max\\quad & 25 xA + 12 xB + 9 xC + 4 xD\\\\\n",
"\\text{Subject to} \\quad & xA \\geq 0\\\\\n",
" & xB \\geq 0\\\\\n",
" & xC \\geq 0\\\\\n",
" & xD \\geq 0\\\\\n",
"\\end{aligned} $$"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"model = Model(GLPK.Optimizer)\n",
"\n",
"@variable(model, xA >= 0) # Grade A\n",
"@variable(model, xB >= 0) # Grade B\n",
"@variable(model, xC >= 0) # Grade C\n",
"@variable(model, xD >= 0) # Grade D\n",
"\n",
"@objective(model, Max, 25*xA + 12*xB + 9*xC + 4*xD)\n",
"print(model)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "4f96a438-86a9-4b97-9971-3aab64d8b07e",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$$ \\begin{aligned}\n",
"\\max\\quad & 25 xA + 12 xB + 9 xC + 4 xD\\\\\n",
"\\text{Subject to} \\quad & xA \\leq 333.3333333333333\\\\\n",
" & xB \\leq 500\\\\\n",
" & xC \\leq 500\\\\\n",
" & xD \\leq 333.3333333333333\\\\\n",
" & xA \\geq 0\\\\\n",
" & xB \\geq 0\\\\\n",
" & xC \\geq 0\\\\\n",
" & xD \\geq 0\\\\\n",
"\\end{aligned} $$"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"@constraint(model, xA <= 1000/3) \n",
"@constraint(model, xB <= 1500/3) \n",
"@constraint(model, xC <= 1500/3)\n",
"@constraint(model, xD <= 1000/3)\n",
"print(model)"
]
},
{
"cell_type": "markdown",
"id": "3643a111-cd93-4399-8575-0375d1d3d86a",
"metadata": {},
"source": [
"The labor constraints are that total labor time must not exceed 8 hours."
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "78813dee-a64f-428f-aed1-c29e06ce16ec",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$$ \\begin{aligned}\n",
"\\max\\quad & 25 xA + 12 xB + 9 xC + 4 xD\\\\\n",
"\\text{Subject to} \\quad & xA \\leq 333.3333333333333\\\\\n",
" & xB \\leq 500\\\\\n",
" & xC \\leq 500\\\\\n",
" & xD \\leq 333.3333333333333\\\\\n",
" & 25 xA + 25 xB + 30 xC + 30 xD \\leq 8\\\\\n",
" & xA \\geq 0\\\\\n",
" & xB \\geq 0\\\\\n",
" & xC \\geq 0\\\\\n",
" & xD \\geq 0\\\\\n",
"\\end{aligned} $$"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"@constraint(model, 25*xA + 25*xB + 30*xC + 30*xD <= 8)\n",
"print(model)"
]
},
{
"cell_type": "markdown",
"id": "3321760b-2357-475b-a59e-c73c6a410221",
"metadata": {},
"source": [
"Then we have the percentages of the total production:\n",
"1. $x_A + x_B = 0.4(x_A + x_B + x_C + x_D)$\n",
"2. $x_C + x_D = 0.6(x_A + x_B + x_C + x_D)$"
]
},
{
"cell_type": "markdown",
"id": "6ea59ae0-ac3d-4ebd-9452-2c6930d3092e",
"metadata": {},
"source": [
"which simplifies into\n",
"1. $0.6(x_A + x_B) = 0.4(x_C + x_D)$\n",
"2. $0.4(x_C + x_D) = 0.6(x_A + x_B)$"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "0cafacc3-0cbc-4863-b882-74c175112c2c",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$$ \\begin{aligned}\n",
"\\max\\quad & 25 xA + 12 xB + 9 xC + 4 xD\\\\\n",
"\\text{Subject to} \\quad & 0.6 xA + 0.6 xB - 0.4 xC - 0.4 xD = 0\\\\\n",
" & xA \\leq 333.3333333333333\\\\\n",
" & xB \\leq 500\\\\\n",
" & xC \\leq 500\\\\\n",
" & xD \\leq 333.3333333333333\\\\\n",
" & 25 xA + 25 xB + 30 xC + 30 xD \\leq 8\\\\\n",
" & xA \\geq 0\\\\\n",
" & xB \\geq 0\\\\\n",
" & xC \\geq 0\\\\\n",
" & xD \\geq 0\\\\\n",
"\\end{aligned} $$"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"@constraint(model, 0.6*(xA + xB) == 0.4*(xC + xD))\n",
"print(model)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "8ceaea8e-17bb-4747-b14b-6a026cbf07ff",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"solution_summary(; result = 1, verbose = false)\n",
"├ solver_name : GLPK\n",
"├ Termination\n",
"│ ├ termination_status : OPTIMAL\n",
"│ ├ result_count : 1\n",
"│ ├ raw_status : Solution is optimal\n",
"│ └ objective_bound : Inf\n",
"├ Solution (result = 1)\n",
"│ ├ primal_status : FEASIBLE_POINT\n",
"│ ├ dual_status : FEASIBLE_POINT\n",
"│ ├ objective_value : 4.40000e+00\n",
"│ └ dual_objective_value : 4.40000e+00\n",
"└ Work counters\n",
" └ solve_time (sec) : 1.20001e-02"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"optimize!(model)\n",
"solution_summary(model)"
]
},
{
"cell_type": "markdown",
"id": "4efceedb-d6a7-4598-9acb-9a898bad6ded",
"metadata": {},
"source": [
"The model has a feasible solution."
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "2b2b7e6e-41f9-42b3-bf30-ab7d66b20eb1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"xA : 0.11428571428571427\n",
"xB : 0.0\n",
"xC : 0.1714285714285714\n",
"xD : 0.0\n"
]
}
],
"source": [
"println(\"xA : \", value(xA))\n",
"println(\"xB : \", value(xB))\n",
"println(\"xC : \", value(xC))\n",
"println(\"xD : \", value(xD))"
]
},
{
"cell_type": "markdown",
"id": "69a23907-11d9-4f68-bf46-f730ef0a779b",
"metadata": {},
"source": [
"# Question 4"
]
},
{
"cell_type": "markdown",
"id": "ba46cb2e-2142-41e1-b582-03b16908ace7",
"metadata": {},
"source": [
"Choose between two payout plans for a sum of $p$ dollars:\n",
" \n",
"1. either you receive 90\\% of $p$ now; or\n",
"\n",
"2. $p/12$ now, followed by 11 monthly installments of $p/12$.\n",
"\n",
"What should the interest rate be to break even? Justify your answer."
]
},
{
"cell_type": "markdown",
"id": "1d594675-7ae5-4b39-9505-deb1e6486bf6",
"metadata": {},
"source": [
"## answer to question 4"
]
},
{
"cell_type": "markdown",
"id": "23e3a878-6b0e-4d71-98f5-bcf2d3570b57",
"metadata": {},
"source": [
"The equation we want to solve is\n",
"\n",
"$$\n",
" 0.9 p = (p/12) \\sum_{k=0}^{11} \\exp(-k (r/12))\n",
"$$\n",
"\n",
"where $r$ is the annual rate."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "e855f158-9123-4c2b-ae41-dedd90f81c1c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"f!"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\"\n",
"function f!(F, x)\n",
"defines F[1] as the input to nlsolve.\n",
"\"\"\"\n",
"function f!(F, x)\n",
" r = x[1]\n",
" F[1] = 0.9 - (1/12)*sum(exp(-r*(k-1)/12) for k=1:12)\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "a153ee32-0aa1-46ee-aa89-c3c6ba4678df",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Results of Nonlinear Solver Algorithm\n",
" * Algorithm: Trust-region with dogleg and autoscaling\n",
" * Starting Point: [0.05]\n",
" * Zero: [0.2348546092689165]\n",
" * Inf-norm of residuals: 0.000000\n",
" * Iterations: 5\n",
" * Convergence: true\n",
" * |x - x'| < 0.0e+00: false\n",
" * |f(x)| < 1.0e-08: true\n",
" * Function Calls (f): 6\n",
" * Jacobian Calls (df/dx): 6"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sol = nlsolve(f!, [0.05])"
]
},
{
"cell_type": "markdown",
"id": "0395927a-f537-47de-ba0e-2ae9fffcb5b6",
"metadata": {},
"source": [
"The annual rate at which both options are the same is 23.49%."
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "12a08dee-39bc-4c46-94c6-8910973d6c2a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.019575"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"0.2349/12"
]
},
{
"cell_type": "markdown",
"id": "c7ebc814-8678-4921-a5d0-f777856df915",
"metadata": {},
"source": [
"The monthly rate is 1.96%."
]
},
{
"cell_type": "markdown",
"id": "0bbf2c66-f14f-43c3-90d8-d15b3c50bf32",
"metadata": {},
"source": [
"# Question 5"
]
},
{
"cell_type": "markdown",
"id": "afd909d4-d491-4072-9b3a-d12bb884ebee",
"metadata": {},
"source": [
"Describe in one paragraph what you learned \n",
"from *another* project presentation."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.12",
"language": "julia",
"name": "julia-1.12"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.12.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}