Skip to content

Commit

Permalink
Deploying to gh-pages from @ d84d867 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
prudhomm committed Dec 5, 2024
1 parent e44dc46 commit 9477b51
Show file tree
Hide file tree
Showing 21 changed files with 1,597 additions and 53 deletions.
Binary file added course-rom/_attachments/homework-2024-data.zip
Binary file not shown.
1 change: 1 addition & 0 deletions course-rom/_attachments/homework-2024/problem-set-1.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"cells":[{"cell_type":"markdown","source":["# Problem Set 1: RB for Linear Affine Elliptic Problems\n\n","We consider the problem of designing a thermal fin to effectively remove heat from a surface. The two-dimensional fin, shown in [Figure 1](#fig:1), consists of a vertical central post and four horizontal subfins; the fin conducts heat from a prescribed uniform flux source at the root, $\\Gamma_{\\mathrm{root}}$ , through the large-surface-area subfins to surrounding flowing air. The fin is characterized by a five-component parameter vector, or input, latexmath:[\\mu_\n","= (\\mu_1 , \\mu_2, \\ldots, \\mu_5 )],where latexmath:[\\mu_i = k^i , i = 1, \\ldots\n",", 4], and $\\mu_5 = \\mathrm{Bi}$; $\\mu$ may take on any value in a specified design set $D \\subset \\mathbb{R}^5$.\n"],"metadata":{}},{"cell_type":"markdown","source":["\n","![image](fin.png)\n","\n"],"metadata":{"node_name":"image"}},{"cell_type":"markdown","source":["Here $k^i$ is the thermal conductivity of the ith subfin (normalized relative to the post conductivity $k^0 \\equiv 1$); and $\\mathrm{Bi}$ is the Biot number, a nondimensional heat transfer coefficient reflecting convective transport to the air at the fin surfaces (larger $\\mathrm{Bi}$ means better heat transfer). For example, suppose we choose a thermal fin with $k^1 = 0.4, k^2 = 0.6, k^3 = 0.8, k^4 = 1.2$, and $\\mathrm{Bi} = 0.1$; for this particular configuration $\\mu = \\{0.4, 0.6, 0.8, 1.2, 0.1\\}$, which corresponds to a single point in the set of all possible configurations D (the parameter or design set). The post is of width unity and height four; the subfins are of fixed thickness $t = 0.25$ and length $L = 2.5$.\n"],"metadata":{}},{"cell_type":"markdown","source":["We are interested in the design of this thermal fin, and we thus need to look at certain outputs or cost-functionals of the temperature as a function of $\\mu$. We choose for our output $T_{\\mathrm{root}}$, the average steady-state temperature of the fin root normalized by the prescribed heat flux into the fin root. The particular output chosen relates directly to the cooling efficiency of the fin — lower values of $T_{\\mathrm{root}}$ imply better thermal performance. The steady–state temperature distribution within the fin, $u(\\mu)$, is governed by the elliptic partial differential equation\n"],"metadata":{}},{"cell_type":"markdown","source":["\n$$\n\\label{eq:1}\n-k^i \\Delta u^i = 0 \\text{ in } \\Omega^i , i = 0, \\ldots, 4,\n$$\n"],"metadata":{}},{"cell_type":"markdown","source":["where $\\Delta$ is the Laplacian operator, and $u_i$ refers to the restriction of $u \\text{ to } \\Omega^i$ . Here $\\Omega^i$ is the region of the fin with conductivity $k^i , i = 0,\\ldots, 4: \\Omega^0$ is thus the central post, and $\\Omega^i , i = 1,\\ldots, 4$, corresponds to the four subfins. The entire fin domain is denoted $\\Omega (\\bar{\\Omega} = \\cup_{i=0}^4 \\bar{\\Omega}^i )$; the boundary $\\Omega$ is denoted $\\Gamma$. We must also ensure continuity of temperature and heat flux at the conductivity– discontinuity interfaces $\\Gamma^i_{int} \\equiv \\partial\\Omega^0 \\cap \\partial\\Omega^i , i = 1,\\ldots, 4$, where $\\partial\\Omega^i$ denotes the boundary of $\\Omega^i$, we have on $\\Gamma^i_{int} i = 1,\\ldots, 4$ :\n"],"metadata":{}},{"cell_type":"markdown","source":["\n$$\n\\begin{aligned}\n u^0 &= u^i \\\\\n -(\\nabla u^0 \\cdot n^i ) &= -k^i (\\nabla u^i \\cdot n^i )\n\\end{aligned}\n$$\n"],"metadata":{}},{"cell_type":"markdown","source":["here $n^i$ is the outward normal on $\\partial\\Omega^i$ . Finally, we introduce a Neumann flux boundary condition on the fin root\n"],"metadata":{}},{"cell_type":"markdown","source":["\n$$\n-(\\nabla u^0 \\cdot n^0 ) = -1 \\text{ on } \\Gamma_{\\mathrm{root}} ,\n$$\n"],"metadata":{}},{"cell_type":"markdown","source":["which models the heat source; and a Robin boundary condition\n"],"metadata":{}},{"cell_type":"markdown","source":["\n$$\n-k^i (\\nabla u^i \\cdot n^i ) = \\mathrm{Bi} u^i \\text{ on } \\Gamma^i_{ext} , i = 0,\\ldots, 4,\n$$\n"],"metadata":{}},{"cell_type":"markdown","source":["which models the convective heat losses. Here $\\Gamma^i_{ext}$ is that part of the boundary of $\\Omega^i$ exposed to the flowing fluid; note that $\\cup_{i=0}^4 \\Gamma^i_{ext} = \\Gamma\\backslash\\Gamma_{\\mathrm{root}}$. The average temperature at the root, $T_{\\mathrm{root}} (\\mu)$, can then be expressed as $\\ell^O(u(\\mu))$, where\n"],"metadata":{}},{"cell_type":"markdown","source":["\n$$\n\\ell^O (v) = \\int_{\\Gamma_{\\mathrm{root}}} v\n$$\n"],"metadata":{}},{"cell_type":"markdown","source":["(recall $\\Gamma_{\\mathrm{root}}$ is of length unity). Note that $\\ell(v) = \\ell^O(v)$ for this problem.\n\n","## Part 1 - Finite Element Approximation\n\n","We saw in class that the reduced basis approximation is based on a truth finite element approximation of the exact (or analytic) problem statement. To begin, we have to show that the exact problem described above does indeed satisfy the affine parameter dependence and thus fits into the framework shown in class.\n","a) Show that $u^e (\\mu) \\in X^e \\equiv H^1 (\\Omega)$ satisfies the weak form\n","\n$$\na(u^e (\\mu), v; \\mu) = \\ell(v), \\forall v \\in X^e ,\n$$\n","with\n","\n$$\n\\begin{aligned}\na(w, v; \\mu) &=\\sum_{i=0}^4 k^i \\int_{\\Omega^i} \\nabla w \\cdot \\nabla v dA\n+ \\mathrm{Bi}\\int_{\\Gamma\\backslash\\Gamma_{\\mathrm{root}}} w v dS,\\\\\n\\ell(v) &= \\int_{\\Gamma_{\\mathrm{root}}} v\n\\end{aligned}\n$$\n","b) Show that $u^e (\\mu)$ is the argument that minimizes\n","\n$$\n\\label{eq:2}\nJ(w) = \\frac{1}{2}\\sum_{i=0}^4 k^i \\int_{\\Omega_i} \\nabla w \\cdot\n\\nabla w dA + \\frac{\\mathrm{Bi}}{2}\n\\int_{\\Gamma\\backslash\\Gamma_{\\mathrm{root}}} w^2 dS -\n\\int_{\\Gamma_{\\mathrm{root}}} w dS\n$$\n","over all functions $w$ in $X^e$ .\n","We now consider the linear finite element space\n","\n$$\nX^{\\mathcal{N}} = \\{v \\in H^1 (\\Omega)| v|_{T_h} \\in \\mathbb{P}^1 (\\mathcal{T}_h ), \\forall T_h \\in \\mathcal{T}_h \\},\n$$\n","and look for $u^{\\mathcal{N}} (\\mu) \\in X^{\\mathcal{N}}$ such that\n","\n$$\na(u^{\\mathcal{N}} (\\mu), v; \\mu) = \\ell(v), \\forall v \\in X^{\\mathcal{N}} ;\n$$\n","our output of interest is then given by\n","\n$$\nT_{\\mathrm{root}}^\\mathcal{N}(\\mu) = \\ell^O (u^{\\mathcal{N}} (\\mu)).\n$$\n","Applying our usual nodal basis, we arrive at the matrix equations\n","\n$$\n\\begin{aligned}\n%\n A^{\\mathcal{N}} (\\mu) %\n u^{\\mathcal{N}} (\\mu) & = %\n F^{\\mathcal{N}} ,\\\\\nT_{\\mathrm{root}}^\\mathcal{N}(\\mu) &= (%\n L^{\\mathcal{N}} )^T %\n u^{\\mathcal{N}} (\\mu),\n\\end{aligned}\n$$\n","where latexmath:[%\n"," A^{\\mathcal{N}} \\in\n","\\mathbb{R}^{\\mathcal{N}\\times\\mathcal{N}} ,\n","%\n"," u^{\\mathcal{N}} \\in \\mathbb{R}^{\\mathcal{N}} ,\n","%\n"," F^{\\mathcal{N}} \\in \\mathbb{R}^{\\mathcal{N}} , and\n","%\n"," L^{\\mathcal{N}} \\in \\mathbb{R}^{\\mathcal{N}}]; here $\\mathcal{N}$ is the dimension of the finite element space $X^{\\mathcal{N}}$, which (given our natural boundary conditions) is equal to the number of nodes in $\\mathcal{T}_h$.\n\n","## Part 2 - Reduced-Basis Approximation\n\n","In general, the dimension of the finite element space, latexmath:[\\mathop{\\mathrm{dim}}X =\n","\\mathcal{N}], will be quite large (in particular if we were to treat the more realistic three-dimensional fin problem), and thus the solution of latexmath:[%\n"," A^{\\mathcal{N}} %\n"," u^{\\mathcal{N}} (\\mu) = %\n"," F^\\mathcal{N}] can be quite expensive. We thus investigate the reduced-basis methods that allow us to accurately and very rapidly predict $T_{\\mathrm{root}} (\\mu)$ in the limit of many evaluations — that is, at many different values of $\\mu$ — which is precisely the limit of interest in design and optimization studies. To derive the reduced-basis approximation we shall exploit the energy principle,\n","\n$$\nu(\\mu) = \\mathop{\\mathrm{argmin}}_{w \\in X} J(w),\n$$\n","where $J(w)$ is given by (#eq:2).\n","To begin, we introduce a sample in parameter space, latexmath:[S_N = \\{\\mu_1 ,\n"," \\mu_2 ,\\ldots, \\mu_N \\}] with $N \\ll \\mathcal{N}$. Each latexmath:[\\mu_i , i =\n","1,\\ldots, N] , belongs in the parameter set $\\mathcal{D}$. For our parameter set we choose $\\mathcal{D} = [0.1, 10.0$^4 \\times [0.01, 1.0]], that is, $0.1 \\leq k^i \\leq 10.0, i = 1,\\ldots, 4$ for the conductivities, and latexmath:[0.01\n","\\leq \\mathrm{Bi} \\leq 1.0] for the Biot number. We then introduce the reduced-basis space as\n","\n$$\nW_N = \\mathop{\\mathrm{span}}\\{u^\\mathcal{N} (\\mu_1 ), u^\\mathcal{N} (\\mu_2 ),\\ldots, u^\\mathcal{N}(\\mu_N ) \\}\n$$\n","where $u_N (\\mu_i )$ is the finite-element solution for latexmath:[\\mu =\n","\\mu_i].\n","To simplify the notation, we define $\\xi^i \\in X$ as latexmath:[\\xi^i = u_N\n","(\\mu_i ), i = 1,\\ldots, N]; we can then write latexmath:[W_N = span\\{\\xi^i , i =\n"," 1,\\ldots, N \\}]. Recall that $W_N = \\mathop{\\mathrm{span}}\\{\\xi^i , i = 1,\\ldots, N \\}$ means that $W_N$ consists of all functions in $X$ that can be expressed as a linear combination of the $\\xi^i$ ; that is, any member $v_N$ of $W_N$ can be represented as\n","\n$$\nv_N =\\sum_{i=1}^N \\beta^j \\xi^j ,\n$$\n","for some unique choice of latexmath:[\\beta^j \\in \\mathbb{R}, j = 1,\\ldots,\n","N]. (We implicitly assume that the $\\xi^i , i = 1,\\ldots, N$, are linearly independent; it follows that $W_N$ is an $N$ -dimensional subspace of $X^\\mathcal{N}$.) In the reduced-basis approach we look for an approximation $u_N (\\mu)$ to $u^\\mathcal{N} (\\mu)$ (which for our purposes here we presume is arbitrarily close to $u^e (\\mu))$ in $W_N$ ; in particular, we express $u_N (\\mu)$ as\n","\n$$\nu_N (\\mu) =\\sum_{i=1}^N u^j_N \\xi^j ;\n$$\n","we denote by latexmath:[%\n"," u_N (\\mu) \\in \\mathbb{R}^N] the coefficient vector $(u^1_N ,\\ldots, u^N_N )^T$. The premise — or hope — is that we should be able to accurately represent the solution at some new point in parameter space, $\\mu$, as an appropriate linear combination of solutions previously computed at a small number of points in parameter space (the $\\mu_i , i = 1,\\ldots, N ).$ But how do we find this appropriate linear combination? And how good is it? And how do we compute our approximation efficiently? The energy principle is crucial here (though more generally the weak form would suffice). To wit, we apply the classical Rayleigh-Ritz procedure to define\n","\n$$\n\\label{eq:3}\nu_N (\\mu) = \\mathop{\\mathrm{argmin}}_{wN \\in W_N} J(w_N );\n$$\n","alternatively we can apply Galerkin projection to obtain the equivalent statement\n","\n$$\n\\label{eq:4}\na(u_N (\\mu), v; \\mu) = \\ell(v),\\quad \\forall v \\in W_N .\n$$\n","The output can then be calculated from\n","\n$$\n\\label{eq:5}\n{T_{\\mathrm{root}}}_N (\\mu) = \\ell^O (u_N (\\mu)).\n$$\n","We now study this approximation in more detail.\n","a) Prove that, in the energy norm latexmath:[||| \\cdot ||| \\equiv (a(·, ·;\n","\\mu))^{1/2}] ,\n","\n$$\n|||u(\\mu) - u_N (\\mu)||| \\leq |||u(\\mu) - w_N |||, \\forall w_N \\in W_N .\n$$\n","This inequality indicates that out of all the possible choices of wN in the space $W_N$ , the reduced basis method defined above will choose the best one (in the energy norm). Equivalently, we can say that even if we knew the solution $u(\\mu)$, we would not be able to find a better approximation to $u(\\mu)$ in $W_N$ — in the energy norm — than latexmath:[u_N\n","(\\mu).]\n","b) Prove that\n","\n$$\nT_{\\mathrm{root}} (\\mu) - {T_{\\mathrm{root}}}_N (\\mu) = |||u(\\mu) - u_N (\\mu)|||^2.\n$$\n","c) Show that $u_N (\\mu)$ as defined in #eq:3-#eq:5 satisfies a set of $N \\times N$ linear equations,\n","\n$$\nA_N (\\mu) %\n u_N (\\mu) = %\n F_N ;\n$$\n","and that\n","\n$$\n{T_{\\mathrm{root}}}_N (\\mu) = %\n L^T_N %\n u_N (\\mu).\n$$\n","Give expressions for latexmath:[%\n"," A_N (\\mu) \\in \\mathbb{R}^{N\\times\n"," N}] in terms of latexmath:[%\n"," A^\\mathcal{N} (\\mu)] and latexmath:[Z,\n","%\n"," F^N \\in \\mathbb{R}^N] in terms of latexmath:[%\n"," F^\\mathcal{N}] and $Z,$ and latexmath:[%\n"," L^N \\in\n","\\mathbb{R}^N] in terms of latexmath:[%\n"," L^\\mathcal{N}] and $Z$; here $Z$ is an $\\mathcal{N} \\times N$ matrix, the $j$ th column of which is latexmath:[%\n"," u_N (\\mu^j)] (the nodal values of latexmath:[%\n"," u^\\mathcal{N}\n","(\\mu^j)]).\n","d) Show that the bilinear form $a(w, v; \\mu)$ can be decomposed as\n","\n$$\na(w, v; \\mu) = \\sum_{q=0}^Q \\theta^q (\\mu) a^q (w, v), \\forall w, v \\in X, \\forall \\mu \\in D,;\n$$\n","for $Q=6$ and give expressions for the $\\theta^q (\\mu)$ and the latexmath:[a^q\n","(w, v)]. Notice that the $aq (w, v)$ are not dependent on $\\mu$; the parameter dependence enters only through the functions latexmath:[\\theta^q\n","(\\mu), q = 1,\\ldots, Q.] Further show that\n","\n$$\n%\n A^\\mathcal{N} (\\mu) = \\sum_{q=1}^Q \\theta^q (\\mu) {%\n A^\\mathcal{N}}^q ,\n$$\n","and\n","\n$$\n%\n A^N (\\mu) = \\sum_{q=1}^Q \\theta^q (\\mu) %\n A^q_N ,\n$$\n","Give an expression for the latexmath:[{%\n"," A\\mathcal{N}}q] in terms of the nodal basis functions; and develop a formula for the latexmath:[%\n"," A^q_N] in terms of the latexmath:[{%\n"," A\\mathcal{N}}q] and $Z$.\n","e) The coercivity and continuity constants of the bilinear form for the continuous problem are denoted by $\\alpha^e (\\mu)$ and latexmath:[\\gamma^e\n","(\\mu)], respectively. We now assume that the basis function latexmath:[\\xi i ,\n","i = 1,\\ldots, N,] are orthonormalized. Show that the condition number of latexmath:[%\n"," A_N (\\mu)] is then bounded from above by latexmath:[\\gamma^e (\\mu)/\\alpha^e\n","(\\mu).]\n","f): Take into account the parameters $L$ and $t$ as parameters: the geometric transformation must be taken into account in the affine decomposition procedure.\n","*acknowledgment:* This problem set is based on a problem set in the class 16.920 Numerical Methods for Partial Differential Equations at MIT. We would like to thank Prof. A.T. Patera and Debbie Blanchard for providing the necessary material and the permission to use it.\n"],"metadata":{}}],"metadata":{"language_info":{"name":"python","version":"3.9.1"}},"nbformat":4,"nbformat_minor":4}
5 changes: 3 additions & 2 deletions course-rom/env/antora.html
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,10 @@ <h3 class="title"><a href="../index.html">Course ROM</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../overview.html">Overview</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../tps/tp-assim-1.html">The Kalman Filter</a>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<span class="nav-text">Setting up the development Environment</span>
Expand Down
5 changes: 3 additions & 2 deletions course-rom/env/cmake.html
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,10 @@ <h3 class="title"><a href="../index.html">Course ROM</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../overview.html">Overview</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../tps/tp-assim-1.html">The Kalman Filter</a>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<span class="nav-text">Setting up the development Environment</span>
Expand Down
5 changes: 3 additions & 2 deletions course-rom/env/githubactions.html
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,10 @@ <h3 class="title"><a href="../index.html">Course ROM</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../overview.html">Overview</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../tps/tp-assim-1.html">The Kalman Filter</a>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<span class="nav-text">Setting up the development Environment</span>
Expand Down
5 changes: 3 additions & 2 deletions course-rom/env/jupyter.html
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,10 @@ <h3 class="title"><a href="../index.html">Course ROM</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../overview.html">Overview</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../tps/tp-assim-1.html">The Kalman Filter</a>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<span class="nav-text">Setting up the development Environment</span>
Expand Down
5 changes: 3 additions & 2 deletions course-rom/env/rename.html
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,10 @@ <h3 class="title"><a href="../index.html">Course ROM</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../overview.html">Overview</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../tps/tp-assim-1.html">The Kalman Filter</a>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<span class="nav-text">Setting up the development Environment</span>
Expand Down
5 changes: 3 additions & 2 deletions course-rom/env/vscode.html
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,10 @@ <h3 class="title"><a href="../index.html">Course ROM</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../overview.html">Overview</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../tps/tp-assim-1.html">The Kalman Filter</a>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<span class="nav-text">Setting up the development Environment</span>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Problem Set 1: RB for Linear Affine Elliptic Problems :: Course Rom</title>
<link rel="canonical" href="https://feelpp.github.io/course-rom/course-rom/homework/problem-set-1.html">
<link rel="canonical" href="https://feelpp.github.io/course-rom/course-rom/homework-2023/problem-set-1.html">
<meta name="generator" content="Antora 3.1.4">
<link rel="stylesheet" href="../../_/css/site.css">
<link rel="icon" href="../../_/img/favicon.ico" type="image/x-icon">
Expand Down Expand Up @@ -145,9 +145,10 @@ <h3 class="title"><a href="../index.html">Course ROM</a></h3>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../overview.html">Overview</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../tps/tp-assim-1.html">The Kalman Filter</a>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<span class="nav-text">Setting up the development Environment</span>
Expand Down Expand Up @@ -203,7 +204,7 @@ <h3 class="title"><a href="../index.html">Course ROM</a></h3>
</nav>


<div class="edit-this-page"><a href="https://github.com/feelpp/course-rom/edit/master/docs/modules/ROOT/pages/homework/problem-set-1.adoc">Edit this Page</a></div>
<div class="edit-this-page"><a href="https://github.com/feelpp/course-rom/edit/master/docs/modules/ROOT/pages/homework-2023/problem-set-1.adoc">Edit this Page</a></div>

<div class="page-downloads">
<span class="label">Download as</span>
Expand All @@ -215,7 +216,7 @@ <h3 class="title"><a href="../index.html">Course ROM</a></h3>
</a>
</li>
<li>
<a href="../_attachments/homework/problem-set-1.ipynb"
<a href="../_attachments/homework-2023/problem-set-1.ipynb"
title="Download Jupyter Notebook" data-toggle="tooltip" data-placement="left" class="jupyter-download">
<img class="jupyter-file-icon icon" src="../../_/img/jupyter-logo.svg"/> .ipynb
</a>
Expand Down
Loading

0 comments on commit 9477b51

Please sign in to comment.