{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "e5ecb852",
   "metadata": {},
   "source": [
    "# The exemplars from *The Internal Logic of Symbulator*\n",
    "\n",
    "The monograph [*The Internal Logic of Symbulator*](https://learn.symbulator.com/monograph.pdf) closes with seven exemplar circuits, chosen because each shows one thing the simulator is for. This notebook runs all of them, as the eight entries the app's Built-in Examples menu lists under *The Monograph* -- the circuits below are read from that same file, not retyped.\n",
    "\n",
    "Each section gives the problem as the monograph poses it, draws the circuit, solves it, and reads the answer the text discusses. Run the cells in order; nothing here takes more than a few seconds.\n",
    "\n",
    "If you are on Colab, run the first cell."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "f2599e74",
   "metadata": {},
   "outputs": [],
   "source": [
    "# !pip install symbulator matplotlib"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a052029e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'0.5.30'"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sympy as sp\n",
    "from symbulator import dc, ac, fd, tr, th, draw, polar, bode_samples, t, s\n",
    "import symbulator\n",
    "symbulator.__version__"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "04c872ff",
   "metadata": {},
   "source": [
    "## 1. The two-stage amplifier of 1999\n",
    "\n",
    "The circuit that closed the 1999 paper and the thesis's Problem 87: a two-stage amplifier whose gain Bode diagram Prof. Yee asked for. An FD solve returns every node voltage in s, and the gain is the Evaluate line, v4/v5. For the Bode plot itself, set vg to 1 (so v_4 is the transfer function) and plot v_4 between 1.6e3 and 1.6e12 Hz. Three minutes on the TI-89 in 2001; under a second here.\n",
    "\n",
    "The analysis is in the s-domain, so `fd()`: every node voltage comes back as a function of `s`. A bare `a` would show all of them; the output node is enough here."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "966d1f30",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"10 -16 1164.46 375.25\" width=\"1164.46\" height=\"375.25\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"symbulator-schematic\"><style>.symbulator-schematic .lbl{font:13px/1 ui-sans-serif,system-ui,sans-serif;fill:currentColor;stroke:none}.symbulator-schematic .sub{font-size:0.72em}</style><g transform=\"translate(58,146)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"124\" y=\"131.39\" text-anchor=\"middle\"><tspan dy=\"0\">150Ω</tspan></text><text class=\"lbl\" x=\"124\" y=\"114.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">1</tspan></text><g transform=\"translate(190,58)\"><path d=\"M0 0 L126.5 0 M137.5 0 L264 0\"/><path d=\"M126.5 -13 L126.5 13\"/><path d=\"M137.5 -13 L137.5 13\"/></g><text class=\"lbl\" x=\"322\" y=\"36.9\" text-anchor=\"middle\"><tspan dy=\"0\">3pF</tspan></text><text class=\"lbl\" x=\"322\" y=\"20\" text-anchor=\"middle\"><tspan dy=\"0\">C</tspan><tspan class=\"sub\" dy=\"3.4\">C2</tspan></text><g transform=\"translate(454,58)\"><path d=\"M0 0 L112.1 0 Q113.6 0 114.188 1.38004 L116.079 5.81996 Q116.667 7.2 117.254 5.81996 L122.212 -5.81996 Q122.8 -7.2 123.388 -5.81996 L128.346 5.81996 Q128.933 7.2 129.521 5.81996 L134.479 -5.81996 Q135.067 -7.2 135.654 -5.81996 L140.612 5.81996 Q141.2 7.2 141.788 5.81996 L146.746 -5.81996 Q147.333 -7.2 147.921 -5.81996 L149.812 -1.38004 Q150.4 0 151.9 0 L264 0\"/></g><text class=\"lbl\" x=\"586\" y=\"43.39\" text-anchor=\"middle\"><tspan dy=\"0\">100Ω</tspan></text><text class=\"lbl\" x=\"586\" y=\"26.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">4</tspan></text><g transform=\"translate(718,58)\"><path d=\"M0 0 L126.5 0 M137.5 0 L264 0\"/><path d=\"M126.5 -13 L126.5 13\"/><path d=\"M137.5 -13 L137.5 13\"/></g><text class=\"lbl\" x=\"850\" y=\"36.9\" text-anchor=\"middle\"><tspan dy=\"0\">3pF</tspan></text><text class=\"lbl\" x=\"850\" y=\"20\" text-anchor=\"middle\"><tspan dy=\"0\">C</tspan><tspan class=\"sub\" dy=\"3.4\">C4</tspan></text><g transform=\"translate(58,146) rotate(90)\"><path d=\"M0 0 L60 0 M90 0 L150 0\"/><circle cx=\"75\" cy=\"0\" r=\"15\" fill=\"none\"/></g><text class=\"lbl\" x=\"79.35\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">E</tspan><tspan class=\"sub\" dy=\"3.4\">1</tspan></text><text class=\"lbl\" x=\"79.35\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">vg</tspan></text><path d=\"M54.5 214 L61.5 214 M58 210.5 L58 217.5\"/><path d=\"M54.5 228 L61.5 228\"/><g transform=\"translate(190,146) rotate(90)\"><path d=\"M0 0 L55.1 0 Q56.6 0 57.1878 1.38004 L59.0789 5.81996 Q59.6667 7.2 60.2545 5.81996 L65.2122 -5.81996 Q65.8 -7.2 66.3878 -5.81996 L71.3455 5.81996 Q71.9333 7.2 72.5211 5.81996 L77.4789 -5.81996 Q78.0667 -7.2 78.6545 -5.81996 L83.6122 5.81996 Q84.2 7.2 84.7878 5.81996 L89.7455 -5.81996 Q90.3333 -7.2 90.9211 -5.81996 L92.8122 -1.38004 Q93.4 0 94.9 0 L150 0\"/></g><text class=\"lbl\" x=\"202.86\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">2</tspan></text><text class=\"lbl\" x=\"202.86\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">1kΩ</tspan></text><g transform=\"translate(322,146) rotate(90)\"><path d=\"M0 0 L69.5 0 M80.5 0 L150 0\"/><path d=\"M69.5 -13 L69.5 13\"/><path d=\"M80.5 -13 L80.5 13\"/></g><text class=\"lbl\" x=\"341.35\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">C</tspan><tspan class=\"sub\" dy=\"3.4\">C1</tspan></text><text class=\"lbl\" x=\"341.35\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">100pF</tspan></text><g transform=\"translate(454,146) rotate(90)\"><path d=\"M0 0 L58.5 0 M91.5 0 L150 0\"/><path d=\"M58.5 0 L75 -16.5 L91.5 0 L75 16.5 Z\" fill=\"none\" stroke-linejoin=\"miter\"/><path d=\"M66 0 L84 0\"/><path d=\"M78 -4 L84 0 L78 4\" fill=\"currentColor\"/></g><text class=\"lbl\" x=\"476.85\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">J</tspan><tspan class=\"sub\" dy=\"3.4\">D1</tspan></text><text class=\"lbl\" x=\"476.85\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">0.05</tspan><tspan font-style=\"italic\" dy=\"0\">v</tspan><tspan class=\"sub\" dy=\"3.4\">1</tspan></text><g transform=\"translate(586,146) rotate(90)\"><path d=\"M0 0 L55.1 0 Q56.6 0 57.1878 1.38004 L59.0789 5.81996 Q59.6667 7.2 60.2545 5.81996 L65.2122 -5.81996 Q65.8 -7.2 66.3878 -5.81996 L71.3455 5.81996 Q71.9333 7.2 72.5211 5.81996 L77.4789 -5.81996 Q78.0667 -7.2 78.6545 -5.81996 L83.6122 5.81996 Q84.2 7.2 84.7878 5.81996 L89.7455 -5.81996 Q90.3333 -7.2 90.9211 -5.81996 L92.8122 -1.38004 Q93.4 0 94.9 0 L150 0\"/></g><text class=\"lbl\" x=\"598.86\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">3</tspan></text><text class=\"lbl\" x=\"598.86\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">2kΩ</tspan></text><g transform=\"translate(718,146) rotate(90)\"><path d=\"M0 0 L55.1 0 Q56.6 0 57.1878 1.38004 L59.0789 5.81996 Q59.6667 7.2 60.2545 5.81996 L65.2122 -5.81996 Q65.8 -7.2 66.3878 -5.81996 L71.3455 5.81996 Q71.9333 7.2 72.5211 5.81996 L77.4789 -5.81996 Q78.0667 -7.2 78.6545 -5.81996 L83.6122 5.81996 Q84.2 7.2 84.7878 5.81996 L89.7455 -5.81996 Q90.3333 -7.2 90.9211 -5.81996 L92.8122 -1.38004 Q93.4 0 94.9 0 L150 0\"/></g><text class=\"lbl\" x=\"730.86\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">5</tspan></text><text class=\"lbl\" x=\"730.86\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">1kΩ</tspan></text><g transform=\"translate(850,146) rotate(90)\"><path d=\"M0 0 L69.5 0 M80.5 0 L150 0\"/><path d=\"M69.5 -13 L69.5 13\"/><path d=\"M80.5 -13 L80.5 13\"/></g><text class=\"lbl\" x=\"869.35\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">C</tspan><tspan class=\"sub\" dy=\"3.4\">C3</tspan></text><text class=\"lbl\" x=\"869.35\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">100pF</tspan></text><g transform=\"translate(982,146) rotate(90)\"><path d=\"M0 0 L58.5 0 M91.5 0 L150 0\"/><path d=\"M58.5 0 L75 -16.5 L91.5 0 L75 16.5 Z\" fill=\"none\" stroke-linejoin=\"miter\"/><path d=\"M66 0 L84 0\"/><path d=\"M78 -4 L84 0 L78 4\" fill=\"currentColor\"/></g><text class=\"lbl\" x=\"1004.85\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">J</tspan><tspan class=\"sub\" dy=\"3.4\">D2</tspan></text><text class=\"lbl\" x=\"1004.85\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">0.05</tspan><tspan font-style=\"italic\" dy=\"0\">v</tspan><tspan class=\"sub\" dy=\"3.4\">3</tspan></text><g transform=\"translate(1114,146) rotate(90)\"><path d=\"M0 0 L55.1 0 Q56.6 0 57.1878 1.38004 L59.0789 5.81996 Q59.6667 7.2 60.2545 5.81996 L65.2122 -5.81996 Q65.8 -7.2 66.3878 -5.81996 L71.3455 5.81996 Q71.9333 7.2 72.5211 5.81996 L77.4789 -5.81996 Q78.0667 -7.2 78.6545 -5.81996 L83.6122 5.81996 Q84.2 7.2 84.7878 5.81996 L89.7455 -5.81996 Q90.3333 -7.2 90.9211 -5.81996 L92.8122 -1.38004 Q93.4 0 94.9 0 L150 0\"/></g><text class=\"lbl\" x=\"1126.86\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">6</tspan></text><text class=\"lbl\" x=\"1126.86\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">2kΩ</tspan></text><path d=\"M58 296 L58 308\"/><path d=\"M47 308 L69 308\"/><path d=\"M51 312 L65 312\"/><path d=\"M55 316 L61 316\"/><text class=\"lbl\" x=\"58\" y=\"330\" text-anchor=\"middle\"><tspan dy=\"0\">0</tspan></text><text class=\"lbl\" x=\"64\" y=\"137.9\" text-anchor=\"start\"><tspan dy=\"0\">5</tspan></text><text class=\"lbl\" x=\"196\" y=\"137.9\" text-anchor=\"start\"><tspan dy=\"0\">1</tspan></text><text class=\"lbl\" x=\"460\" y=\"137.9\" text-anchor=\"start\"><tspan dy=\"0\">2</tspan></text><text class=\"lbl\" x=\"724\" y=\"137.9\" text-anchor=\"start\"><tspan dy=\"0\">3</tspan></text><text class=\"lbl\" x=\"988\" y=\"137.9\" text-anchor=\"start\"><tspan dy=\"0\">4</tspan></text><line x1=\"190\" y1=\"146\" x2=\"322\" y2=\"146\"/><line x1=\"454\" y1=\"146\" x2=\"586\" y2=\"146\"/><line x1=\"718\" y1=\"146\" x2=\"850\" y2=\"146\"/><line x1=\"982\" y1=\"146\" x2=\"1114\" y2=\"146\"/><line x1=\"58\" y1=\"296\" x2=\"1114\" y2=\"296\"/><line x1=\"190\" y1=\"58\" x2=\"190\" y2=\"146\"/><line x1=\"454\" y1=\"58\" x2=\"454\" y2=\"146\"/><line x1=\"718\" y1=\"58\" x2=\"718\" y2=\"146\"/><line x1=\"982\" y1=\"58\" x2=\"982\" y2=\"146\"/><circle cx=\"190\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"322\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"454\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"586\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"718\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"850\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"982\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"190\" cy=\"146\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"454\" cy=\"146\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"718\" cy=\"146\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"982\" cy=\"146\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/></svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "amp = '''\n",
    "e1,5,0,vg\n",
    "r1,5,1,150\n",
    "r2,1,0,1'k\n",
    "cc1,1,0,100'p\n",
    "cc2,1,2,3'p\n",
    "jd1,2,0,0.05*v_1\n",
    "r3,2,0,2'k\n",
    "r4,2,3,100\n",
    "r5,3,0,1'k\n",
    "cc3,3,0,100'p\n",
    "cc4,3,4,3'p\n",
    "jd2,4,0,0.05*v_3\n",
    "r6,4,0,2'k\n",
    "'''\n",
    "draw(amp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "e66dfc82",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{vg \\left(1.8 \\cdot 10^{17} s^{2} - 6.0 \\cdot 10^{27} s + 5.0 \\cdot 10^{37}\\right)}{27.0 s^{4} + 134010000000.0 s^{3} + 8.6724075 \\cdot 10^{19} s^{2} + 5.4981 \\cdot 10^{27} s + 1.7825 \\cdot 10^{34}}$"
      ],
      "text/plain": [
       "vg*(1.8e+17*s**2 - 6.0e+27*s + 5.0e+37)/(27.0*s**4 + 134010000000.0*s**3 + 8.6724075e+19*s**2 + 5.4981e+27*s + 1.7825e+34)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = fd(amp)\n",
    "a[\"v4\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "abc7a9a4",
   "metadata": {},
   "source": [
    "The gain is the ratio of two of those answers. The source is the symbol `vg`, and it cancels:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2a2c80af",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{1.8 \\cdot 10^{17} s^{2} - 6.0 \\cdot 10^{27} s + 5.0 \\cdot 10^{37}}{27.0 s^{4} + 134010000000.0 s^{3} + 8.6724075 \\cdot 10^{19} s^{2} + 5.4981 \\cdot 10^{27} s + 1.7825 \\cdot 10^{34}}$"
      ],
      "text/plain": [
       "(1.8e+17*s**2 - 6.0e+27*s + 5.0e+37)/(27.0*s**4 + 134010000000.0*s**3 + 8.6724075e+19*s**2 + 5.4981e+27*s + 1.7825e+34)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gain = sp.simplify(a[\"v4\"] / a[\"v5\"])\n",
    "gain"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c5fe80ec",
   "metadata": {},
   "source": [
    "For the Bode diagram Prof. Yee asked for, `bode_samples()` sweeps the frequency and returns arrays ready for Matplotlib. With `vg` set to 1 by a condition, `v_4` *is* the transfer function."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "a7a531b4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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IdKrOYBERERE9PwYABIREREZGb0ZAtY1Yku5kubcMYZ8SCK/orgmTI2jX9h2+o3tp7/YdvotQ8c+95QxiTJGeRoGgCpKSkrKzStIREREpEsxipOT01PPMVEUJ0ykQrKzsxERESEXp4j9iOm/3VFCQ0O5O4qeYdvpN7af/mLb6bdEHfvcEyGdCP68vLxgavr0WX7sAVSRuLA+Pj6qfrlBE28CXXgjUMmx7fQb209/se30m6MOfe49q+dPiYtAiIiIiIwMA0AiIiIiI8MAkNRG7KTyySefcEcVPcS2029sP/3FttNvVnr8ucdFIERERERGhj2AREREREaGASARERGRkWEASERERGRkGAASERERGRkGgERERERGhgEgERERkZFhAEhERERkZBgAEhERERkZBoBERERERoYBIBEREZGRYQBIREREZGQYABIREREZGXNtV0BfZWdnIyIiAg4ODjAxMdF2dYiIiMjIKRQKJCUlwcvLC6amT+/jYwCoIhH8+fr6qvrlRERERBoRGhoKHx+fp57DAFBFoudPeZEdHR1VfRmDkpGRgT179qBLly6wsLDQdnWoBNh2+o3tp7/YdvotQ8c+9xITE2XnlDJGeRoGgCpSDvuK4I8B4H9vBFtbW3k9dOGNQMXHttNvbD/9xbbTbxk6+rlXnKlpXARCREREZGQYABIREREZGQaAREREREaGASARkZolpGTg693BOHHrPq8tEekkBoBERGq2KygSP+6/icGLT+DTvy8hJT2L15iIdAoDQCIiNcsb8C07dgc9fjiMs3cf8DoTkc5gAEhEpGbZipzb6u4O8HC0xu3YRxiw6Djm7AxGWiZ7A4lI+xgAEhGpWbYiJwKs6emA3VPbom9DbxkULjp4E70XHMHFsARecyLSKgaARERq9jj+g6mJCZxsLDBvYH0sHt4IbvaWuBb9EC//dBTz915DRlY2rz0RaQUDQCIiDfUA5s3G36WWB/ZMbYcedTyQma3A9/9el4HgjZgkXn8iKnUMAImINDQH0LTAbkxl7Czx49CG+GFIA9kzGBSeiF4LjmDVyRAolN2GRESlgAEgEZGGegDFEHBBolfwxXpe2Du1LdpUdUNqRjY+3HQRE/48i7hH6WwLIioVDACJiNQs+3EXoOlTfsOWc7TGH6Ob4qMeNWFhZoLdl6LR/fvDOH6TyaOJSPMYABIRaWwI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",
      "text/plain": [
       "<Figure size 650x450 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "freq, mag_db, phase = bode_samples(amp, \"v_4\", 1.6e3, 1.6e12, n=400, conditions=[\"vg = 1\"])\n",
    "fig, (a1, a2) = plt.subplots(2, 1, sharex=True, figsize=(6.5, 4.5))\n",
    "a1.semilogx(freq, mag_db); a1.set_ylabel(\"gain, dB\"); a1.grid(True, which=\"both\")\n",
    "a2.semilogx(freq, phase);  a2.set_ylabel(\"phase, degrees\"); a2.set_xlabel(\"Hz\"); a2.grid(True, which=\"both\")\n",
    "a1.set_title(\"The 1999 amplifier: v4 / vg\")\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20eefc03",
   "metadata": {},
   "source": [
    "## 2. One of each: the 2013 showcase\n",
    "\n",
    "Composed in 2013 to show off: one dependent source of each species, woven through seven resistors. Find positive values of Es and Js such that the VCCS delivers 80 W and the CCVS dissipates 0 W. The two power constraints are quadratic, so four solutions exist; the conditions pick the one meant: Es = 17.61 V and Js = 0.3973 A. And ir5 comes out exactly 0 -- the constraint drove its own controlling current to zero, which is how the CCVS dissipates nothing.\n",
    "\n",
    "This is Expert Mode: two equations about *power*, two unknowns that are the sources' own values, and two conditions that choose among the roots. Inside an equation the names are written the way the app writes them, `pjd1` for the power in `jd1`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "ba84f769",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"10 -9.50998 928.018 642.56\" width=\"928.018\" height=\"642.56\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"symbulator-schematic\"><style>.symbulator-schematic .lbl{font:13px/1 ui-sans-serif,system-ui,sans-serif;fill:currentColor;stroke:none}.symbulator-schematic .sub{font-size:0.72em}</style><g transform=\"translate(58,419.8)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"124\" y=\"405.19\" text-anchor=\"middle\"><tspan dy=\"0\">10Ω</tspan></text><text class=\"lbl\" x=\"124\" y=\"388.29\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">1</tspan></text><path d=\"M105.6 436.01 L142.4 436.01\"/><path d=\"M135.9 440.01 L142.4 436.01 L135.9 432.01\" fill=\"currentColor\"/><text class=\"lbl\" x=\"124\" y=\"454.86\" text-anchor=\"middle\"><tspan font-style=\"italic\" dy=\"0\">i</tspan><tspan class=\"sub\" dy=\"3.4\">R1</tspan></text><g transform=\"translate(454,299.2) rotate(180)\"><path d=\"M0 0 L178.1 0 Q179.6 0 180.188 1.38004 L182.079 5.81996 Q182.667 7.2 183.254 5.81996 L188.212 -5.81996 Q188.8 -7.2 189.388 -5.81996 L194.346 5.81996 Q194.933 7.2 195.521 5.81996 L200.479 -5.81996 Q201.067 -7.2 201.654 -5.81996 L206.612 5.81996 Q207.2 7.2 207.788 5.81996 L212.746 -5.81996 Q213.333 -7.2 213.921 -5.81996 L215.812 -1.38004 Q216.4 0 217.9 0 L396 0\"/></g><text class=\"lbl\" x=\"256\" y=\"284.59\" text-anchor=\"middle\"><tspan dy=\"0\">20Ω</tspan></text><text class=\"lbl\" x=\"256\" y=\"267.69\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">2</tspan></text><g transform=\"translate(322,419.8) rotate(180)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"256\" y=\"405.19\" text-anchor=\"middle\"><tspan dy=\"0\">40Ω</tspan></text><text class=\"lbl\" x=\"256\" y=\"388.29\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">4</tspan></text><g transform=\"translate(850,58) rotate(180)\"><path d=\"M0 0 L310.1 0 Q311.6 0 312.188 1.38004 L314.079 5.81996 Q314.667 7.2 315.254 5.81996 L320.212 -5.81996 Q320.8 -7.2 321.388 -5.81996 L326.346 5.81996 Q326.933 7.2 327.521 5.81996 L332.479 -5.81996 Q333.067 -7.2 333.654 -5.81996 L338.612 5.81996 Q339.2 7.2 339.788 5.81996 L344.746 -5.81996 Q345.333 -7.2 345.921 -5.81996 L347.812 -1.38004 Q348.4 0 349.9 0 L660 0\"/></g><text class=\"lbl\" x=\"520\" y=\"43.39\" text-anchor=\"middle\"><tspan dy=\"0\">50Ω</tspan></text><text class=\"lbl\" x=\"520\" y=\"26.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">5</tspan></text><path d=\"M538.4 74.21 L501.6 74.21\"/><path d=\"M508.1 70.21 L501.6 74.21 L508.1 78.21\" fill=\"currentColor\"/><text class=\"lbl\" x=\"520\" y=\"93.06\" text-anchor=\"middle\"><tspan font-style=\"italic\" dy=\"0\">i</tspan><tspan class=\"sub\" dy=\"3.4\">R5</tspan></text><g transform=\"translate(586,419.8)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"652\" y=\"405.19\" text-anchor=\"middle\"><tspan dy=\"0\">60Ω</tspan></text><text class=\"lbl\" x=\"652\" y=\"388.29\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">6</tspan></text><path d=\"M621.1 429.8 L628.1 429.8 M624.6 426.3 L624.6 433.3\"/><path d=\"M675.9 429.8 L682.9 429.8\"/><g transform=\"translate(850,419.8) rotate(180)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"784\" y=\"405.19\" text-anchor=\"middle\"><tspan dy=\"0\">70Ω</tspan></text><text class=\"lbl\" x=\"784\" y=\"388.29\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">7</tspan></text><path d=\"M807.9 429.8 L814.9 429.8 M811.4 426.3 L811.4 433.3\"/><path d=\"M753.1 429.8 L760.1 429.8\"/><g transform=\"translate(454,419.8) rotate(180)\"><path d=\"M0 0 L49.5 0 M82.5 0 L132 0\"/><path d=\"M49.5 0 L66 -16.5 L82.5 0 L66 16.5 Z\" fill=\"none\" stroke-linejoin=\"miter\"/><path d=\"M57 0 L75 0\"/><path d=\"M69 -4 L75 0 L69 4\" fill=\"currentColor\"/></g><text class=\"lbl\" x=\"388\" y=\"393.55\" text-anchor=\"middle\"><tspan dy=\"0\">J</tspan><tspan class=\"sub\" dy=\"3.4\">D1</tspan></text><text class=\"lbl\" x=\"388\" y=\"451.15\" text-anchor=\"middle\"><tspan dy=\"0\">0.2</tspan><tspan font-style=\"italic\" dy=\"0\">v</tspan><tspan class=\"sub\" dy=\"3.4\">R7</tspan></text><g transform=\"translate(586,178.6) rotate(180)\"><path d=\"M0 0 L115.5 0 M148.5 0 L264 0\"/><path d=\"M115.5 0 L132 -16.5 L148.5 0 L132 16.5 Z\" fill=\"none\" stroke-linejoin=\"miter\"/></g><text class=\"lbl\" x=\"454\" y=\"152.35\" text-anchor=\"middle\"><tspan dy=\"0\">E</tspan><tspan class=\"sub\" dy=\"3.4\">D2</tspan></text><text class=\"lbl\" x=\"454\" y=\"209.95\" text-anchor=\"middle\"><tspan dy=\"0\">0.1</tspan><tspan font-style=\"italic\" dy=\"0\">i</tspan><tspan class=\"sub\" dy=\"3.4\">R5</tspan></text><path d=\"M457.5 178.6 L464.5 178.6 M461 175.1 L461 182.1\"/><path d=\"M443.5 178.6 L450.5 178.6\"/><g transform=\"translate(850,299.2) rotate(180)\"><path d=\"M0 0 L115.5 0 M148.5 0 L264 0\"/><path d=\"M115.5 0 L132 -16.5 L148.5 0 L132 16.5 Z\" fill=\"none\" stroke-linejoin=\"miter\"/><path d=\"M123 0 L141 0\"/><path d=\"M135 -4 L141 0 L135 4\" fill=\"currentColor\"/></g><text class=\"lbl\" x=\"718\" y=\"272.95\" text-anchor=\"middle\"><tspan dy=\"0\">J</tspan><tspan class=\"sub\" dy=\"3.4\">D3</tspan></text><text class=\"lbl\" x=\"718\" y=\"330.55\" text-anchor=\"middle\"><tspan dy=\"0\">2</tspan><tspan font-style=\"italic\" dy=\"0\">i</tspan><tspan class=\"sub\" dy=\"3.4\">R1</tspan></text><g transform=\"translate(58,419.8) rotate(90)\"><path d=\"M0 0 L60 0 M90 0 L150 0\"/><circle cx=\"75\" cy=\"0\" r=\"15\" fill=\"none\"/></g><text class=\"lbl\" x=\"79.35\" y=\"488.8\" text-anchor=\"start\"><tspan dy=\"0\">E</tspan><tspan class=\"sub\" dy=\"3.4\">S</tspan></text><text class=\"lbl\" x=\"79.35\" y=\"507.8\" text-anchor=\"start\"><tspan dy=\"0\">es</tspan></text><path d=\"M54.5 487.8 L61.5 487.8 M58 484.3 L58 491.3\"/><path d=\"M54.5 501.8 L61.5 501.8\"/><g transform=\"translate(718,569.8) rotate(-90)\"><path d=\"M0 0 L60 0 M90 0 L150 0\"/><circle cx=\"75\" cy=\"0\" r=\"15\" fill=\"none\"/><path d=\"M66 0 L84 0\"/><path d=\"M78 -4 L84 0 L78 4\" fill=\"currentColor\"/></g><text class=\"lbl\" x=\"739.35\" y=\"488.8\" text-anchor=\"start\"><tspan dy=\"0\">J</tspan><tspan class=\"sub\" dy=\"3.4\">S</tspan></text><text class=\"lbl\" x=\"739.35\" y=\"507.8\" text-anchor=\"start\"><tspan dy=\"0\">js</tspan></text><g transform=\"translate(190,419.8) rotate(90)\"><path d=\"M0 0 L55.1 0 Q56.6 0 57.1878 1.38004 L59.0789 5.81996 Q59.6667 7.2 60.2545 5.81996 L65.2122 -5.81996 Q65.8 -7.2 66.3878 -5.81996 L71.3455 5.81996 Q71.9333 7.2 72.5211 5.81996 L77.4789 -5.81996 Q78.0667 -7.2 78.6545 -5.81996 L83.6122 5.81996 Q84.2 7.2 84.7878 5.81996 L89.7455 -5.81996 Q90.3333 -7.2 90.9211 -5.81996 L92.8122 -1.38004 Q93.4 0 94.9 0 L150 0\"/></g><text class=\"lbl\" x=\"202.86\" y=\"488.8\" text-anchor=\"start\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">3</tspan></text><text class=\"lbl\" x=\"202.86\" y=\"507.8\" text-anchor=\"start\"><tspan dy=\"0\">30Ω</tspan></text><g transform=\"translate(850,569.8) rotate(-90)\"><path d=\"M0 0 L58.5 0 M91.5 0 L150 0\"/><path d=\"M58.5 0 L75 -16.5 L91.5 0 L75 16.5 Z\" fill=\"none\" stroke-linejoin=\"miter\"/></g><text class=\"lbl\" x=\"872.85\" y=\"488.8\" text-anchor=\"start\"><tspan dy=\"0\">E</tspan><tspan class=\"sub\" dy=\"3.4\">D4</tspan></text><text class=\"lbl\" x=\"872.85\" y=\"507.8\" text-anchor=\"start\"><tspan dy=\"0\">0.7</tspan><tspan font-style=\"italic\" dy=\"0\">v</tspan><tspan class=\"sub\" dy=\"3.4\">R6</tspan></text><path d=\"M846.5 501.8 L853.5 501.8 M850 498.3 L850 505.3\"/><path d=\"M846.5 487.8 L853.5 487.8\"/><path d=\"M58 569.8 L58 581.8\"/><path d=\"M47 581.8 L69 581.8\"/><path d=\"M51 585.8 L65 585.8\"/><path d=\"M55 589.8 L61 589.8\"/><text class=\"lbl\" x=\"58\" y=\"603.8\" text-anchor=\"middle\"><tspan dy=\"0\">0</tspan></text><text class=\"lbl\" x=\"64\" y=\"411.7\" text-anchor=\"start\"><tspan dy=\"0\">e</tspan></text><text class=\"lbl\" x=\"196\" y=\"411.7\" text-anchor=\"start\"><tspan dy=\"0\">m</tspan></text><text class=\"lbl\" x=\"328\" y=\"411.7\" text-anchor=\"start\"><tspan dy=\"0\">b</tspan></text><text class=\"lbl\" x=\"460\" y=\"411.7\" text-anchor=\"start\"><tspan dy=\"0\">a</tspan></text><text class=\"lbl\" x=\"592\" y=\"411.7\" text-anchor=\"start\"><tspan dy=\"0\">c</tspan></text><text class=\"lbl\" x=\"724\" y=\"411.7\" text-anchor=\"start\"><tspan dy=\"0\">d</tspan></text><text class=\"lbl\" x=\"856\" y=\"411.7\" text-anchor=\"start\"><tspan dy=\"0\">n</tspan></text><line x1=\"58\" y1=\"569.8\" x2=\"850\" y2=\"569.8\"/><line x1=\"58\" y1=\"299.2\" x2=\"58\" y2=\"419.8\"/><path d=\"M190 58 L190 294.2 A5 5 0 0 0 190 304.2 L190 419.8\"/><path d=\"M322 178.6 L322 294.2 A5 5 0 0 0 322 304.2 L322 419.8\"/><line x1=\"454\" y1=\"299.2\" x2=\"454\" y2=\"419.8\"/><line x1=\"586\" y1=\"178.6\" x2=\"586\" y2=\"419.8\"/><line x1=\"850\" y1=\"58\" x2=\"850\" y2=\"419.8\"/><circle cx=\"190\" cy=\"569.8\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"718\" cy=\"569.8\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"58\" cy=\"419.8\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"718\" cy=\"419.8\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"190\" cy=\"419.8\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"322\" cy=\"419.8\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"850\" cy=\"419.8\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"586\" cy=\"419.8\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"586\" cy=\"299.2\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"850\" cy=\"299.2\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/></svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "showcase = '''\n",
    "es,e,0,es\n",
    "js,0,d,js\n",
    "r1,e,m,10\n",
    "r2,a,e,20\n",
    "r3,m,0,30\n",
    "r4,b,m,40\n",
    "r5,n,m,50\n",
    "r6,c,d,60\n",
    "r7,n,d,70\n",
    "jd1,a,b,0.2vr7\n",
    "ed2,c,b,0.1ir5\n",
    "jd3,n,c,2ir1\n",
    "ed4,0,n,0.7vr6\n",
    "'''\n",
    "draw(showcase)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "b020e0ac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\begin{gathered}\\text{dc analysis} \\\\ \\begin{aligned}es &= 17.61 \\\\ i_{ed2} &= 1.469 \\\\ i_{ed4} &= 1.071 \\\\ i_{es} &= 1.08 \\\\ i_{jd1} &= -1.676 \\\\ i_{jd3} &= 1.191 \\\\ i_{js} &= 0.3973 \\\\ i_{r1} &= 0.5955 \\\\ i_{r2} &= 1.676 \\\\ i_{r3} &= 0.3886 \\\\ i_{r4} &= -0.2069 \\\\ i_{r5} &= 0 \\\\ i_{r6} &= -0.2776 \\\\ i_{r7} &= -0.1197 \\\\ js &= 0.3973 \\\\ p_{ed2} &= 0 \\\\ p_{ed4} &= -12.49 \\\\ p_{es} &= 19.02 \\\\ p_{jd1} &= -80.0 \\\\ p_{jd3} &= 9.859 \\\\ p_{js} &= -7.96 \\\\ p_{r1} &= 3.547 \\\\ p_{r2} &= 56.15 \\\\ p_{r3} &= 4.531 \\\\ p_{r4} &= 1.713 \\\\ p_{r5} &= 0 \\\\ p_{r6} &= 4.623 \\\\ p_{r7} &= 1.003 \\\\ r_{ed2} &= 0 \\\\ r_{ed4} &= 10.88 \\\\ r_{es} &= -16.31 \\\\ r_{jd1} &= 28.49 \\\\ r_{jd3} &= -6.949 \\\\ r_{js} &= 50.44 \\\\ v_{a} &= 51.13 \\\\ v_{b} &= 3.381 \\\\ v_{c} &= 3.381 \\\\ v_{d} &= 20.04 \\\\ v_{e} &= 17.61 \\\\ v_{ed2} &= 0 \\\\ v_{ed4} &= -11.66 \\\\ v_{es} &= 17.61 \\\\ v_{jd1} &= 47.74 \\\\ v_{jd3} &= 8.277 \\\\ v_{js} &= -20.04 \\\\ v_{m} &= 11.66 \\\\ v_{n} &= 11.66 \\\\ v_{r1} &= 5.955 \\\\ v_{r2} &= 33.51 \\\\ v_{r3} &= 11.66 \\\\ v_{r4} &= -8.277 \\\\ v_{r5} &= 0 \\\\ v_{r6} &= -16.65 \\\\ v_{r7} &= -8.378\\end{aligned}\\end{gathered}$"
      ],
      "text/plain": [
       "Result(domain='dc')\n",
       "  es = 17.61\n",
       "  i_ed2 = 1.469\n",
       "  i_ed4 = 1.071\n",
       "  i_es = 1.080\n",
       "  i_jd1 = -1.676\n",
       "  i_jd3 = 1.191\n",
       "  i_js = 0.3973\n",
       "  i_r1 = 0.5955\n",
       "  i_r2 = 1.676\n",
       "  i_r3 = 0.3886\n",
       "  i_r4 = -0.2069\n",
       "  i_r5 = 0\n",
       "  i_r6 = -0.2776\n",
       "  i_r7 = -0.1197\n",
       "  js = 0.3973\n",
       "  p_ed2 = 0\n",
       "  p_ed4 = -12.49\n",
       "  p_es = 19.02\n",
       "  p_jd1 = -80.00\n",
       "  p_jd3 = 9.859\n",
       "  p_js = -7.960\n",
       "  p_r1 = 3.547\n",
       "  p_r2 = 56.15\n",
       "  p_r3 = 4.531\n",
       "  p_r4 = 1.713\n",
       "  p_r5 = 0\n",
       "  p_r6 = 4.623\n",
       "  p_r7 = 1.003\n",
       "  r_ed2 = 0\n",
       "  r_ed4 = 10.88\n",
       "  r_es = -16.31\n",
       "  r_jd1 = 28.49\n",
       "  r_jd3 = -6.949\n",
       "  r_js = 50.44\n",
       "  v_a = 51.13\n",
       "  v_b = 3.381\n",
       "  v_c = 3.381\n",
       "  v_d = 20.04\n",
       "  v_e = 17.61\n",
       "  v_ed2 = 0\n",
       "  v_ed4 = -11.66\n",
       "  v_es = 17.61\n",
       "  v_jd1 = 47.74\n",
       "  v_jd3 = 8.277\n",
       "  v_js = -20.04\n",
       "  v_m = 11.66\n",
       "  v_n = 11.66\n",
       "  v_r1 = 5.955\n",
       "  v_r2 = 33.51\n",
       "  v_r3 = 11.66\n",
       "  v_r4 = -8.277\n",
       "  v_r5 = 0\n",
       "  v_r6 = -16.65\n",
       "  v_r7 = -8.378"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sc = dc(showcase,\n",
    "        unknowns=[\"es\", \"js\"],\n",
    "        equations=[\"pjd1 = -80\", \"ped2 = 0\"],\n",
    "        conditions=[\"es > 0\", \"js > 0\"])\n",
    "sc.rounded(4)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d3f64c21",
   "metadata": {},
   "source": [
    "The three answers the text names, and the current the constraint drove to zero:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "27e50635",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(17.61, 0.3973, 0.0)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sc.rounded(4)[\"es\"], sc.rounded(4)[\"js\"], sc[\"ir5\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9d4c3530",
   "metadata": {},
   "source": [
    "Without the two conditions the system has more than one solution. `Result.solutions` holds all of them; `.values` is the first."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a9242d68",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4, [(17.61, 0.3973), (-19.79, 3.495), (19.79, -3.495), (-17.61, -0.3973)])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "every = dc(showcase, unknowns=[\"es\", \"js\"], equations=[\"pjd1 = -80\", \"ped2 = 0\"])\n",
    "len(every.solutions), [ (sp.N(sol[\"es\"], 4), sp.N(sol[\"js\"], 4)) for sol in every.solutions ]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8753a1ec",
   "metadata": {},
   "source": [
    "## 3. Prof. Boulet's switching transient\n",
    "\n",
    "Prof. Eliane Boulet's exam problem, the thesis's closing Problem 88, first interval: for t < 0 the 18 V source feeds the ladder and the capacitors sit open. DC gives their voltages -- va = 9 V and vb = 9/4 V -- the initial conditions the next entry carries.\n",
    "\n",
    "Two entries, two analyses. First the DC state before the switch."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "3033be55",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"10 -9.50998 642.95 368.76\" width=\"642.95\" height=\"368.76\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"symbulator-schematic\"><style>.symbulator-schematic .lbl{font:13px/1 ui-sans-serif,system-ui,sans-serif;fill:currentColor;stroke:none}.symbulator-schematic .sub{font-size:0.72em}</style><g transform=\"translate(58,146)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"124\" y=\"131.39\" text-anchor=\"middle\"><tspan dy=\"0\">8Ω</tspan></text><text class=\"lbl\" x=\"124\" y=\"114.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">8</tspan></text><g transform=\"translate(190,58)\"><path d=\"M0 0 L112.1 0 Q113.6 0 114.188 1.38004 L116.079 5.81996 Q116.667 7.2 117.254 5.81996 L122.212 -5.81996 Q122.8 -7.2 123.388 -5.81996 L128.346 5.81996 Q128.933 7.2 129.521 5.81996 L134.479 -5.81996 Q135.067 -7.2 135.654 -5.81996 L140.612 5.81996 Q141.2 7.2 141.788 5.81996 L146.746 -5.81996 Q147.333 -7.2 147.921 -5.81996 L149.812 -1.38004 Q150.4 0 151.9 0 L264 0\"/></g><text class=\"lbl\" x=\"322\" y=\"43.39\" text-anchor=\"middle\"><tspan dy=\"0\">18Ω</tspan></text><text class=\"lbl\" x=\"322\" y=\"26.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">18</tspan></text><g transform=\"translate(58,146) rotate(90)\"><path d=\"M0 0 L60 0 M90 0 L150 0\"/><circle cx=\"75\" cy=\"0\" r=\"15\" fill=\"none\"/></g><text class=\"lbl\" x=\"79.35\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">E</tspan></text><text class=\"lbl\" x=\"79.35\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">18V</tspan></text><path d=\"M54.5 214 L61.5 214 M58 210.5 L58 217.5\"/><path d=\"M54.5 228 L61.5 228\"/><g transform=\"translate(190,146) rotate(90)\"><path d=\"M0 0 L69.5 0 M80.5 0 L150 0\"/><path d=\"M69.5 -13 L69.5 13\"/><path d=\"M80.5 -13 L80.5 13\"/></g><text class=\"lbl\" x=\"209.35\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">C</tspan><tspan class=\"sub\" dy=\"3.4\">1</tspan></text><text class=\"lbl\" x=\"209.35\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">1/6</tspan></text><g transform=\"translate(322,146) rotate(90)\"><path d=\"M0 0 L55.1 0 Q56.6 0 57.1878 1.38004 L59.0789 5.81996 Q59.6667 7.2 60.2545 5.81996 L65.2122 -5.81996 Q65.8 -7.2 66.3878 -5.81996 L71.3455 5.81996 Q71.9333 7.2 72.5211 5.81996 L77.4789 -5.81996 Q78.0667 -7.2 78.6545 -5.81996 L83.6122 5.81996 Q84.2 7.2 84.7878 5.81996 L89.7455 -5.81996 Q90.3333 -7.2 90.9211 -5.81996 L92.8122 -1.38004 Q93.4 0 94.9 0 L150 0\"/></g><text class=\"lbl\" x=\"334.86\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">12</tspan></text><text class=\"lbl\" x=\"334.86\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">12Ω</tspan></text><g transform=\"translate(454,146) rotate(90)\"><path d=\"M0 0 L55.1 0 Q56.6 0 57.1878 1.38004 L59.0789 5.81996 Q59.6667 7.2 60.2545 5.81996 L65.2122 -5.81996 Q65.8 -7.2 66.3878 -5.81996 L71.3455 5.81996 Q71.9333 7.2 72.5211 5.81996 L77.4789 -5.81996 Q78.0667 -7.2 78.6545 -5.81996 L83.6122 5.81996 Q84.2 7.2 84.7878 5.81996 L89.7455 -5.81996 Q90.3333 -7.2 90.9211 -5.81996 L92.8122 -1.38004 Q93.4 0 94.9 0 L150 0\"/></g><text class=\"lbl\" x=\"466.86\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">6</tspan></text><text class=\"lbl\" x=\"466.86\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">6Ω</tspan></text><g transform=\"translate(586,146) rotate(90)\"><path d=\"M0 0 L69.5 0 M80.5 0 L150 0\"/><path d=\"M69.5 -13 L69.5 13\"/><path d=\"M80.5 -13 L80.5 13\"/></g><text class=\"lbl\" x=\"605.35\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">C</tspan><tspan class=\"sub\" dy=\"3.4\">2</tspan></text><text class=\"lbl\" x=\"605.35\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">1/3</tspan></text><path d=\"M58 296 L58 308\"/><path d=\"M47 308 L69 308\"/><path d=\"M51 312 L65 312\"/><path d=\"M55 316 L61 316\"/><text class=\"lbl\" x=\"58\" y=\"330\" text-anchor=\"middle\"><tspan dy=\"0\">0</tspan></text><text class=\"lbl\" x=\"64\" y=\"137.9\" text-anchor=\"start\"><tspan dy=\"0\">s</tspan></text><text class=\"lbl\" x=\"196\" y=\"137.9\" text-anchor=\"start\"><tspan dy=\"0\">a</tspan></text><text class=\"lbl\" x=\"460\" y=\"137.9\" text-anchor=\"start\"><tspan dy=\"0\">b</tspan></text><line x1=\"190\" y1=\"146\" x2=\"322\" y2=\"146\"/><line x1=\"454\" y1=\"146\" x2=\"586\" y2=\"146\"/><line x1=\"58\" y1=\"296\" x2=\"586\" y2=\"296\"/><line x1=\"190\" y1=\"58\" x2=\"190\" y2=\"146\"/><line x1=\"454\" y1=\"58\" x2=\"454\" y2=\"146\"/><circle cx=\"190\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"322\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"454\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"190\" cy=\"146\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"454\" cy=\"146\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/></svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "before = '''\n",
    "e,s,0,18\n",
    "r8,s,a,8\n",
    "c1,a,0,1/6\n",
    "r12,a,0,12\n",
    "r18,a,b,18\n",
    "r6,b,0,6\n",
    "c2,b,0,1/3\n",
    "'''\n",
    "draw(before)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "71801aea",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(9, 9/4)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b0 = dc(before)\n",
    "b0[\"va\"], b0[\"vb\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d5a0fcb6",
   "metadata": {},
   "source": [
    "The t > 0 half: the DC source gone, the waveform source connected, the capacitors starting from 9 and 9/4. Find the problem's v1 -- node a here, so the limited results ask for just va. The answer's two natural modes and the forced response are legible at a glance, va(0) checks out at exactly 9 V, and the 2001 calculator's printout agrees with this solve on every digit it displayed.\n",
    "\n",
    "The circuit after the switch carries those two voltages as the capacitors' initial conditions, the fifth field on each `c` line. This one uses the cell magic: after `%load_ext symbulator`, a cell headed `%%tr` is a circuit, drawn and solved, with the options on the first line."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "ffa9cee5",
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext symbulator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "c5bd29ca",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"10 -9.50998 635.734 399.66\" width=\"635.734\" height=\"399.66\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"symbulator-schematic\"><style>.symbulator-schematic .lbl{font:13px/1 ui-sans-serif,system-ui,sans-serif;fill:currentColor;stroke:none}.symbulator-schematic .sub{font-size:0.72em}</style><g transform=\"translate(58,58)\"><path d=\"M0 0 L112.1 0 Q113.6 0 114.188 1.38004 L116.079 5.81996 Q116.667 7.2 117.254 5.81996 L122.212 -5.81996 Q122.8 -7.2 123.388 -5.81996 L128.346 5.81996 Q128.933 7.2 129.521 5.81996 L134.479 -5.81996 Q135.067 -7.2 135.654 -5.81996 L140.612 5.81996 Q141.2 7.2 141.788 5.81996 L146.746 -5.81996 Q147.333 -7.2 147.921 -5.81996 L149.812 -1.38004 Q150.4 0 151.9 0 L264 0\"/></g><text class=\"lbl\" x=\"190\" y=\"43.39\" text-anchor=\"middle\"><tspan dy=\"0\">18Ω</tspan></text><text class=\"lbl\" x=\"190\" y=\"26.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">18</tspan></text><g transform=\"translate(58,146) rotate(90)\"><path d=\"M0 0 L69.5 0 M80.5 0 L150 0\"/><path d=\"M69.5 -13 L69.5 13\"/><path d=\"M80.5 -13 L80.5 13\"/></g><text class=\"lbl\" x=\"77.35\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">C</tspan><tspan class=\"sub\" dy=\"3.4\">1</tspan></text><text class=\"lbl\" x=\"77.35\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">1/6</tspan></text><g transform=\"translate(190,146) rotate(90)\"><path d=\"M0 0 L55.1 0 Q56.6 0 57.1878 1.38004 L59.0789 5.81996 Q59.6667 7.2 60.2545 5.81996 L65.2122 -5.81996 Q65.8 -7.2 66.3878 -5.81996 L71.3455 5.81996 Q71.9333 7.2 72.5211 5.81996 L77.4789 -5.81996 Q78.0667 -7.2 78.6545 -5.81996 L83.6122 5.81996 Q84.2 7.2 84.7878 5.81996 L89.7455 -5.81996 Q90.3333 -7.2 90.9211 -5.81996 L92.8122 -1.38004 Q93.4 0 94.9 0 L150 0\"/></g><text class=\"lbl\" x=\"202.86\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">12</tspan></text><text class=\"lbl\" x=\"202.86\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">12Ω</tspan></text><g transform=\"translate(322,146) rotate(90)\"><path d=\"M0 0 L55.1 0 Q56.6 0 57.1878 1.38004 L59.0789 5.81996 Q59.6667 7.2 60.2545 5.81996 L65.2122 -5.81996 Q65.8 -7.2 66.3878 -5.81996 L71.3455 5.81996 Q71.9333 7.2 72.5211 5.81996 L77.4789 -5.81996 Q78.0667 -7.2 78.6545 -5.81996 L83.6122 5.81996 Q84.2 7.2 84.7878 5.81996 L89.7455 -5.81996 Q90.3333 -7.2 90.9211 -5.81996 L92.8122 -1.38004 Q93.4 0 94.9 0 L150 0\"/></g><text class=\"lbl\" x=\"334.86\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">6</tspan></text><text class=\"lbl\" x=\"334.86\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">6Ω</tspan></text><g transform=\"translate(454,146) rotate(90)\"><path d=\"M0 0 L69.5 0 M80.5 0 L150 0\"/><path d=\"M69.5 -13 L69.5 13\"/><path d=\"M80.5 -13 L80.5 13\"/></g><text class=\"lbl\" x=\"473.35\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">C</tspan><tspan class=\"sub\" dy=\"3.4\">2</tspan></text><text class=\"lbl\" x=\"473.35\" y=\"234\" text-anchor=\"start\"><tspan dy=\"0\">1/3</tspan></text><g transform=\"translate(586,296) rotate(-90)\"><path d=\"M0 0 L60 0 M90 0 L150 0\"/><circle cx=\"75\" cy=\"0\" r=\"15\" fill=\"none\"/><path d=\"M66 0 L84 0\"/><path d=\"M78 -4 L84 0 L78 4\" fill=\"currentColor\"/></g><text class=\"lbl\" x=\"607.35\" y=\"215\" text-anchor=\"start\"><tspan dy=\"0\">J</tspan><tspan class=\"sub\" dy=\"3.4\">S</tspan></text><path d=\"M58 296 L58 308\"/><path d=\"M47 308 L69 308\"/><path d=\"M51 312 L65 312\"/><path d=\"M55 316 L61 316\"/><text class=\"lbl\" x=\"58\" y=\"330\" text-anchor=\"middle\"><tspan dy=\"0\">0</tspan></text><text class=\"lbl\" x=\"64\" y=\"137.9\" text-anchor=\"start\"><tspan dy=\"0\">a</tspan></text><text class=\"lbl\" x=\"328\" y=\"137.9\" text-anchor=\"start\"><tspan dy=\"0\">b</tspan></text><text class=\"lbl\" x=\"36\" y=\"359.25\" text-anchor=\"start\"><tspan dy=\"0\">J</tspan><tspan class=\"sub\" dy=\"3.4\">S</tspan><tspan dy=\"-3.4\"> = </tspan><tspan dy=\"0\">10e^(-t)sin(2t+30°)</tspan></text><line x1=\"58\" y1=\"146\" x2=\"190\" y2=\"146\"/><line x1=\"322\" y1=\"146\" x2=\"586\" y2=\"146\"/><line x1=\"58\" y1=\"296\" x2=\"586\" y2=\"296\"/><line x1=\"58\" y1=\"58\" x2=\"58\" y2=\"146\"/><line x1=\"322\" y1=\"58\" x2=\"322\" y2=\"146\"/><circle cx=\"190\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"322\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"454\" cy=\"296\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"58\" cy=\"146\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"322\" cy=\"146\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"454\" cy=\"146\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/></svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\begin{gathered}\\text{tr analysis} \\\\ \\begin{aligned}v_{a} &= \\frac{\\left(\\left(- 80 \\sin{\\left(2 t + \\frac{\\pi}{6} \\right)} + 20 \\cos{\\left(2 t + \\frac{\\pi}{6} \\right)} - 170 \\sqrt{3} + 153\\right) e^{\\frac{t}{2}} + \\left(193 + 160 \\sqrt{3}\\right) e^{t}\\right) e^{- \\frac{3 t}{2}}}{34}\\end{aligned}\\end{gathered}$"
      ],
      "text/plain": [
       "Result(domain='tr')\n",
       "  v_a = ((-80*sin(2*t + pi/6) + 20*cos(2*t + pi/6) - 170*sqrt(3) + 153)*exp(t/2) + (193 + 160*sqrt(3))*exp(t))*exp(-3*t/2)/34"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%tr variables=v_a into=after\n",
    "c1,a,0,1/6,9\n",
    "r12,a,0,12\n",
    "r18,a,b,18\n",
    "r6,b,0,6\n",
    "c2,b,0,1/3,9/4\n",
    "js,0,b,10*e^(-t)*sin(2*t+30*pi/180)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b839dba7",
   "metadata": {},
   "source": [
    "The initial value checks out, and the response is easy to plot with the package's own `t`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "0d0d4709",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 9$"
      ],
      "text/plain": [
       "9"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "after.at(\"va\", t=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "2725800a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnEAAAHUCAYAAABVtH74AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAATlxJREFUeJzt3Qd4VGXaxvEnvScklAAhoXcp0rsiIK6CIoriZ3fRde1YF+uKBXtZe8G6NlSsWLAhHaQm9N5CICSQRnoy3/W8YbIhpExCkjPl/7uuYWbOtHfOmTD3vNXLZrPZBAAAAC7F2+oCAAAAoOYIcQAAAC6IEAcAAOCCCHEAAAAuiBAHAADggghxAAAALogQBwAA4IIIcQAAAC6IEAePtGPHDjn33HMlOjpaAgMD5ZNPPhFXcdddd0mTJk2sLoZTCQ0NlWnTpjl031atWsnNN98snqywsFB69uwpTzzxhEP3z8vLk/bt28urr77q8GvoPPKPPvqodO7cWYKDg+W00047iRIDqAghDk7j2muvNYHKfgoPD5du3bqZL+fMzMw6fa0rrrhCkpOTZfXq1ZKWliYXX3yxQ4/TL6WyZQwKCpK4uDgZO3as/Pjjj9IQCgoKJDc3t1aP1fDSvHnzCm974IEHzBeuK9L9ofulru/rKvTv46OPPpLzzjtPwsLCTKitymuvvSb79++XG2+88bjt+uNg6tSpJ9w/ICBAbr/9dnnwwQfN34sjPvvsM/OZev755yUlJUV++eUXqU+Vlb2hLFq0SEaPHi2NGzeWli1byuWXXy779u2zrDzwDIQ4OA39YtVf/ImJieaLYtu2bXLbbbfJs88+K3/729/ML/u6oK+xePFiUxOn/9lqGPP29na4BsP+eC3j4cOH5bfffjM1emeffbb54nJmVQVA+/6H67njjjvkhx9+kL///e8yfPjwKkO+foaffPJJueqqq0zgczTg6v318/H66687VKbff/9dWrRoYf4utCbO399f6pOV4XzhwoVyxhlnmB9BGzZskD/++EN2795tjoX+HwHUF0IcnI7+6tdg1axZM7nuuuvk6quvNr9yNTjVBa0V0ECoXyy1pV9I9pq4jh07yltvvSV+fn7ywQcf1EkZgZp48803TU2c/jCpLix999135oeS1hTVREhIiEyYMEHeeOMNh35QHTp06KT+xuqbBt57773XhK6TpTWA2tz80ksvmR90GuY+/vhjUxP31FNP1Ul5gYoQ4uD0unfvbs71l+3Ro0dNeNK+PFoDNmTIEImIiJD33nvP3Gfr1q3yf//3fxITEyONGjWSvn37HldzoP3J9D9b+2V9rrroX+bj42Nq8zTIlTdv3jw588wzzetoU4v+Yp87d+5x99HaiqFDh57w2GeeecaUMT09vdoy6JeRvnft86X7pE+fPvLuu++W3q5f8G+//bZ5rrJNwgcPHqz0OXfu3Gmantu1aydRUVHSv39/efHFFyU/P7/apvE2bdrIkSNHTFjQQK7H5Kabbjqhadx+Xy3XlClTTO3NwIEDzW1FRUXmS1D7b+l70qZrvY+GkIosWLBABg8ebI69PqYmoVq/dIcNG2beZ9OmTU1gSUhIqLDvnda86GdP76t9vdatW2dunz9/vjmOkZGR5rOn9ytPmxh1vy9fvrzK8vTu3bvSfmS6vV+/flIb3377rfks9urVq3RbamqqKZP+fenfi/2zoZ/LskaNGiW7du2S+Pj4Kvub6mP1deyX9fThhx/W6Jja97X+eNP3q8f0hRdeOOH1HC17eW3btjV9/PT/l1NPPdXU+GsTc03p/0srVqyQ888//7gaff071M/xrFmzavycgMNsgJO48sor9ee9LTMz87jtN910k9k+b948c5tePv/8820XXnihbd26dbb4+HjbTz/9ZNu6dautUaNGtoEDB9pWrFhh279/v+3555+3+fr62m699VbzXAUFBbZt27aZ53j66adtOTk5ttzcXIfL+NBDD5nHJiQklG5LSUmx3XzzzTYfHx/bd999d9z9v/nmG7P9iiuusG3ZssW2fft22/XXX2/z8vKyffzxx6X3GzVqlK1v374nvN6MGTPM6x05cqR0m76XkJCQ4+63dOlSs238+PG2NWvW2JKTk23vvPOOLTg42PbYY4+Z++Tn59umTJlii4iIMO/bfrK75557bK1bty69XlRUZGvfvr1t5MiRZh9rGVatWmW7/fbbbbNmzar2WDZr1sx2wQUXmH1w8OBB27fffmtr2rSp7bTTTjPPXf6+ejy/+uorc9xef/11c9vkyZNtQUFBtpkzZ9oOHDhgW7Roka1bt262mJgYc91O9/G4cePM+9djs3fvXtt9991n9p39uewaN25s+8c//nHcNn3v/v7+5jOxZ88e8xnRcoWGhtrW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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sp.plot(after[\"va\"], (t, 0, 10), xlabel=\"t (s)\", ylabel=\"va (V)\", title=\"Prof. Boulet's problem: v1(t) for t > 0\");"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a22cb5f6",
   "metadata": {},
   "source": [
    "## 4. Three-phase wye-delta with line impedances\n",
    "\n",
    "Alexander and Sadiku's Example 12.11, the balanced wye-delta with line impedances (Lesson 9 solves it too), the sources typed the way the book prints them. One AC call: aa(iraa) reads 2.350 at -36.20 degrees, and the Evaluate line's load line voltage 169.94 at 30.81 degrees. The exemplary part is what is absent: no wye-delta transformation, no single-phase equivalent.\n",
    "\n",
    "An AC solve at a symbolic `omega` (the impedances are given as numbers already, so the frequency never enters). `polar()` is the app's `aa` mini-tool."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "aa498d6f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"10 -9.50998 820.15 456.76\" width=\"820.15\" height=\"456.76\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"symbulator-schematic\"><style>.symbulator-schematic .lbl{font:13px/1 ui-sans-serif,system-ui,sans-serif;fill:currentColor;stroke:none}.symbulator-schematic .sub{font-size:0.72em}</style><g transform=\"translate(58,234)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"124\" y=\"219.39\" text-anchor=\"middle\"><tspan dy=\"0\">1Ω</tspan></text><text class=\"lbl\" x=\"124\" y=\"202.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">AA</tspan></text><g transform=\"translate(718,234) rotate(180)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"652\" y=\"219.39\" text-anchor=\"middle\"><tspan dy=\"0\">1Ω</tspan></text><text class=\"lbl\" x=\"652\" y=\"202.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">BB</tspan></text><g transform=\"translate(454,234) rotate(180)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"388\" y=\"219.39\" text-anchor=\"middle\"><tspan dy=\"0\">1Ω</tspan></text><text class=\"lbl\" x=\"388\" y=\"202.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">CC</tspan></text><g transform=\"translate(190,234)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"256\" y=\"219.39\" text-anchor=\"middle\"><tspan dy=\"0\">100+24πj</tspan></text><text class=\"lbl\" x=\"256\" y=\"202.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">AC</tspan></text><g transform=\"translate(322,146)\"><path d=\"M0 0 L112.1 0 Q113.6 0 114.188 1.38004 L116.079 5.81996 Q116.667 7.2 117.254 5.81996 L122.212 -5.81996 Q122.8 -7.2 123.388 -5.81996 L128.346 5.81996 Q128.933 7.2 129.521 5.81996 L134.479 -5.81996 Q135.067 -7.2 135.654 -5.81996 L140.612 5.81996 Q141.2 7.2 141.788 5.81996 L146.746 -5.81996 Q147.333 -7.2 147.921 -5.81996 L149.812 -1.38004 Q150.4 0 151.9 0 L264 0\"/></g><text class=\"lbl\" x=\"454\" y=\"131.39\" text-anchor=\"middle\"><tspan dy=\"0\">100+24πj</tspan></text><text class=\"lbl\" x=\"454\" y=\"114.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">CB</tspan></text><g transform=\"translate(586,58) rotate(180)\"><path d=\"M0 0 L178.1 0 Q179.6 0 180.188 1.38004 L182.079 5.81996 Q182.667 7.2 183.254 5.81996 L188.212 -5.81996 Q188.8 -7.2 189.388 -5.81996 L194.346 5.81996 Q194.933 7.2 195.521 5.81996 L200.479 -5.81996 Q201.067 -7.2 201.654 -5.81996 L206.612 5.81996 Q207.2 7.2 207.788 5.81996 L212.746 -5.81996 Q213.333 -7.2 213.921 -5.81996 L215.812 -1.38004 Q216.4 0 217.9 0 L396 0\"/></g><text class=\"lbl\" x=\"388\" y=\"43.39\" text-anchor=\"middle\"><tspan dy=\"0\">100+24πj</tspan></text><text class=\"lbl\" x=\"388\" y=\"26.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">BA</tspan></text><g transform=\"translate(58,234) rotate(90)\"><path d=\"M0 0 L60 0 M90 0 L150 0\"/><circle cx=\"75\" cy=\"0\" r=\"15\" fill=\"none\"/></g><text class=\"lbl\" x=\"79.35\" y=\"303\" text-anchor=\"start\"><tspan dy=\"0\">E</tspan><tspan class=\"sub\" dy=\"3.4\">A1</tspan></text><text class=\"lbl\" x=\"79.35\" y=\"322\" text-anchor=\"start\"><tspan dy=\"0\">100V</tspan></text><path d=\"M54.5 302 L61.5 302 M58 298.5 L58 305.5\"/><path d=\"M54.5 316 L61.5 316\"/><g transform=\"translate(718,234) rotate(90)\"><path d=\"M0 0 L60 0 M90 0 L150 0\"/><circle cx=\"75\" cy=\"0\" r=\"15\" fill=\"none\"/></g><text class=\"lbl\" x=\"739.35\" y=\"303\" text-anchor=\"start\"><tspan dy=\"0\">E</tspan><tspan class=\"sub\" dy=\"3.4\">B1</tspan></text><text class=\"lbl\" x=\"739.35\" y=\"322\" text-anchor=\"start\"><tspan dy=\"0\">100∠-120°</tspan></text><path d=\"M714.5 302 L721.5 302 M718 298.5 L718 305.5\"/><path d=\"M714.5 316 L721.5 316\"/><g transform=\"translate(454,234) rotate(90)\"><path d=\"M0 0 L60 0 M90 0 L150 0\"/><circle cx=\"75\" cy=\"0\" r=\"15\" fill=\"none\"/></g><text class=\"lbl\" x=\"475.35\" y=\"303\" text-anchor=\"start\"><tspan dy=\"0\">E</tspan><tspan class=\"sub\" dy=\"3.4\">C1</tspan></text><text class=\"lbl\" x=\"475.35\" y=\"322\" text-anchor=\"start\"><tspan dy=\"0\">100∠120°</tspan></text><path d=\"M450.5 302 L457.5 302 M454 298.5 L454 305.5\"/><path d=\"M450.5 316 L457.5 316\"/><path d=\"M58 384 L58 396\"/><path d=\"M47 396 L69 396\"/><path d=\"M51 400 L65 400\"/><path d=\"M55 404 L61 404\"/><text class=\"lbl\" x=\"58\" y=\"418\" text-anchor=\"middle\"><tspan dy=\"0\">0</tspan></text><text class=\"lbl\" x=\"64\" y=\"225.9\" text-anchor=\"start\"><tspan dy=\"0\">na1</tspan></text><text class=\"lbl\" x=\"196\" y=\"225.9\" text-anchor=\"start\"><tspan dy=\"0\">na2</tspan></text><text class=\"lbl\" x=\"328\" y=\"225.9\" text-anchor=\"start\"><tspan dy=\"0\">nc2</tspan></text><text class=\"lbl\" x=\"460\" y=\"225.9\" text-anchor=\"start\"><tspan dy=\"0\">nc1</tspan></text><text class=\"lbl\" x=\"592\" y=\"225.9\" text-anchor=\"start\"><tspan dy=\"0\">nb2</tspan></text><text class=\"lbl\" x=\"724\" y=\"225.9\" text-anchor=\"start\"><tspan dy=\"0\">nb1</tspan></text><line x1=\"58\" y1=\"384\" x2=\"718\" y2=\"384\"/><line x1=\"190\" y1=\"58\" x2=\"190\" y2=\"234\"/><line x1=\"322\" y1=\"146\" x2=\"322\" y2=\"234\"/><line x1=\"586\" y1=\"58\" x2=\"586\" y2=\"234\"/><circle cx=\"454\" cy=\"384\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"190\" cy=\"234\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"586\" cy=\"234\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"322\" cy=\"234\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"586\" cy=\"146\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/></svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wye_delta = '''\n",
    "ea1,na1,0,100\n",
    "eb1,nb1,0,(100∠-120°)\n",
    "ec1,nc1,0,(100∠120°)\n",
    "raa,na1,na2,1\n",
    "rbb,nb1,nb2,1\n",
    "rcc,nc1,nc2,1\n",
    "rac,na2,nc2,100+24*pi*j\n",
    "rcb,nc2,nb2,100+24*pi*j\n",
    "rba,nb2,na2,100+24*pi*j\n",
    "'''\n",
    "draw(wye_delta)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "f791edb2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\begin{gathered}\\text{ac analysis} \\\\ \\begin{aligned}ap_{ea1} &= -94.82 \\\\ ap_{eb1} &= -94.82 \\\\ ap_{ec1} &= -94.82 \\\\ ap_{raa} &= 2.762 \\\\ ap_{rac} &= 92.06 \\\\ ap_{rba} &= 92.06 \\\\ ap_{rbb} &= 2.762 \\\\ ap_{rcb} &= 92.06 \\\\ ap_{rcc} &= 2.762 \\\\ i_{ea1} &= -1.896 + 1.388 j \\\\ i_{eb1} &= 2.15 + 0.9482 j \\\\ i_{ec1} &= -0.254 - 2.336 j \\\\ i_{raa} &= 1.896 - 1.388 j \\\\ i_{rac} &= 0.5475 - 1.242 j \\\\ i_{rba} &= -1.349 + 0.1467 j \\\\ i_{rbb} &= -2.15 - 0.9482 j \\\\ i_{rcb} &= 0.8015 + 1.095 j \\\\ i_{rcc} &= 0.254 + 2.336 j \\\\ s_{ea1} &= -94.82 - 69.41 j \\\\ s_{eb1} &= -94.82 - 69.41 j \\\\ s_{ec1} &= -94.82 - 69.41 j \\\\ s_{raa} &= 2.762 \\\\ s_{rac} &= 92.06 + 69.41 j \\\\ s_{rba} &= 92.06 + 69.41 j \\\\ s_{rbb} &= 2.762 \\\\ s_{rcb} &= 92.06 + 69.41 j \\\\ s_{rcc} &= 2.762 \\\\ v_{ea1} &= 100.0 \\\\ v_{eb1} &= -50.0 - 86.6 j \\\\ v_{ec1} &= -50.0 + 86.6 j \\\\ v_{na1} &= 100.0 \\\\ v_{na2} &= 98.1 + 1.388 j \\\\ v_{nb1} &= -50.0 - 86.6 j \\\\ v_{nb2} &= -47.85 - 85.65 j \\\\ v_{nc1} &= -50.0 + 86.6 j \\\\ v_{nc2} &= -50.25 + 84.27 j \\\\ v_{raa} &= 1.896 - 1.388 j \\\\ v_{rac} &= 148.4 - 82.88 j \\\\ v_{rba} &= -146.0 - 87.04 j \\\\ v_{rbb} &= -2.15 - 0.9482 j \\\\ v_{rcb} &= -2.404 + 169.9 j \\\\ v_{rcc} &= 0.254 + 2.336 j \\\\ z_{ea1} &= 34.33 + 25.13 j \\\\ z_{eb1} &= 34.33 + 25.13 j \\\\ z_{ec1} &= 34.33 + 25.13 j\\end{aligned}\\end{gathered}$"
      ],
      "text/plain": [
       "Result(domain='ac')\n",
       "  ap_ea1 = -94.82\n",
       "  ap_eb1 = -94.82\n",
       "  ap_ec1 = -94.82\n",
       "  ap_raa = 2.762\n",
       "  ap_rac = 92.06\n",
       "  ap_rba = 92.06\n",
       "  ap_rbb = 2.762\n",
       "  ap_rcb = 92.06\n",
       "  ap_rcc = 2.762\n",
       "  i_ea1 = -1.896 + 1.388*I\n",
       "  i_eb1 = 2.15 + 0.9482*I\n",
       "  i_ec1 = -0.254 - 2.336*I\n",
       "  i_raa = 1.896 - 1.388*I\n",
       "  i_rac = 0.5475 - 1.242*I\n",
       "  i_rba = -1.349 + 0.1467*I\n",
       "  i_rbb = -2.15 - 0.9482*I\n",
       "  i_rcb = 0.8015 + 1.095*I\n",
       "  i_rcc = 0.254 + 2.336*I\n",
       "  s_ea1 = -94.82 - 69.41*I\n",
       "  s_eb1 = -94.82 - 69.41*I\n",
       "  s_ec1 = -94.82 - 69.41*I\n",
       "  s_raa = 2.762\n",
       "  s_rac = 92.06 + 69.41*I\n",
       "  s_rba = 92.06 + 69.41*I\n",
       "  s_rbb = 2.762\n",
       "  s_rcb = 92.06 + 69.41*I\n",
       "  s_rcc = 2.762\n",
       "  v_ea1 = 100.0\n",
       "  v_eb1 = -50.0 - 86.6*I\n",
       "  v_ec1 = -50.0 + 86.6*I\n",
       "  v_na1 = 100.0\n",
       "  v_na2 = 98.1 + 1.388*I\n",
       "  v_nb1 = -50.0 - 86.6*I\n",
       "  v_nb2 = -47.85 - 85.65*I\n",
       "  v_nc1 = -50.0 + 86.6*I\n",
       "  v_nc2 = -50.25 + 84.27*I\n",
       "  v_raa = 1.896 - 1.388*I\n",
       "  v_rac = 148.4 - 82.88*I\n",
       "  v_rba = -146.0 - 87.04*I\n",
       "  v_rbb = -2.15 - 0.9482*I\n",
       "  v_rcb = -2.404 + 169.9*I\n",
       "  v_rcc = 0.254 + 2.336*I\n",
       "  z_ea1 = 34.33 + 25.13*I\n",
       "  z_eb1 = 34.33 + 25.13*I\n",
       "  z_ec1 = 34.33 + 25.13*I"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tp = ac(wye_delta, omega=\"omega\")\n",
    "tp.rounded(4)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a2693f5d",
   "metadata": {},
   "source": [
    "The line current the text reads, and the load's line voltage from two node voltages:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "4d64e439",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 2.35 \\angle -36.2^\\circ$"
      ],
      "text/plain": [
       "2.350∠-36.20°"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "polar(tp[\"iraa\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "6321bc5a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 169.94 \\angle 30.811^\\circ$"
      ],
      "text/plain": [
       "169.94∠30.811°"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "polar(tp[\"vna2\"] - tp[\"vnb2\"], digits=5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ce36c5f0",
   "metadata": {},
   "source": [
    "## 5. The ideal transformer, symbolically\n",
    "\n",
    "From the teaching corpus, after AS7's Figure 13.33 (Lesson 10 has it too): everything in the description is a name. The Thevenin equivalent at the primary derives the referred-source and referred-impedance identities every machines course teaches -- vth = vs2/n and req = z2/n^2. When the answer to a symbolic question is the textbook's own theorem, the simulator has produced knowledge in the form the student is supposed to carry away.\n",
    "\n",
    "`th()` takes the circuit and the two nodes of the port."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "4815eb49",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"32 -9.50998 490.95 280.76\" width=\"490.95\" height=\"280.76\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"symbulator-schematic\"><style>.symbulator-schematic .lbl{font:13px/1 ui-sans-serif,system-ui,sans-serif;fill:currentColor;stroke:none}.symbulator-schematic .sub{font-size:0.72em}</style><g transform=\"translate(171,58) rotate(90) scale(1,-1)\"><path d=\"M0 0 L52 0 C52.4429 2.87979 53.3598 5.74185 54.617 7.77817 C55.8741 9.8145 57.4614 11 59.0558 11 C60.6503 11 62.2376 9.8145 63.4947 7.77817 C64.7519 5.74185 65.6688 2.87979 66.1117 2.02067e-15 C66.5546 -2.87979 66.5234 -5.74185 66.1521 -7.77817 C65.7807 -9.8145 65.0792 -11 64.3706 -11 C63.6619 -11 62.9604 -9.8145 62.589 -7.77817 C62.2177 -5.74185 62.1865 -2.87979 62.6294 -3.36778e-15 C63.0723 2.87979 63.9893 5.74185 65.2464 7.77817 C66.5035 9.8145 68.0909 11 69.6853 11 C71.2797 11 72.867 9.8145 74.1242 7.77817 C75.3813 5.74185 76.2982 2.87979 76.7411 4.71489e-15 C77.184 -2.87979 77.1529 -5.74185 76.7815 -7.77817 C76.4102 -9.8145 75.7086 -11 75 -11 C74.2914 -11 73.5898 -9.8145 73.2185 -7.77817 C72.8471 -5.74185 72.816 -2.87979 73.2589 -6.062e-15 C73.7018 2.87979 74.6187 5.74185 75.8758 7.77817 C77.133 9.8145 78.7203 11 80.3147 11 C81.9091 11 83.4965 9.8145 84.7536 7.77817 C86.0107 5.74185 86.9277 2.87979 87.3706 2.6949e-14 C87.8135 -2.87979 87.7823 -5.74185 87.411 -7.77817 C87.0396 -9.8145 86.3381 -11 85.6294 -11 C84.9208 -11 84.2193 -9.8145 83.8479 -7.77817 C83.4766 -5.74185 83.4454 -2.87979 83.8883 1.07837e-14 C84.3312 2.87979 85.2481 5.74185 86.5053 7.77817 C87.7624 9.8145 89.3497 11 90.9442 11 C92.5386 11 94.1259 9.8145 95.383 7.77817 C96.6402 5.74185 97.5571 2.87979 98 2.96433e-14 L150 0\"/></g><g transform=\"translate(209,58) rotate(90)\"><path d=\"M0 0 L52 0 C52.4429 2.87979 53.3598 5.74185 54.617 7.77817 C55.8741 9.8145 57.4614 11 59.0558 11 C60.6503 11 62.2376 9.8145 63.4947 7.77817 C64.7519 5.74185 65.6688 2.87979 66.1117 2.02067e-15 C66.5546 -2.87979 66.5234 -5.74185 66.1521 -7.77817 C65.7807 -9.8145 65.0792 -11 64.3706 -11 C63.6619 -11 62.9604 -9.8145 62.589 -7.77817 C62.2177 -5.74185 62.1865 -2.87979 62.6294 -3.36778e-15 C63.0723 2.87979 63.9893 5.74185 65.2464 7.77817 C66.5035 9.8145 68.0909 11 69.6853 11 C71.2797 11 72.867 9.8145 74.1242 7.77817 C75.3813 5.74185 76.2982 2.87979 76.7411 4.71489e-15 C77.184 -2.87979 77.1529 -5.74185 76.7815 -7.77817 C76.4102 -9.8145 75.7086 -11 75 -11 C74.2914 -11 73.5898 -9.8145 73.2185 -7.77817 C72.8471 -5.74185 72.816 -2.87979 73.2589 -6.062e-15 C73.7018 2.87979 74.6187 5.74185 75.8758 7.77817 C77.133 9.8145 78.7203 11 80.3147 11 C81.9091 11 83.4965 9.8145 84.7536 7.77817 C86.0107 5.74185 86.9277 2.87979 87.3706 2.6949e-14 C87.8135 -2.87979 87.7823 -5.74185 87.411 -7.77817 C87.0396 -9.8145 86.3381 -11 85.6294 -11 C84.9208 -11 84.2193 -9.8145 83.8479 -7.77817 C83.4766 -5.74185 83.4454 -2.87979 83.8883 1.07837e-14 C84.3312 2.87979 85.2481 5.74185 86.5053 7.77817 C87.7624 9.8145 89.3497 11 90.9442 11 C92.5386 11 94.1259 9.8145 95.383 7.77817 C96.6402 5.74185 97.5571 2.87979 98 2.96433e-14 L150 0\"/></g><path d=\"M187.5 107 L187.5 159\"/><path d=\"M192.5 107 L192.5 159\"/><text class=\"lbl\" x=\"190\" y=\"101\" text-anchor=\"middle\"><tspan dy=\"0\">1 : n</tspan></text><text class=\"lbl\" x=\"190\" y=\"84.1\" text-anchor=\"middle\"><tspan dy=\"0\">T</tspan></text><g transform=\"translate(322,58)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"388\" y=\"43.39\" text-anchor=\"middle\"><tspan dy=\"0\">z2</tspan></text><text class=\"lbl\" x=\"388\" y=\"26.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">2</tspan></text><g transform=\"translate(454,58) rotate(90)\"><path d=\"M0 0 L60 0 M90 0 L150 0\"/><circle cx=\"75\" cy=\"0\" r=\"15\" fill=\"none\"/></g><text class=\"lbl\" x=\"475.35\" y=\"127\" text-anchor=\"start\"><tspan dy=\"0\">E</tspan><tspan class=\"sub\" dy=\"3.4\">2</tspan></text><text class=\"lbl\" x=\"475.35\" y=\"146\" text-anchor=\"start\"><tspan dy=\"0\">vs2</tspan></text><path d=\"M450.5 126 L457.5 126 M454 122.5 L454 129.5\"/><path d=\"M450.5 140 L457.5 140\"/><path d=\"M190 208 L190 220\"/><path d=\"M179 220 L201 220\"/><path d=\"M183 224 L197 224\"/><path d=\"M187 228 L193 228\"/><text class=\"lbl\" x=\"190\" y=\"242\" text-anchor=\"middle\"><tspan dy=\"0\">0</tspan></text><text class=\"lbl\" x=\"64\" y=\"49.9\" text-anchor=\"start\"><tspan dy=\"0\">2</tspan></text><text class=\"lbl\" x=\"328\" y=\"49.9\" text-anchor=\"start\"><tspan dy=\"0\">3</tspan></text><text class=\"lbl\" x=\"460\" y=\"49.9\" text-anchor=\"start\"><tspan dy=\"0\">4</tspan></text><line x1=\"58\" y1=\"58\" x2=\"171\" y2=\"58\"/><line x1=\"209\" y1=\"58\" x2=\"322\" y2=\"58\"/><line x1=\"171\" y1=\"208\" x2=\"454\" y2=\"208\"/><circle cx=\"162\" cy=\"113\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"218\" cy=\"113\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"209\" cy=\"208\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/></svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xfmr = '''\n",
    "t,2,3,1,n\n",
    "r2,3,4,z2\n",
    "e2,4,0,vs2\n",
    "'''\n",
    "draw(xfmr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "fa5c6bbc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\begin{gathered}\\text{Thevenin / Norton equivalent, dc} \\\\ \\begin{aligned}vth &= \\frac{vs_{2}}{n} \\\\ ino &= \\frac{n vs_{2}}{z_{2}} \\\\ req &= \\frac{z_{2}}{n^{2}} \\\\ pmax &= \\frac{vs_{2}^{2}}{4 z_{2}}\\end{aligned}\\end{gathered}$"
      ],
      "text/plain": [
       "TheveninResult(domain='dc', vth=vs2/n, ino=n*vs2/z2, req=z2/n**2, pmax=vs2**2/(4*z2))"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "th(xfmr, \"2\", \"0\", domain=\"dc\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c67c236",
   "metadata": {},
   "source": [
    "## 6. Coupled coils with initial conditions\n",
    "\n",
    "Composed for the monograph: two identical coupled coils, each closed on its own resistor, no sources anywhere -- the primary carries 1 A at t = 0 and the secondary is at rest. One TR call: il1 = (e^-t + e^-3t)/2 and il2 = (e^-t - e^-3t)/2, the circuit's common and differential modes in plain sight. Energy handed across the coupling and returned to heat, the whole story in two exponentials.\n",
    "\n",
    "The `m` line couples the two inductors; the fourth field on `l1` is its initial current."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "43528d70",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"10 13.9 497.26 288.25\" width=\"497.26\" height=\"288.25\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"symbulator-schematic\"><style>.symbulator-schematic .lbl{font:13px/1 ui-sans-serif,system-ui,sans-serif;fill:currentColor;stroke:none}.symbulator-schematic .sub{font-size:0.72em}</style><g transform=\"translate(58,58) rotate(90)\"><path d=\"M0 0 L52 0 C52.4429 2.87979 53.3598 5.74185 54.617 7.77817 C55.8741 9.8145 57.4614 11 59.0558 11 C60.6503 11 62.2376 9.8145 63.4947 7.77817 C64.7519 5.74185 65.6688 2.87979 66.1117 2.02067e-15 C66.5546 -2.87979 66.5234 -5.74185 66.1521 -7.77817 C65.7807 -9.8145 65.0792 -11 64.3706 -11 C63.6619 -11 62.9604 -9.8145 62.589 -7.77817 C62.2177 -5.74185 62.1865 -2.87979 62.6294 -3.36778e-15 C63.0723 2.87979 63.9893 5.74185 65.2464 7.77817 C66.5035 9.8145 68.0909 11 69.6853 11 C71.2797 11 72.867 9.8145 74.1242 7.77817 C75.3813 5.74185 76.2982 2.87979 76.7411 4.71489e-15 C77.184 -2.87979 77.1529 -5.74185 76.7815 -7.77817 C76.4102 -9.8145 75.7086 -11 75 -11 C74.2914 -11 73.5898 -9.8145 73.2185 -7.77817 C72.8471 -5.74185 72.816 -2.87979 73.2589 -6.062e-15 C73.7018 2.87979 74.6187 5.74185 75.8758 7.77817 C77.133 9.8145 78.7203 11 80.3147 11 C81.9091 11 83.4965 9.8145 84.7536 7.77817 C86.0107 5.74185 86.9277 2.87979 87.3706 2.6949e-14 C87.8135 -2.87979 87.7823 -5.74185 87.411 -7.77817 C87.0396 -9.8145 86.3381 -11 85.6294 -11 C84.9208 -11 84.2193 -9.8145 83.8479 -7.77817 C83.4766 -5.74185 83.4454 -2.87979 83.8883 1.07837e-14 C84.3312 2.87979 85.2481 5.74185 86.5053 7.77817 C87.7624 9.8145 89.3497 11 90.9442 11 C92.5386 11 94.1259 9.8145 95.383 7.77817 C96.6402 5.74185 97.5571 2.87979 98 2.96433e-14 L150 0\"/></g><text class=\"lbl\" x=\"75.35\" y=\"127\" text-anchor=\"start\"><tspan dy=\"0\">L</tspan><tspan class=\"sub\" dy=\"3.4\">1</tspan></text><text class=\"lbl\" x=\"75.35\" y=\"146\" text-anchor=\"start\"><tspan dy=\"0\">2H</tspan></text><g transform=\"translate(190,58) rotate(90)\"><path d=\"M0 0 L55.1 0 Q56.6 0 57.1878 1.38004 L59.0789 5.81996 Q59.6667 7.2 60.2545 5.81996 L65.2122 -5.81996 Q65.8 -7.2 66.3878 -5.81996 L71.3455 5.81996 Q71.9333 7.2 72.5211 5.81996 L77.4789 -5.81996 Q78.0667 -7.2 78.6545 -5.81996 L83.6122 5.81996 Q84.2 7.2 84.7878 5.81996 L89.7455 -5.81996 Q90.3333 -7.2 90.9211 -5.81996 L92.8122 -1.38004 Q93.4 0 94.9 0 L150 0\"/></g><text class=\"lbl\" x=\"202.86\" y=\"127\" text-anchor=\"start\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">1</tspan></text><text class=\"lbl\" x=\"202.86\" y=\"146\" text-anchor=\"start\"><tspan dy=\"0\">3Ω</tspan></text><g transform=\"translate(322,58) rotate(90)\"><path d=\"M0 0 L52 0 C52.4429 2.87979 53.3598 5.74185 54.617 7.77817 C55.8741 9.8145 57.4614 11 59.0558 11 C60.6503 11 62.2376 9.8145 63.4947 7.77817 C64.7519 5.74185 65.6688 2.87979 66.1117 2.02067e-15 C66.5546 -2.87979 66.5234 -5.74185 66.1521 -7.77817 C65.7807 -9.8145 65.0792 -11 64.3706 -11 C63.6619 -11 62.9604 -9.8145 62.589 -7.77817 C62.2177 -5.74185 62.1865 -2.87979 62.6294 -3.36778e-15 C63.0723 2.87979 63.9893 5.74185 65.2464 7.77817 C66.5035 9.8145 68.0909 11 69.6853 11 C71.2797 11 72.867 9.8145 74.1242 7.77817 C75.3813 5.74185 76.2982 2.87979 76.7411 4.71489e-15 C77.184 -2.87979 77.1529 -5.74185 76.7815 -7.77817 C76.4102 -9.8145 75.7086 -11 75 -11 C74.2914 -11 73.5898 -9.8145 73.2185 -7.77817 C72.8471 -5.74185 72.816 -2.87979 73.2589 -6.062e-15 C73.7018 2.87979 74.6187 5.74185 75.8758 7.77817 C77.133 9.8145 78.7203 11 80.3147 11 C81.9091 11 83.4965 9.8145 84.7536 7.77817 C86.0107 5.74185 86.9277 2.87979 87.3706 2.6949e-14 C87.8135 -2.87979 87.7823 -5.74185 87.411 -7.77817 C87.0396 -9.8145 86.3381 -11 85.6294 -11 C84.9208 -11 84.2193 -9.8145 83.8479 -7.77817 C83.4766 -5.74185 83.4454 -2.87979 83.8883 1.07837e-14 C84.3312 2.87979 85.2481 5.74185 86.5053 7.77817 C87.7624 9.8145 89.3497 11 90.9442 11 C92.5386 11 94.1259 9.8145 95.383 7.77817 C96.6402 5.74185 97.5571 2.87979 98 2.96433e-14 L150 0\"/></g><text class=\"lbl\" x=\"339.35\" y=\"127\" text-anchor=\"start\"><tspan dy=\"0\">L</tspan><tspan class=\"sub\" dy=\"3.4\">2</tspan></text><text class=\"lbl\" x=\"339.35\" y=\"146\" text-anchor=\"start\"><tspan dy=\"0\">2H</tspan></text><g transform=\"translate(454,58) rotate(90)\"><path d=\"M0 0 L55.1 0 Q56.6 0 57.1878 1.38004 L59.0789 5.81996 Q59.6667 7.2 60.2545 5.81996 L65.2122 -5.81996 Q65.8 -7.2 66.3878 -5.81996 L71.3455 5.81996 Q71.9333 7.2 72.5211 5.81996 L77.4789 -5.81996 Q78.0667 -7.2 78.6545 -5.81996 L83.6122 5.81996 Q84.2 7.2 84.7878 5.81996 L89.7455 -5.81996 Q90.3333 -7.2 90.9211 -5.81996 L92.8122 -1.38004 Q93.4 0 94.9 0 L150 0\"/></g><text class=\"lbl\" x=\"466.86\" y=\"127\" text-anchor=\"start\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">2</tspan></text><text class=\"lbl\" x=\"466.86\" y=\"146\" text-anchor=\"start\"><tspan dy=\"0\">3Ω</tspan></text><path d=\"M58 208 L58 220\"/><path d=\"M47 220 L69 220\"/><path d=\"M51 224 L65 224\"/><path d=\"M55 228 L61 228\"/><text class=\"lbl\" x=\"58\" y=\"242\" text-anchor=\"middle\"><tspan dy=\"0\">0</tspan></text><text class=\"lbl\" x=\"64\" y=\"49.9\" text-anchor=\"start\"><tspan dy=\"0\">1</tspan></text><text class=\"lbl\" x=\"328\" y=\"49.9\" text-anchor=\"start\"><tspan dy=\"0\">2</tspan></text><text class=\"lbl\" x=\"36\" y=\"271.25\" text-anchor=\"start\"><tspan dy=\"0\">M</tspan><tspan dy=\"0\"> = </tspan><tspan dy=\"0\">1H</tspan><tspan dy=\"0\">  (couples </tspan><tspan dy=\"0\">L</tspan><tspan class=\"sub\" dy=\"3.4\">1</tspan><tspan dy=\"-3.4\"> and </tspan><tspan dy=\"0\">L</tspan><tspan class=\"sub\" dy=\"3.4\">2</tspan><tspan dy=\"-3.4\">)</tspan></text><line x1=\"58\" y1=\"58\" x2=\"190\" y2=\"58\"/><line x1=\"322\" y1=\"58\" x2=\"454\" y2=\"58\"/><line x1=\"58\" y1=\"208\" x2=\"454\" y2=\"208\"/><circle cx=\"190\" cy=\"208\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"322\" cy=\"208\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"48\" cy=\"104\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"312\" cy=\"104\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/></svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "coils = '''\n",
    "l1,1,0,2,1\n",
    "r1,1,0,3\n",
    "l2,2,0,2\n",
    "r2,2,0,3\n",
    "m,l1,l2,1\n",
    "'''\n",
    "draw(coils)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "09206ccd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\begin{gathered}\\text{tr analysis} \\\\ \\begin{aligned}i_{l1} &= \\frac{\\left(e^{2 t} + 1\\right) e^{- 3 t}}{2} \\\\ i_{l2} &= \\frac{\\left(e^{2 t} - 1\\right) e^{- 3 t}}{2} \\\\ i_{r1} &= - \\frac{\\left(e^{2 t} + 1\\right) e^{- 3 t}}{2} \\\\ i_{r2} &= \\frac{\\left(1 - e^{2 t}\\right) e^{- 3 t}}{2} \\\\ v_{1} &= - \\frac{\\left(3 e^{2 t} + 3\\right) e^{- 3 t}}{2} \\\\ v_{2} &= \\frac{3 \\left(1 - e^{2 t}\\right) e^{- 3 t}}{2}\\end{aligned}\\end{gathered}$"
      ],
      "text/plain": [
       "Result(domain='tr')\n",
       "  i_l1 = (exp(2*t) + 1)*exp(-3*t)/2\n",
       "  i_l2 = (exp(2*t) - 1)*exp(-3*t)/2\n",
       "  i_r1 = -(exp(2*t) + 1)*exp(-3*t)/2\n",
       "  i_r2 = (1 - exp(2*t))*exp(-3*t)/2\n",
       "  v_1 = -(3*exp(2*t) + 3)*exp(-3*t)/2\n",
       "  v_2 = 3*(1 - exp(2*t))*exp(-3*t)/2"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cc = tr(coils)\n",
    "cc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "4ece052e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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M5GZx3lXiYiIyDMY5DygQVQwUhLCoWnAsl0slSMiIiLPYJDzcKncYlavEhERkYcwyHlIb3uQ28ESOSIiIvIMBjkP6dE8FiajAXtO5GF/ep6nVkNERER+jEHOQyKDzejSOFrdXrqTpXJERETkfgxytVG9msrpuoiIiMj9AqCztWvXYuHChQgODsawYcPQuHHjKl9TUFCAOXPmYPfu3ejatSsuuOACeGuHh4nzd6jx5KxWDUajQe9NIiIiojpE1xK5t956C71798a6devw66+/ok2bNpg/f36lr9m+fTvat2+PF154AYcOHcKbb76J2267Dd5IqlZDA004kVuELUey9N4cIiIiqmN0K5Hbt28fHn30UUyaNAnXXXedWnb77bdj3Lhx2LlzJwyG00uvLBYLRo0ahQ4dOmD69OkwGo2OUj1vFBhgVNN1Ldh6DEtSj6N9oyi9N4mIiIjqEN1K5GbOnKmqU6+88krHMglxUl26atWqcl8zb948bNq0CS+99JIjxIkuXbrA29vJLeIwJERERFRXSuS2bt2Kpk2bIjAw0LGsVatWjse6d+9+2muWL1+OuLg4JCUl4dNPP0VeXp5qI3feeedVuJ7CwkJ1scvKqt0qzvNb2oLcit3pyC+yICTQVKvrJyIiorpLtxK5nJwcREWVrmqMiIiAyWRSj5Xn5MmTCAgIUO3qlixZgi1btmD48OGOqtnyTJgwQa3HfnGlM4U7yVRdidEhKCqxYvku9l4lIiKiOhDkwsLCTisdkwAn7eDksYpec/ToUTz//POqbd3777+vqlsnT56srsvz2GOPITMz03HZv3+/R/anItLWr2/reur2wm3HanXdREREVLfpFuRat26NvXv3ori42LFsx44djsfKI71aRZ8+fRzLunXrhpCQEFUdW56goCBERkaWutS2fq1sQe6PbWnQNK3W109ERER1k25BbsSIEaqN248//uhYJqVsTZo0cbSPk7ZtL774ItavX6/uDxkyRJXKLVu2zPEaGbokPz8fbdu2hbc6NyUeZpMB+9LzsPt4rt6bQ0RERHWEbp0dkpOT8dxzz2Hs2LH4448/kJ6ernqyzpgxw9EjVQLaU089pTo3dOrUSXV0mDhxIq6//npce+21qtfrV199hTFjxqB///7wVuFBATi7WSyW7jyhSuWa1wvXe5OIiIioDtB1QODHH39cDQAs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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sp.plot(cc[\"il1\"], cc[\"il2\"], (t, 0, 5), xlabel=\"t (s)\", ylabel=\"A\", legend=True,\n",
    "        title=\"il1: the sum of the modes; il2: their difference\");"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b3f87901",
   "metadata": {},
   "source": [
    "## 7. Two op-amps, all symbols\n",
    "\n",
    "After Bobrow's Example 3.3 (Lesson 5 solves it too): a two-op-amp summing cascade in which every conductance is a symbol. The Evaluate line reads the gain, vo/vs = (g1-g2)/(g3-g4) -- a difference of conductances over a difference of conductances, so the circuit's structure is read directly off the expression. The single most persuasive demonstration of what Symbulator is for.\n",
    "\n",
    "The resistors are written as reciprocals of conductances, so the gain comes out in the conductances. `vs` is the source's *value*, a symbol, not an answer, so the gain divides by the symbol itself."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "1d9ddde5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"10 -9.50998 615.2 456.76\" width=\"615.2\" height=\"456.76\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"symbulator-schematic\"><style>.symbulator-schematic .lbl{font:13px/1 ui-sans-serif,system-ui,sans-serif;fill:currentColor;stroke:none}.symbulator-schematic .sub{font-size:0.72em}</style><g transform=\"translate(58,234)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"124\" y=\"219.39\" text-anchor=\"middle\"><tspan dy=\"0\">1/g1</tspan></text><text class=\"lbl\" x=\"124\" y=\"202.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">12</tspan></text><g transform=\"translate(58,146)\"><path d=\"M0 0 L178.1 0 Q179.6 0 180.188 1.38004 L182.079 5.81996 Q182.667 7.2 183.254 5.81996 L188.212 -5.81996 Q188.8 -7.2 189.388 -5.81996 L194.346 5.81996 Q194.933 7.2 195.521 5.81996 L200.479 -5.81996 Q201.067 -7.2 201.654 -5.81996 L206.612 5.81996 Q207.2 7.2 207.788 5.81996 L212.746 -5.81996 Q213.333 -7.2 213.921 -5.81996 L215.812 -1.38004 Q216.4 0 217.9 0 L396 0\"/></g><text class=\"lbl\" x=\"256\" y=\"131.39\" text-anchor=\"middle\"><tspan dy=\"0\">1/g2</tspan></text><text class=\"lbl\" x=\"256\" y=\"114.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">14</tspan></text><g transform=\"translate(190,234)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"256\" y=\"219.39\" text-anchor=\"middle\"><tspan dy=\"0\">1/g</tspan></text><text class=\"lbl\" x=\"256\" y=\"202.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">23</tspan></text><g transform=\"translate(322,234)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"388\" y=\"219.39\" text-anchor=\"middle\"><tspan dy=\"0\">1/g</tspan></text><text class=\"lbl\" x=\"388\" y=\"202.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">34</tspan></text><g transform=\"translate(190,58)\"><path d=\"M0 0 L178.1 0 Q179.6 0 180.188 1.38004 L182.079 5.81996 Q182.667 7.2 183.254 5.81996 L188.212 -5.81996 Q188.8 -7.2 189.388 -5.81996 L194.346 5.81996 Q194.933 7.2 195.521 5.81996 L200.479 -5.81996 Q201.067 -7.2 201.654 -5.81996 L206.612 5.81996 Q207.2 7.2 207.788 5.81996 L212.746 -5.81996 Q213.333 -7.2 213.921 -5.81996 L215.812 -1.38004 Q216.4 0 217.9 0 L396 0\"/></g><text class=\"lbl\" x=\"388\" y=\"43.39\" text-anchor=\"middle\"><tspan dy=\"0\">1/g4</tspan></text><text class=\"lbl\" x=\"388\" y=\"26.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">2O</tspan></text><g transform=\"translate(454,234)\"><path d=\"M0 0 L46.1 0 Q47.6 0 48.1878 1.38004 L50.0789 5.81996 Q50.6667 7.2 51.2545 5.81996 L56.2122 -5.81996 Q56.8 -7.2 57.3878 -5.81996 L62.3455 5.81996 Q62.9333 7.2 63.5211 5.81996 L68.4789 -5.81996 Q69.0667 -7.2 69.6545 -5.81996 L74.6122 5.81996 Q75.2 7.2 75.7878 5.81996 L80.7455 -5.81996 Q81.3333 -7.2 81.9211 -5.81996 L83.8122 -1.38004 Q84.4 0 85.9 0 L132 0\"/></g><text class=\"lbl\" x=\"520\" y=\"219.39\" text-anchor=\"middle\"><tspan dy=\"0\">1/g3</tspan></text><text class=\"lbl\" x=\"520\" y=\"202.49\" text-anchor=\"middle\"><tspan dy=\"0\">R</tspan><tspan class=\"sub\" dy=\"3.4\">4O</tspan></text><g transform=\"translate(58,234) rotate(90)\"><path d=\"M0 0 L60 0 M90 0 L150 0\"/><circle cx=\"75\" cy=\"0\" r=\"15\" fill=\"none\"/></g><text class=\"lbl\" x=\"79.35\" y=\"303\" text-anchor=\"start\"><tspan dy=\"0\">E</tspan></text><text class=\"lbl\" x=\"79.35\" y=\"322\" text-anchor=\"start\"><tspan dy=\"0\">vs</tspan></text><path d=\"M54.5 302 L61.5 302 M58 298.5 L58 305.5\"/><path d=\"M54.5 316 L61.5 316\"/><path d=\"M230.885 280 L230.885 338 L281.115 309 Z\" fill=\"none\"/><path d=\"M240.385 294.5 L247.385 294.5\"/><path d=\"M240.385 323.5 L247.385 323.5 M243.885 320 L243.885 327\"/><text class=\"lbl\" x=\"256\" y=\"271.1\" text-anchor=\"middle\"><tspan dy=\"0\">O</tspan><tspan class=\"sub\" dy=\"3.4\">1</tspan></text><path d=\"M494.885 280 L494.885 338 L545.115 309 Z\" fill=\"none\"/><path d=\"M504.385 294.5 L511.385 294.5\"/><path d=\"M504.385 323.5 L511.385 323.5 M507.885 320 L507.885 327\"/><text class=\"lbl\" x=\"520\" y=\"271.1\" text-anchor=\"middle\"><tspan dy=\"0\">O</tspan><tspan class=\"sub\" dy=\"3.4\">2</tspan></text><path d=\"M58 384 L58 396\"/><path d=\"M47 396 L69 396\"/><path d=\"M51 400 L65 400\"/><path d=\"M55 404 L61 404\"/><text class=\"lbl\" x=\"58\" y=\"418\" text-anchor=\"middle\"><tspan dy=\"0\">0</tspan></text><text class=\"lbl\" x=\"64\" y=\"225.9\" text-anchor=\"start\"><tspan dy=\"0\">1</tspan></text><text class=\"lbl\" x=\"196\" y=\"225.9\" text-anchor=\"start\"><tspan dy=\"0\">2</tspan></text><text class=\"lbl\" x=\"328\" y=\"225.9\" text-anchor=\"start\"><tspan dy=\"0\">3</tspan></text><text class=\"lbl\" x=\"460\" y=\"225.9\" text-anchor=\"start\"><tspan dy=\"0\">4</tspan></text><text class=\"lbl\" x=\"592\" y=\"225.9\" text-anchor=\"start\"><tspan dy=\"0\">o</tspan></text><line x1=\"190\" y1=\"294.5\" x2=\"230.885\" y2=\"294.5\"/><line x1=\"454\" y1=\"294.5\" x2=\"494.885\" y2=\"294.5\"/><line x1=\"281.115\" y1=\"309\" x2=\"322\" y2=\"309\"/><line x1=\"545.115\" y1=\"309\" x2=\"586\" y2=\"309\"/><line x1=\"160\" y1=\"323.5\" x2=\"230.885\" y2=\"323.5\"/><line x1=\"424\" y1=\"323.5\" x2=\"494.885\" y2=\"323.5\"/><line x1=\"58\" y1=\"384\" x2=\"424\" y2=\"384\"/><line x1=\"58\" y1=\"146\" x2=\"58\" y2=\"234\"/><line x1=\"160\" y1=\"323.5\" x2=\"160\" y2=\"384\"/><path d=\"M190 58 L190 141 A5 5 0 0 0 190 151 L190 294.5\"/><line x1=\"322\" y1=\"234\" x2=\"322\" y2=\"309\"/><line x1=\"424\" y1=\"323.5\" x2=\"424\" y2=\"384\"/><line x1=\"454\" y1=\"146\" x2=\"454\" y2=\"294.5\"/><line x1=\"586\" y1=\"58\" x2=\"586\" y2=\"309\"/><circle cx=\"160\" cy=\"384\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"58\" cy=\"234\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"190\" cy=\"234\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"454\" cy=\"234\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"322\" cy=\"234\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"586\" cy=\"234\" r=\"3.4\" fill=\"currentColor\" stroke=\"none\"/></svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "opamps = '''\n",
    "e,1,0,vs\n",
    "r12,1,2,1/g1\n",
    "r14,1,4,1/g2\n",
    "r23,2,3,1/g\n",
    "r34,3,4,1/g\n",
    "r2o,2,o,1/g4\n",
    "r4o,4,o,1/g3\n",
    "o1,0,2,3\n",
    "o2,0,4,o\n",
    "'''\n",
    "draw(opamps)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "ea9dcc3d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{g_{1} - g_{2}}{g_{3} - g_{4}}$"
      ],
      "text/plain": [
       "(g1 - g2)/(g3 - g4)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "oa = dc(opamps)\n",
    "vs = sp.Symbol(\"vs\")\n",
    "sp.simplify(oa[\"vo\"] / vs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "80f744a9",
   "metadata": {},
   "source": [
    "## Where next\n",
    "\n",
    "* The monograph itself: https://learn.symbulator.com/monograph.pdf\n",
    "* The same eight entries in the app, under *Built-in Examples › The Monograph*: https://symbulator.pythonanywhere.com/?input=monograph\n",
    "* The package's quick start for notebooks, `quickstart.ipynb`, beside this file, and the README's *In a notebook* section."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.14.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
