From a4cb6d70904bffdda6a4db4a9d922223fed1cefc Mon Sep 17 00:00:00 2001 From: Dennis den Ouden-van der Horst Date: Sun, 4 Jan 2026 16:51:14 +0100 Subject: [PATCH] Remove obsolete instruction notebooks and update ToC Deleted instructie.ipynb, instructie_2.ipynb, and lesoefeningen.ipynb from the book. Updated _toc.yml to remove references to these files and moved the Sphinx-Gated-Directives manual link to the correct section. Minor update to intro.md. --- book/_toc.yml | 7 +- book/instructie.ipynb | 1470 -------------------------------------- book/instructie_2.ipynb | 1470 -------------------------------------- book/intro.md | 205 ------ book/lesoefeningen.ipynb | 316 -------- 5 files changed, 1 insertion(+), 3467 deletions(-) delete mode 100644 book/instructie.ipynb delete mode 100644 book/instructie_2.ipynb delete mode 100644 book/lesoefeningen.ipynb diff --git a/book/_toc.yml b/book/_toc.yml index 6c408a7..6441842 100644 --- a/book/_toc.yml +++ b/book/_toc.yml @@ -2,12 +2,6 @@ format: jb-book root: intro parts: - - caption: test sphinx_gated_directives - chapters: - - external: https://github.com/TeachBooks/Sphinx-Gated-Directives/blob/main/MANUAL.md - - file: instructie.ipynb - - file: instructie_2.ipynb - - file: lesoefeningen.ipynb - caption: Your First TeachBook! chapters: - file: intro/book.md @@ -95,6 +89,7 @@ parts: - external: https://github.com/TeachBooks/Sphinx-ref-graph/blob/manual/README.md - external: https://github.com/TeachBooks/Sphinx-GitHub-Alerts/blob/main/README.md - external: https://github.com/TeachBooks/Sphinx-Metadata-Figure/blob/main/MANUAL.ipynb # BUMP + - external: https://github.com/TeachBooks/Sphinx-Gated-Directives/blob/main/MANUAL.md - file: features/visuals.md sections: - external: https://github.com/TeachBooks/Sphinx-Accessibility/blob/manual/README.md diff --git a/book/instructie.ipynb b/book/instructie.ipynb deleted file mode 100644 index e2ec472..0000000 --- a/book/instructie.ipynb +++ /dev/null @@ -1,1470 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "````{margin}\n", - "```{attributiongrey} Attribution\n", - ":class: attribution\n", - "\n", - "Deze pagina is aangepast van https://github.com/TUDelft-books/CT1000/blob/2025/book/week_2/session_1/intro.ipynb\n", - "\n", - "% Figures from https://github.com/TUDelft-books/CT1000/blob/2025/book/week_2/session_1/intro_data/Tekening1.vsdx\n", - "\n", - "```\n", - "```` " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Instructie_oud\n", - "\n", - "In constructiemechanica 2 heb je geleerd hoe je met differentiaalvergelijkingen voor statisch bepaalde constructies de krachtsverdeling en vervormingen kan vinden. Precies dezelfde aanpak werkt ook voor statisch onbepaalde constructie, met als enige verschil dat we de inwendige krachten niet kunnen vinden zonder ook de vergelijkingen en randvoorwaarden voor verplaatsingen op te stellen. Dat doen we volgens de volgende stappen:\n", - "\n", - "::::::{prf:algorithm} Differentiaalvergelijkingen toepassen\n", - ":nonumber: true\n", - ":label: differentiaalvergelijkingen_algoritme\n", - "\n", - "1. Eerst definiëren we de segmenten zonder discontinuïteiten. Daarna kan elk segment afzonderlijk worden getekend, waarbij de belastingen, coördinatenstelsels, afmetingen en snedekrachten aan de randen van elk segment worden aangegeven.\n", - "2. Nu kunnen we voor elk element de belastingsvergelijking opstellen en volgens de relaties van de differentiaalvergelijkingen alle krachtsgrootheden en verplaatsingen opstellen. Daarbij kunnen we direct ook de randvoorwaarden opstellen.\n", - "3. Er zijn nog meer vergelijkingen nodig om alle onbekende integratieconstantes op te lossen, deze kunnen we vinden door de overgangen tussen de verschillende elementen te analyseren waarbij zowel verplaatsingen als krachten in overeenstemming moeten zijn.\n", - "4. Er zijn nu evenveel vergelijkingen als onbekenden opgesteld. Deze kunnen nu worden opgelost en ingevuld in de opgestelde vergelijkingen voor het gewenste resultaat. Omdat het aantal onbekenden bij statisch onbepaalde constructies als snel uit de hand loopt wordt wordt aangeraden om je rekenmachine of een symbolische wiskundetool te gebruiken om dit op te lossen. Om het stelsel vergelijkingen op te lossen met behulp van numerieke hulpmiddelen, kun je de vergelijkingen opschrijven als een matrixformulering $Ax=b$ die eenvoudig kan worden opgelost door bijvoorbeeld je grafische rekenmachine of in python. Als alternatief kan een symbolische programmeertaal worden gebruikt om de vergelijkingen exact op te lossen. Als voorbeeld wordt het [`sympy`](https://docs.sympy.org/latest/index.html) pakket in `Python` gebruikt:\n", - "\n", - "::::::\n", - "\n", - "Als voorbeeld bepalen we de een simpele statisch onbepaalde constructie:\n", - "\n", - "::::::{prf:example}\n", - ":nonumber: true\n", - ":label: df_example_0\n", - "\n", - "Gegeven een constructie zoals hieronder weergegeven:\n", - "\n", - "```{figure} intro_data/structure.svg\n", - "---\n", - "align: center\n", - "---\n", - "Constructie, $EI = 5000 \\ \\rm{kNm^2}$\n", - "```\n", - "::::::\n", - "\n", - "1. Eerst definiëren we de segmenten zonder discontinuïteiten. Daarna kan elk segment afzonderlijk worden getekend, waarbij de belastingen, coördinatenstelsels, afmetingen en snedekrachten aan de randen van elk segment worden aangegeven.\n", - "\n", - "::::::{prf:example}\n", - ":nonumber: true\n", - ":label: df_example_1\n", - "\n", - "In dit voorbeeld moeten we element AB in twee delen opsplitsen omdat de verdeelde belasting een discontinuïteit veroorzaakt.\n", - "\n", - "Voor AC leidt dit tot:\n", - "\n", - "```{figure} intro_data/FBD_AC.svg\n", - ":align: center\n", - "\n", - "Vrijlichaamdiagram element AC\n", - "```\n", - "\n", - "Voor BC leidt dit tot:\n", - "\n", - "```{figure} intro_data/FBD_BC.svg\n", - ":align: center\n", - "\n", - "Vrijlichaamdiagram element BC\n", - "```\n", - "::::::" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. Nu kunnen we voor elk element de belastingsvergelijking opstellen en volgens de relaties van de differentiaalvergelijkingen alle krachtsgrootheden en verplaatsingen opstellen. Daarbij kunnen we direct ook de randvoorwaarden opstellen.\n", - "\n", - "::::::{prf:example}\n", - ":nonumber: true\n", - ":label: df_example_3\n", - "\n", - "In dit voorbeeld is er enkel invloed door buiging, dus hebben we aan deze differentiaalvergelijking genoeg: $ -EI \\cfrac{{d}^4w}{{d}x^4} = -q_z$. De differentiaalvergelijkingen voor rek $ EA \\cfrac{{d}^2u}{{d}x^2} = -q_x$ en torsie $ GI \\cfrac{{d}^2\\varphi_x}{{d}x^2} = -q_T$ hebben we in dit geval niet nodig.\n", - "\n", - "**Element AC**\n", - "\n", - "Omdat dit element onbelast is, geeft de belastingsvergelijking voor dit element:\n", - "\n", - "$$q_{z,{\\rm{AC}}}=0$$\n", - "\n", - "wat leidt tot de vergelijkingen:\n", - "\n", - "$$ V_{\\rm{AC}} \\left(x\\right) = C_1$$\n", - "\n", - "$$ M_{\\rm{AC}} \\left(x\\right) = C_1 \\cdot x + C_2 $$\n", - "\n", - "$$ \\kappa_{\\rm{AC}} \\left(x\\right) = \\cfrac{C_1 \\cdot x + C_2}{5000}$$\n", - "\n", - "$$ \\varphi_{\\rm{AC}} \\left(x\\right) = \\cfrac{\\cfrac{1}{2}\\cdot C_1 \\cdot x^2 + C_2 \\cdot x}{5000} + C_3$$\n", - "\n", - "$$ w_{\\rm{AC}} \\left(x\\right) = \\cfrac{-\\cfrac{1}{6}\\cdot C_1 \\cdot x^3 - \\cfrac{1}{2} C_2 \\cdot x^2}{5000} - C_3 \\cdot x + C_4$$\n", - "\n", - "Vanwege de oplegging bij A kan een randvoorwaarde worden geformuleerd als:\n", - "\n", - "```{math}\n", - ":label: BC_1\n", - "w_{\\rm{AC}} \\left(0\\right) = 0\n", - "```\n", - "\n", - "Omdat A ook een onbelast uiteinde is, kan een andere randvoorwaarde worden geformuleerd als:\n", - "\n", - "```{math}\n", - ":label: BC_2\n", - "M_{\\rm{AC}} \\left(0\\right) = 0\n", - "```\n", - "\n", - "Als dit uiteinde belast werd kon met een krachten- of momentenevenwicht ook een relatie gevonden worden.\n", - "\n", - "**Element BC**\n", - "\n", - "Omdat dit element belast is, geeft de belastingsvergelijking voor dit element:\n", - "\n", - "$$q_{z,\\rm{BC}}=10$$\n", - "\n", - "wat leidt tot de vergelijkingen:\n", - "\n", - "$$ V_{\\rm{BC}} \\left(x\\right) = -10 \\cdot x + C_5$$\n", - "\n", - "$$ M_{\\rm{BC}} \\left(x\\right) = -5 \\cdot x^2 + C_5 \\cdot x + C_6 $$\n", - "\n", - "$$ \\kappa_{\\rm{BC}} \\left(x\\right) = \\cfrac{-5 \\cdot x^2 + C_5 \\cdot x + C_6}{5000}$$\n", - "\n", - "$$ \\varphi_{\\rm{BC}} \\left(x\\right) = \\cfrac{-\\cfrac{5}{3} \\cdot x^3 + \\cfrac{1}{2}\\cdot C_5 \\cdot x^2 + C_6 \\cdot x}{5000} + C_7$$\n", - "\n", - "$$ w_{\\rm{BC}} \\left(x\\right) = \\cfrac{\\cfrac{5}{12} \\cdot x^4 -\\cfrac{1}{6}\\cdot C_5 \\cdot x^3 - \\cfrac{1}{2} C_6 \\cdot x^2}{5000} - C_7 \\cdot x + C_8$$\n", - "\n", - "Vanwege de inklemming bij B kunnen twee randvoorwaarden direct worden geformuleerd:\n", - "\n", - "```{math}\n", - ":label: BC_3\n", - "\\varphi_{\\rm{BC}} \\left(4\\right) = 0\n", - "```\n", - "\n", - "```{math}\n", - ":label: BC_4\n", - "w_{\\rm{BC}} \\left(4\\right) = 0\n", - "```\n", - "\n", - "::::::" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. Er zijn nog meer vergelijkingen nodig om alle onbekende integratieconstantes op te lossen, deze kunnen we vinden door de overgangen tussen de verschillende elementen te analyseren waarbij zowel verplaatsingen als krachten in overeenstemming moeten zijn.\n", - "\n", - "::::::{prf:example}\n", - ":nonumber: true\n", - ":label: df_example_4\n", - "\n", - "Bij C kan een randvoorwaarde worden geïdentificeerd uit de consistentie van verplaatsingen: zowel de neerwaartse als rotatieverplaatsing moeten hetzelfde zijn als de neerwaartse en rotatieverplaatsing aan de linkerkant van element BE:\n", - "\n", - "```{math}\n", - ":label: BC_5\n", - "w_{\\rm{AC}} \\left(4\\right) = w_{\\rm{BC}} \\left(0\\right)\n", - "```\n", - "\n", - "```{math}\n", - ":label: BC_6\n", - "\\varphi_{\\rm{AC}} \\left(4\\right) = \\varphi_{\\rm{BC}} \\left(0 \\right)\n", - "```\n", - "\n", - "Ten slotte moet er ook consistentie zijn met de snedekrachten, zoals getoond in het vrijlichaamdiagram:\n", - "\n", - "```{figure} intro_data/FBD_C.svg\n", - ":align: center\n", - "\n", - "Vrijlichaamdiagram knoop C\n", - "```\n", - "\n", - "Verticaal evenwicht geeft:\n", - "\n", - "```{math}\n", - ":label: BC_7\n", - "\\sum {{{\\left. {{F_{\\rm{v}}}} \\right|}^{\\rm{C}}} = 0} \\to -{V_{\\rm{AC}}}\\left(4\\right) + V_{\\rm{BC}}\\left(0\\right) = 0\n", - "```\n", - "\n", - "Momentevenwicht geeft:\n", - "\n", - "```{math}\n", - ":label: BC_8\n", - "\\sum {{{\\left. {{T}} \\right|}_{\\rm{C}}^{\\rm{C}}} = 0} \\to -{M_{{\\rm{AC}}}}\\left(4\\right) + M_{\\rm{BC}}\\left(0\\right) = 0\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. Er zijn nu evenveel vergelijkingen als onbekenden opgesteld. Deze kunnen nu worden opgelost en ingevuld in de opgestelde vergelijkingen voor het gewenste resultaat. Omdat het aantal onbekenden bij statisch onbepaalde constructies als snel uit de hand loopt wordt wordt aangeraden om je rekenmachine of een symbolische wiskundetool te gebruiken om dit op te lossen. Om het stelsel vergelijkingen op te lossen met behulp van numerieke hulpmiddelen, kun je de vergelijkingen opschrijven als een matrixformulering $Ax=b$ die eenvoudig kan worden opgelost door bijvoorbeeld je grafische rekenmachine of in python. Als alternatief kan een symbolische programmeertaal worden gebruikt om de vergelijkingen exact op te lossen. Als voorbeeld wordt het [`sympy`](https://docs.sympy.org/latest/index.html) pakket in `Python` gebruikt:\n", - "\n", - "\n", - "::::::{codex-start}\n", - ":nonumber: true\n", - ":label: df_example_5\n", - "\n", - "::::::\n", - "\n", - "Er zijn 8 randvoorwaarden geformuleerd met 8 integratieconstanten. Deze kunnen nu worden opgelost. \n", - "\n", - "Het invullen van de randvoorwaarden geeft:\n", - "\n", - "$$\n", - "\\begin{align}\n", - "C_{4} = 0 \\\\\n", - "C_{2} = 0 \\\\\n", - "- \\cfrac{4 C_{5}}{1875} - \\cfrac{C_{6}}{625} - 4 C_{7} + C_{8} + \\cfrac{8}{375} = 0 \\\\\n", - "\\cfrac{C_{5}}{625} + \\cfrac{C_{6}}{1250} + C_{7} - \\cfrac{8}{375} = 0 \\\\\n", - "- \\cfrac{4 C_{1}}{1875} - \\cfrac{C_{2}}{625} - 4 C_{3} + C_{4} - C_{8} = 0 \\\\\n", - "\\cfrac{C_{1}}{625} + \\cfrac{C_{2}}{1250} + C_{3} - C_{7} = 0 \\\\\n", - "4 C_{1} + C_{2} - C_{6} = 0 \\\\\n", - "C_{1} - C_{5} = 0 \\\\\n", - "\\end{align}\n", - "$$\n", - "\n", - "Het oplossen hiervan geeft:\n", - "\n", - "$$\n", - "\\begin{align}\n", - "C_{1} = \\cfrac{35}{8} = 4.375 \\\\\n", - "C_{2} = 0 \\\\\n", - "C_{3} = - \\cfrac{1}{150} \\approx -0.006667 \\\\\n", - "C_{4} = 0 \\\\\n", - "C_{5} = \\cfrac{35}{8} = 4.375\\\\\n", - "C_{6} = \\cfrac{35}{2} = 17.5 \\\\\n", - "C_{7} = \\cfrac{1}{3000} \\approx 0.0003333\\\\\n", - "C_{8} = \\cfrac{13}{750} \\approx 0.01733\n", - "\\end{align}\n", - "$$\n", - "\n", - "Nu is de volledige krachtenverdeling en verplaatsingen van de constructie opgelost. Bijvoorbeeld de momentenverdeling in BC die kan worden uitgezet als:\n", - "\n", - "```{figure} intro_data/Momentenlijn.svg\n", - ":align: center\n", - "\n", - "Momentenlijn BC\n", - "```\n", - "\n", - "De krachtsverdeling en verplaatsingen kunnen no ook \n", - "\n", - "**Oplossen met digitale hulpmiddelen**\n", - "Om het stelsel vergelijkingen op te lossen met behulp van numerieke hulpmiddelen, kun je de vergelijkingen opschrijven als een matrixformulering $Ax=b$ die eenvoudig kan worden opgelost door bijvoorbeeld je grafische rekenmachine of in python.\n", - "\n", - "\n", - "$$\\left[\\begin{array}{cccccccc}0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\\\0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & - \\frac{4}{1875} & - \\frac{1}{625} & -4 & 1\\\\0 & 0 & 0 & 0 & \\frac{1}{625} & \\frac{1}{1250} & 1 & 0\\\\- \\frac{4}{1875} & - \\frac{1}{625} & -4 & 1 & 0 & 0 & 0 & -1\\\\\\frac{1}{625} & \\frac{1}{1250} & 1 & 0 & 0 & 0 & -1 & 0\\\\4 & 1 & 0 & 0 & 0 & -1 & 0 & 0\\\\1 & 0 & 0 & 0 & -1 & 0 & 0 & 0\\end{array}\\right] \\left[ \\begin{array}{cccccccc} C_1\\\\C_2\\\\C_3\\\\C_4\\\\C_5\\\\C_6\\\\C_7\\\\C_8 \\end{array} \\right] = \\left[\\begin{matrix}0\\\\0\\\\- \\frac{8}{375}\\\\\\frac{8}{375}\\\\0\\\\0\\\\0\\\\0\\end{matrix}\\right]$$\n", - "\n", - "[Hier](rref_ti_84) is uitgelegd hoe je dit op een grafische rekenmachine kan oplossen.\n", - "\n", - "Als alternatief kan een symbolische programmeertaal worden gebruikt om de vergelijkingen exact op te lossen. Als voorbeeld wordt het [`sympy`](https://docs.sympy.org/latest/index.html) pakket in `Python` gebruikt.\n", - "\n", - "Beide opties zijn hieronder getoond" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "remove-cell" - ] - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAD0AAAASCAYAAADomNYKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAASdAAAEnQB3mYfeAAAAs9JREFUeJzl102o1FUYx/HPaEh2q3sxCgKtqNRdS7tgQi8g0SZXLgLBCiEsYnITFPTwBLqMUBRq0S2iVhEGtRF6WVTULktLbwTtgsDK6nbpzXFxztTcaeY2M3eGS/SF4YHznJfn9z/nPOeZRqvV0ovM3IwHsBPXYQY/4CRex4sR8UvPwatEZm7E07gbV+EbHEdGxPftfo1u0ZnZQOJxrMOH+BTncb3yETbg/YjYMWkhg5KZNymxXoM3cAbbcAfOYntEnINLeox/AXvxOe6LiJNdk6/HAdw8ofhH5Zgi+NGIONJuzMxn8BgO4iFY0zkqMw8ogr/AbLdgiIjFiDiI/ZOKflgy80blBH6No13uwAL2ZOYUHaIz81rla/yB3RHx03ILRcTi+MJeMXdWeyIiLnQ6qo4PcBlmWXq8m7gUcxFxatJRZmZTSY6D8klEHO/j21rtfB//l8pJ2IK3O0XvqvblIQJZCU0lMQ7KS0om7sV0tef7+NvtM9SdzszLla/QwsdDBPIXmfmEcj2ORsQj/9Y/Im4YZZ0RaVTb4u87fXW1P47y9mbmLPYpT9tq0N7J6T7+Kzv7tY/3QrXrM3NtRPw56GqZOY1X8CCeGmJc0/ju9Nlqt/Txb652nrrTEfGtku7X4fblVs7MNV1Nz+O1iHhnuXE9aCrPyaC/XcvM9W61O7vjy8wrsB2L+Iil2fvZ+juWmfdGxJmuwQ2lvLsfu2vbPqVI2TOw1Mo473REfJWZJ5QM/TCOdLgTU3guIhZYKvowblHq7c/qJPP4HZtwGzbiVcjMrTiEHRHx27gErID9Shl6ODPvUgqsW5UydB5Ptjv2qr3vUZLSNiXB/awU7qfxFt6MiHOZuRdz6Lz/a5UMeQFTEfHrBMT1JTM36f+H47t2v3+IHmKBGWXnO5lTCoFDOB0Ro00+YUYW3YvMfA+nBnmnV5PuTPy/YKw7/V/hImUh8qiSnFTZAAAAAElFTkSuQmCC", - "text/latex": [ - "$\\displaystyle C_{4} = 0$" - ], - "text/plain": [ - "C₄ = 0" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAD0AAAASCAYAAADomNYKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAASdAAAEnQB3mYfeAAAAt9JREFUeJzV10+IVXUUB/DPTBGZmWIYBFpSaruWJZmRBSZtkhYGkZBBUAoxSRDS4nACV1HISANt+kPQMoxqIw1tKmqn/TGdCNwFQX+smYbIei1+99ad17vje773kL5wObx7fud3zvf3O+e8cyc6nY5eyMzNeAw7cQPW4GecxNt4PSJ+62l8iZCZ6/E8duFafIdjyIj4qV430U06MyeQeBZX4BN8jnO4UTmEtfgoIraPm0i/yMyblVivwzs4jduwA2ewLSJ+gMt72L+KR3EKD0fEya7NV+AgNo0p/ovFjEL4qYg4Wr/MzJfwNA7jCZhsWmXmQYXw19jaTRgiYjEiDmP/uKIfFJl5k5KBZ/FylzqwgL2ZuZIG6cy8XjmN89gTEb8u5ygiFkcX9tC4p5LHI+KvpqLi8TGuwlaWpvcUrsRrEfHluKPMzCmlOfaLExFxrEV3SyXnWvTfKJmwBbNN0rsr+eYAgQyDKaUx9os3lE7cC6srea5FX79fQ3XTmXm1cgodfNZvFJl5CA8qJ/07PsWhfjIlIjb262cEmKhkh39rel0lfxnwv/dupWveodTVeXyQmWuHj3Mg1De5ukV/TXNdnd4LlVyRmZdFxJ/9eIqI+5q/M3NvtfE2vLuc7Yhr+kwlt7ToN1dyjop0RHyfmWexUbm92TbPmTnZ3SEbWKVkz49t9g1MGV1Nf1jJnd3xZeYq5RIWlfJb0r2PVM9MZj4QEaebu1aT2i7sw54W50dwot58OYyypiPi28w8rnToAzjaUCdW4pWIWGAp6WncqszbX1SbzOEPbMCdWI+3ejnOzBdwF7b3Wx4jxn5lDJ3OzHuVAet2ZQydw3P1wl6z9/14XJlb12FeGdy/wvt4r55hGzYv4hHsiIhT4+F0YWTmBu0fHP+U3H9IX4SjaTzkEhMeBEORzswZ5YZ3Kx8oNeYjYn640MaHyQsvWRZPKh17Vkml+nlmyH3HiqHT+/+IvwHtQ/pzJbnwjAAAAABJRU5ErkJggg==", - "text/latex": [ - "$\\displaystyle C_{2} = 0$" - ], - "text/plain": [ - "C₂ = 0" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/latex": [ - "$\\displaystyle - \\frac{4 C_{5}}{1875} - \\frac{C_{6}}{625} - 4 C_{7} + C_{8} + \\frac{8}{375} = 0$" - ], - "text/plain": [ - " 4⋅C₅ C₆ 8 \n", - "- ──── - ─── - 4⋅C₇ + C₈ + ─── = 0\n", - " 1875 625 375 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/latex": [ - "$\\displaystyle \\frac{C_{5}}{625} + \\frac{C_{6}}{1250} + C_{7} - \\frac{8}{375} = 0$" - ], - "text/plain": [ - "C₅ C₆ 8 \n", - "─── + ──── + C₇ - ─── = 0\n", - "625 1250 375 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/latex": [ - "$\\displaystyle - \\frac{4 C_{1}}{1875} - \\frac{C_{2}}{625} - 4 C_{3} + C_{4} - C_{8} = 0$" - ], - "text/plain": [ - " 4⋅C₁ C₂ \n", - "- ──── - ─── - 4⋅C₃ + C₄ - C₈ = 0\n", - " 1875 625 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/latex": [ - "$\\displaystyle \\frac{C_{1}}{625} + \\frac{C_{2}}{1250} + C_{3} - C_{7} = 0$" - ], - "text/plain": [ - "C₁ C₂ \n", - "─── + ──── + C₃ - C₇ = 0\n", - "625 1250 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKoAAAAUCAYAAAAdtqaHAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAASdAAAEnQB3mYfeAAABSNJREFUeJztmmuoVUUYhp9jIpmaQhQIWqFp5A8pMjO8kB5QqR8eioxCRbtAqdjJbmjY62cYgVhHJSG01CQhsDAKBFG0sDQkVDKzk5L4I8HQsjSVLrsf36zarc5ae+3bWUfYDyxm77m+s5j5Zuab1VQoFEjCzKYD74S/j0tam5J3CPAIMBG4HugH/AwcBD4A1kv6LbGxnGnozwczGwAsASYD1wAngS2ASfopytc9pYKBwCrgHNA7JV8TYMALQA/gc2AzcBa4AX9xzcBDwNgq+lQXGvrzw8wG43qvAz4EjgAjgaeAyWY2WtJpSBioofPrgNP4bHw2pb23gZnAYeBhSQdjdfUE5gM3Vd6lZMxsZtA6XtKuCqrIVX8NuJz1r8YH6TxJq6JIM3sNeBpYCjwB0C2hgnnABGAWcD6pFTObj7+kb4BR8ZcEIOmCpKXA7Ep6Uk8a+vPDzAbh1v448EYsWfi4m25mvaCDgWpmtwCvAiskfZrSUH98xP8BTJX0a5owSReyd6P+NPTnzoQQbpP0V3FC6MtnwFXAKIgt/WbWHdgInAAWlmioFbgSWCfpUNWyO59WGvozY2at+AEtKwckbUlJvzmE7Qnp3+EWdyiwI75HfQm4DRiTYQa2hHBjiXxdlZYQNvRnoxU/nGVlA356T6JvCM8mpEfx/aDIoprZSNyKLpe0J02BmfXGR3oB+KKU4ljZccBzwO1Af+ABSZszlj1O8svaaWbxuA2SZnZQTzX6FwD34RbhErAXWJDFqpXQ3xHvSprWQT0V6w/l++Pbu3twj85RYK6kT5LKSLqx3HaqpCmEBQgDtWjJbwcWZajk2hD+UoFvrhfu21sHvF9m2Tb+v/zcCkzBZ/DxWNqBhHqq0X83flrdh7/MJcB2Mxsm6UyJsseAi2W09UNCfMX6zawfvv/bDdwL/AgMAk6VU08NiCxm34T0q4vzRRY1mqEAFzuwTABrzGwNsAJ4JcT1NLMrJP2ZVZ2krcBWgIR20sq2xeOCe2oK7tDelbGqyJNRif5Jsfan4y9zNPBRibLNWdspQcX6geeBk5JmFMV9X6pQHfao34ZwaEL6kBC2w7+n/kvAWwnP/pBnd/i/R9Ip3Hr1wC1MImaW5ALLjRrr74O/x1LWtGZUqb8F2Gtmm8zslJkdMLO5wXeeRivuNsr6tJSob2cIJ8Y1mlkffOJfwLdWblHDwemxhI4uxg9YG2JXqG3hWW1mUyQdiZVrwq/FZgFTS4jOgzZqo78N32LsrYfIEu22Ub7+QcAc4HVgEr51WoXvBeP+zH+o9R5V0jEz24af7OcEDRGGbxHflHQeUq5QM7ASGI7fL38VGm0HfgcGAmOAAcCmKtqoJ1XrN7NlwDhgbJnLby2oVH834EtJC8L//WY2FB8siQO1TszGr1BXmlkzfnFxJzAe78uLUcaKl2VJBUmP4hvyj/GZOQe3zMOBPfitybxK26gn1eo3s+XADKBZ0tFOkPwfqtB/Evg6FneY8rwRNUHSMWAEsB4foM8Ag/FJeFd0zw/QlPb1VL0xswJluKe6Cma2EngQ/77gcN56ysHMNgEDJY0tinsZuF/SsPyUpdPpAzX4AKMPJPbjPtXtwBlJJzpVTAWY2WpgGn5YKB6k5ySdy0VUGZjZHfhyuxh4Dz9/rAUWSurspT8zeZzIR+ADNPImLAu/l+SgpRKexE/6O/BlNHrSvjDrMkjah0+yqcAh/HuBRbhvuMuS69LfoEFWupyPs0GDjmgM1AaXBX8Db+ZLKnj2sa4AAAAASUVORK5CYII=", - "text/latex": [ - "$\\displaystyle 4 C_{1} + C_{2} - C_{6} = 0$" - ], - "text/plain": [ - "4⋅C₁ + C₂ - C₆ = 0" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG4AAAAUCAYAAABs4ghcAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAASdAAAEnQB3mYfeAAAA6lJREFUeJztmV2IVGUYx3+zimhWCn0KWy2adhGEkNSGFdWCCF20NwlFQqUXYmCTEhEh//6CV4aIktFNukR5Y2EUCEJ4VZt3iWF+sPkBfZOlohukTRfve7az48x4zsyZ2R3YHxwezvv5f+Y57+eUKpUKtbC9EHgZWAbcDcwF/gIOA58CuyVdrll5gulW7bZ7gU3AcuAW4GdgH2BJf6bLTq9RuQQYeAOYAXwN7AXOA/cQfowB4DngsXY50Qxdrn0BQe/twGfAMeAh4FVgue2lkv5Iyl8TOOAD4EXgKPC8pMNVHcwC1gP3tsOBFulm7TsJQVsnaUeSaHsr8BqwGViTpPeka9peT3D8e6C/2nEASaOSNgNr26G+Wbpc+3zCbHAaeLcqW8AlYKXt2UliT6ryPEJUrwArJF1s1Jmk0WJkt043a488Fe0BSf+mM6IvXwE3AP1JenqqLAMzgV2SvmuvzsIp02HttsuETU9WvpW0r07efdGeqJN/kjAiFwFfwvjADUb7YQ4xk4XBaDupvUzY8GRliLBDrMWcaM/XyU/S5yYJ0wFs30iIZgU4lFWJ7ceB14EHgXnAs5L2Zqx7mnyOfyTphRrtNKU91n2bsIak+VXSnderK6kvT18tUop27OyWjLjbor2Q83wzm3A22gV8klPMCPB3jvI/1UlvVnvCceCJ1PvVJtpolWREzamTf3NVubHAXYp2lu1pkjKJl7Qf2A9gO5dSSQO5KtSnKe0prkj6JW+nBa9xx6NdVCd/YbRja2APgKTfCFvRGYz/+q7Bdk+j/E5TgPb5tn+0fcr2Htt9GbsuE6bZrM9gg7YORrusWqPtm4ClwCjwTZKe3pxsi89O289IOlbVQIlwFfMSsCKjc51iG81pPwSsJHzJdwBvAsO275d0rlGHRa5xkkZsHyDsHF8BdqSyTViS3peUzC7jArcdeIBwx3ckNnQC+Ae4C3gU6AU+LkpwgTSlPU71CUdsDwM/EA7yW9svexxrCVde220PEC4SHgaeJPjyVrrw2LCUVJG0Cnga+AJYTIj+asKPMkxwaF27PchLUdrjF32U/9eUjiFpBFgC7CYEbAOwgPBRPpK+pwQo1ft3IC+2K+Q4DkxGbM8ETgHvSdo00XoaUeuSOTPxDJW+sO2zvRg4J+lsK213AtvvAJ8DZwkXvBsJ68nQROrKQkuBIwztg6n3LdEOEaamyU4vsAe4FfidsGvrl3RmQlVloLCpcorOMqnOZFNkZypwXcp/TvVqwtp6oi4AAAAASUVORK5CYII=", - "text/latex": [ - "$\\displaystyle C_{1} - C_{5} = 0$" - ], - "text/plain": [ - "C₁ - C₅ = 0" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "C_{4} = 0\n", - "C_{2} = 0\n", - "- \\frac{4 C_{5}}{1875} - \\frac{C_{6}}{625} - 4 C_{7} + C_{8} + \\frac{8}{375} = 0\n", - "\\frac{C_{5}}{625} + \\frac{C_{6}}{1250} + C_{7} - \\frac{8}{375} = 0\n", - "- \\frac{4 C_{1}}{1875} - \\frac{C_{2}}{625} - 4 C_{3} + C_{4} - C_{8} = 0\n", - "\\frac{C_{1}}{625} + \\frac{C_{2}}{1250} + C_{3} - C_{7} = 0\n", - "4 C_{1} + C_{2} - C_{6} = 0\n", - "C_{1} - C_{5} = 0\n" - ] - } - ], - "source": [ - "import sympy as sym\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "%config InlineBackend.figure_formats = ['svg']\n", - "sym.init_printing()\n", - "\n", - "x = sym.symbols('x')\n", - "\n", - "q = 10 \n", - "EI = 5000 \n", - "EA = 20000 \n", - "F = 150\n", - "\n", - "q_AC = 0\n", - "q_BC = q\n", - "\n", - "C_1, C_2, C_3, C_4 = sym.symbols('C_1 C_2 C_3 C_4')\n", - "C_5, C_6, C_7, C_8 = sym.symbols('C_5 C_6 C_7 C_8')\n", - "\n", - "V_AC = -sym.integrate(q_AC, x) + C_1\n", - "M_AC = sym.integrate(V_AC, x) + C_2\n", - "kappa_AC = M_AC/EI\n", - "phi_AC = sym.integrate(kappa_AC, x) + C_3\n", - "w_AC = -sym.integrate(phi_AC, x) + C_4\n", - "\n", - "V_BC = -sym.integrate(q_BC, x) + C_5\n", - "M_BC = sym.integrate(V_BC, x) + C_6\n", - "kappa_BC = M_BC/EI\n", - "phi_BC = sym.integrate(kappa_BC, x) + C_7\n", - "w_BC = -sym.integrate(phi_BC, x) + C_8\n", - "\n", - "eq1 = sym.Eq(w_AC.subs(x,0),0)\n", - "eq2 = sym.Eq(M_AC.subs(x,0),0)\n", - "eq3 = sym.Eq(w_BC.subs(x,4),0)\n", - "eq4 = sym.Eq(phi_BC.subs(x,4),0)\n", - "eq5 = sym.Eq(w_AC.subs(x,4)-w_BC.subs(x,0),0)\n", - "eq6 = sym.Eq(phi_AC.subs(x,4)-phi_BC.subs(x,0),0)\n", - "eq7 = sym.Eq(M_AC.subs(x,4) - M_BC.subs(x,0),0)\n", - "eq8 = sym.Eq(V_AC.subs(x,4) - V_BC.subs(x,0),0)\n", - "\n", - "display(eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8)\n", - "for eq in [eq1, eq2, eq3, eq4, eq5, eq6, eq7, eq8]:\n", - " print(sym.latex(eq))\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "tags": [ - "remove-cell" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/latex": [ - "$\\displaystyle \\left\\{ C_{1} : \\frac{35}{8}, \\ C_{2} : 0, \\ C_{3} : - \\frac{1}{150}, \\ C_{4} : 0, \\ C_{5} : \\frac{35}{8}, \\ C_{6} : \\frac{35}{2}, \\ C_{7} : \\frac{1}{3000}, \\ C_{8} : \\frac{13}{750}\\right\\}$" - ], - "text/plain": [ - "⎧ 13 ⎫\n", - "⎨C₁: 35/8, C₂: 0, C₃: -1/150, C₄: 0, C₅: 35/8, C₆: 35/2, C₇: 1/3000, C₈: ───⎬\n", - "⎩ 750⎭" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "'\\\\left\\\\{ C_{1} : \\\\frac{35}{8}, \\\\ C_{2} : 0, \\\\ C_{3} : - \\\\frac{1}{150}, \\\\ C_{4} : 0, \\\\ C_{5} : \\\\frac{35}{8}, \\\\ C_{6} : \\\\frac{35}{2}, \\\\ C_{7} : \\\\frac{1}{3000}, \\\\ C_{8} : \\\\frac{13}{750}\\\\right\\\\}'" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sol = sym.solve([eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8],(C_1,C_2,C_3,C_4,C_5,C_6,C_7,C_8))\n", - "display(sol)\n", - "sym.latex(sol)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "tags": [ - "remove-cell" - ] - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2025-07-02T16:58:07.214407\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.10.3, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "M_numpy = sym.lambdify(x, M_BC.subs(sol))\n", - "x_numpy = np.linspace(0,4,100)\n", - "plt.figure()\n", - "plt.plot(x_numpy,M_numpy(x_numpy))\n", - "plt.xlabel('$x$')\n", - "plt.ylabel('$M_{BC}$');\n", - "ax = plt.gca()\n", - "ax.spines['right'].set_color('none')\n", - "ax.spines['top'].set_color('none')\n", - "ax.spines['bottom'].set_position('zero')\n", - "ax.spines['left'].set_position('zero')\n", - "ax.invert_yaxis()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "tags": [ - "remove-cell" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\\left[\\begin{matrix}0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\\\0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & - \\frac{4}{1875} & - \\frac{1}{625} & -4 & 1\\\\0 & 0 & 0 & 0 & \\frac{1}{625} & \\frac{1}{1250} & 1 & 0\\\\- \\frac{4}{1875} & - \\frac{1}{625} & -4 & 1 & 0 & 0 & 0 & -1\\\\\\frac{1}{625} & \\frac{1}{1250} & 1 & 0 & 0 & 0 & -1 & 0\\\\4 & 1 & 0 & 0 & 0 & -1 & 0 & 0\\\\1 & 0 & 0 & 0 & -1 & 0 & 0 & 0\\end{matrix}\\right]\n", - "\\left[\\begin{matrix}0\\\\0\\\\- \\frac{8}{375}\\\\\\frac{8}{375}\\\\0\\\\0\\\\0\\\\0\\end{matrix}\\right]\n" - ] - } - ], - "source": [ - "A,b = sym.linear_eq_to_matrix((eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8), (C_1,C_2,C_3,C_4,C_5,C_6,C_7,C_8))\n", - "print(sym.latex(A))\n", - "print(sym.latex(b))\n", - "A = np.array(A).astype(np.float64)\n", - "b = np.array(b).astype(np.float64)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "A = np.array([\n", - " [0, 0, 0, 1, 0, 0, 0, 0],\n", - " [0, 1, 0, 0, 0, 0, 0, 0],\n", - " [0, 0, 0, 0, -4/1875, -1/625, -4, 1],\n", - " [0, 0, 0, 0, 1/625, 1/1250, 1, 0],\n", - " [-4/1875, -1/625, -4, 1, 0, 0, 0, -1],\n", - " [1/625, 1/1250, 1, 0, 0, 0, -1, 0],\n", - " [4, 1, 0, 0, 0, -1, 0, 0],\n", - " [1, 0, 0, 0, -1, 0, 0, 0]\n", - "])\n", - "\n", - "b = np.array([\n", - " 0,\n", - " 0,\n", - " -8/375,\n", - " 8/375,\n", - " 0,\n", - " 0,\n", - " 0,\n", - " 0\n", - "])" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[ 4.37500000e+00],\n", - " [ 0.00000000e+00],\n", - " [-6.66666667e-03],\n", - " [ 0.00000000e+00],\n", - " [ 4.37500000e+00],\n", - " [ 1.75000000e+01],\n", - " [ 3.33333333e-04],\n", - " [ 1.73333333e-02]])" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.linalg.solve(A,b)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "tags": [ - "remove-cell" - ] - }, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}4.375\\\\0\\\\-0.00666666666666667\\\\0\\\\4.375\\\\17.5\\\\0.000333333333333334\\\\0.0173333333333333\\end{matrix}\\right]$" - ], - "text/plain": [ - "Matrix([\n", - "[ 4.375],\n", - "[ 0],\n", - "[-0.00666666666666667],\n", - "[ 0],\n", - "[ 4.375],\n", - "[ 17.5],\n", - "[0.000333333333333334],\n", - "[ 0.0173333333333333]])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\\left[\\begin{matrix}4.375\\\\0\\\\-0.00666666666666667\\\\0\\\\4.375\\\\17.5\\\\0.000333333333333334\\\\0.0173333333333333\\end{matrix}\\right]\n", - "\\left[\\begin{matrix}1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 4.375\\\\0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & -0.00666666666666667\\\\0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 4.375\\\\0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 17.5\\\\0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0.000333333333333334\\\\0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0.0173333333333333\\end{matrix}\\right]\n" - ] - } - ], - "source": [ - "import sympy as sym\n", - "\n", - "A_sym = sym.Matrix(A)\n", - "b_sym = sym.Matrix(b)\n", - "\n", - "sol_sym = A_sym.LUsolve(b_sym)\n", - "\n", - "display(sol_sym)\n", - "\n", - "print(sym.latex(sol_sym))\n", - "\n", - "identity = sym.eye(sol_sym.rows)\n", - "rr_augmented = identity.row_join(sol_sym)\n", - "print(sym.latex(rr_augmented))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "C_1 = 35/8 ≈ 4.37500000000000\n", - "C_2 = 0 ≈ 0\n", - "C_3 = -1/150 ≈ -0.00666666666666667\n", - "C_4 = 0 ≈ 0\n", - "C_5 = 35/8 ≈ 4.37500000000000\n", - "C_6 = 35/2 ≈ 17.5000000000000\n", - "C_7 = 1/3000 ≈ 0.000333333333333333\n", - "C_8 = 13/750 ≈ 0.0173333333333333\n" - ] - } - ], - "source": [ - "import sympy as sym\n", - "sym.init_printing()\n", - "\n", - "x = sym.symbols('x')\n", - "\n", - "q = 10 \n", - "EI = 5000 \n", - "EA = 20000 \n", - "F = 150\n", - "\n", - "q_AC = 0\n", - "q_BC = q\n", - "\n", - "C_1, C_2, C_3, C_4 = sym.symbols('C_1 C_2 C_3 C_4')\n", - "C_5, C_6, C_7, C_8 = sym.symbols('C_5 C_6 C_7 C_8')\n", - "\n", - "V_AC = -sym.integrate(q_AC, x) + C_1\n", - "M_AC = sym.integrate(V_AC, x) + C_2\n", - "kappa_AC = M_AC/EI\n", - "phi_AC = sym.integrate(kappa_AC, x) + C_3\n", - "w_AC = -sym.integrate(phi_AC, x) + C_4\n", - "\n", - "V_BC = -sym.integrate(q_BC, x) + C_5\n", - "M_BC = sym.integrate(V_BC, x) + C_6\n", - "kappa_BC = M_BC/EI\n", - "phi_BC = sym.integrate(kappa_BC, x) + C_7\n", - "w_BC = -sym.integrate(phi_BC, x) + C_8\n", - "\n", - "eq1 = sym.Eq(w_AC.subs(x,0),0)\n", - "eq2 = sym.Eq(M_AC.subs(x,0),0)\n", - "eq3 = sym.Eq(w_BC.subs(x,4),0)\n", - "eq4 = sym.Eq(phi_BC.subs(x,4),0)\n", - "eq5 = sym.Eq(w_AC.subs(x,4)-w_BC.subs(x,0),0)\n", - "eq6 = sym.Eq(phi_AC.subs(x,4)-phi_BC.subs(x,0),0)\n", - "eq7 = sym.Eq(M_AC.subs(x,4) - M_BC.subs(x,0),0)\n", - "eq8 = sym.Eq(V_AC.subs(x,4) - V_BC.subs(x,0),0)\n", - "\n", - "sol = sym.solve([eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8],(C_1,C_2,C_3,C_4,C_5,C_6,C_7,C_8))\n", - "for k, v in sol.items():\n", - " print(f\"{k} = {v} ≈ {v.evalf()}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "::::::{codex-end}\n", - "::::::" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Meer voorbeelden\n", - "Het voorbeeld in hoofdstuk 2.7.3 van het boek Mechanica, spanningen, vervormingen en verplaatsingen {cite:p}`Hartsuijker2013` richt zich op extensie. Voorbeeld 3b in hoofdstuk 8.2 is een buigingsprobleem.\n", - "\n", - "## Instructies in collegevorm\n", - "\n", - "Dit onderwerp is [in les 3](https://collegerama.tudelft.nl/Mediasite/Channel/public-ceg-ctb2210/watch/757766716fcb45718fca678dadaa396d1d?sortBy=most-recent) gepresenteerd in collegevorm van 0:40:00 tot 0:48:30\n", - "\n", - "## Opgaves\n", - "\n", - "- Opgaves 2.48 en 2.50 in hoofdstuk 2.9 van het boek Mechanica: spanningen, vervormingen en verplaatsingen {cite:p}`Hartsuijker2013`, antwoorden zijn beschikbaar op [deze website](https://icozct.tudelft.nl/TUD_CT/boekantwoorden/vol2/Chapter2/).\n", - "- Opgaves 8.7, 8.10, 8.11 in hoofdstuk 8.6 van het boek Mechanica: spanningen, vervormingen en verplaatsingen {cite:p}`Hartsuijker2013`, antwoorden zijn beschikbaar op [deze website](https://icozct.tudelft.nl/TUD_CT/boekantwoorden/vol2/Chapter8/)." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "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.12.11" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/book/instructie_2.ipynb b/book/instructie_2.ipynb deleted file mode 100644 index 0382117..0000000 --- a/book/instructie_2.ipynb +++ /dev/null @@ -1,1470 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "````{margin}\n", - "```{attributiongrey} Attribution\n", - ":class: attribution\n", - "\n", - "Deze pagina is aangepast van https://github.com/TUDelft-books/CT1000/blob/2025/book/week_2/session_1/intro.ipynb\n", - "\n", - "% Figures from https://github.com/TUDelft-books/CT1000/blob/2025/book/week_2/session_1/intro_data/Tekening1.vsdx\n", - "\n", - "```\n", - "```` " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Instructie_new\n", - "\n", - "In constructiemechanica 2 heb je geleerd hoe je met differentiaalvergelijkingen voor statisch bepaalde constructies de krachtsverdeling en vervormingen kan vinden. Precies dezelfde aanpak werkt ook voor statisch onbepaalde constructie, met als enige verschil dat we de inwendige krachten niet kunnen vinden zonder ook de vergelijkingen en randvoorwaarden voor verplaatsingen op te stellen. Dat doen we volgens de volgende stappen:\n", - "\n", - "::::::{prf:algorithm} Differentiaalvergelijkingen toepassen\n", - ":nonumber: true\n", - ":label: differentiaalvergelijkingen_algoritme_2\n", - "\n", - "1. Eerst definiëren we de segmenten zonder discontinuïteiten. Daarna kan elk segment afzonderlijk worden getekend, waarbij de belastingen, coördinatenstelsels, afmetingen en snedekrachten aan de randen van elk segment worden aangegeven.\n", - "2. Nu kunnen we voor elk element de belastingsvergelijking opstellen en volgens de relaties van de differentiaalvergelijkingen alle krachtsgrootheden en verplaatsingen opstellen. Daarbij kunnen we direct ook de randvoorwaarden opstellen.\n", - "3. Er zijn nog meer vergelijkingen nodig om alle onbekende integratieconstantes op te lossen, deze kunnen we vinden door de overgangen tussen de verschillende elementen te analyseren waarbij zowel verplaatsingen als krachten in overeenstemming moeten zijn.\n", - "4. Er zijn nu evenveel vergelijkingen als onbekenden opgesteld. Deze kunnen nu worden opgelost en ingevuld in de opgestelde vergelijkingen voor het gewenste resultaat. Omdat het aantal onbekenden bij statisch onbepaalde constructies als snel uit de hand loopt wordt wordt aangeraden om je rekenmachine of een symbolische wiskundetool te gebruiken om dit op te lossen. Om het stelsel vergelijkingen op te lossen met behulp van numerieke hulpmiddelen, kun je de vergelijkingen opschrijven als een matrixformulering $Ax=b$ die eenvoudig kan worden opgelost door bijvoorbeeld je grafische rekenmachine of in python. Als alternatief kan een symbolische programmeertaal worden gebruikt om de vergelijkingen exact op te lossen. Als voorbeeld wordt het [`sympy`](https://docs.sympy.org/latest/index.html) pakket in `Python` gebruikt:\n", - "\n", - "::::::\n", - "\n", - "Als voorbeeld bepalen we de een simpele statisch onbepaalde constructie:\n", - "\n", - "::::::{prf:example}\n", - ":nonumber: true\n", - ":label: df_example_0_2\n", - "\n", - "Gegeven een constructie zoals hieronder weergegeven:\n", - "\n", - "```{figure} intro_data/structure.svg\n", - "---\n", - "align: center\n", - "---\n", - "Constructie, $EI = 5000 \\ \\rm{kNm^2}$\n", - "```\n", - "::::::\n", - "\n", - "1. Eerst definiëren we de segmenten zonder discontinuïteiten. Daarna kan elk segment afzonderlijk worden getekend, waarbij de belastingen, coördinatenstelsels, afmetingen en snedekrachten aan de randen van elk segment worden aangegeven.\n", - "\n", - "::::::{prf:example}\n", - ":nonumber: true\n", - ":label: df_example_1_2\n", - "\n", - "In dit voorbeeld moeten we element AB in twee delen opsplitsen omdat de verdeelde belasting een discontinuïteit veroorzaakt.\n", - "\n", - "Voor AC leidt dit tot:\n", - "\n", - "```{figure} intro_data/FBD_AC.svg\n", - ":align: center\n", - "\n", - "Vrijlichaamdiagram element AC\n", - "```\n", - "\n", - "Voor BC leidt dit tot:\n", - "\n", - "```{figure} intro_data/FBD_BC.svg\n", - ":align: center\n", - "\n", - "Vrijlichaamdiagram element BC\n", - "```\n", - "::::::" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. Nu kunnen we voor elk element de belastingsvergelijking opstellen en volgens de relaties van de differentiaalvergelijkingen alle krachtsgrootheden en verplaatsingen opstellen. Daarbij kunnen we direct ook de randvoorwaarden opstellen.\n", - "\n", - "::::::{prf:example}\n", - ":nonumber: true\n", - ":label: df_example_3_2\n", - "\n", - "In dit voorbeeld is er enkel invloed door buiging, dus hebben we aan deze differentiaalvergelijking genoeg: $ -EI \\cfrac{{d}^4w}{{d}x^4} = -q_z$. De differentiaalvergelijkingen voor rek $ EA \\cfrac{{d}^2u}{{d}x^2} = -q_x$ en torsie $ GI \\cfrac{{d}^2\\varphi_x}{{d}x^2} = -q_T$ hebben we in dit geval niet nodig.\n", - "\n", - "**Element AC**\n", - "\n", - "Omdat dit element onbelast is, geeft de belastingsvergelijking voor dit element:\n", - "\n", - "$$q_{z,{\\rm{AC}}}=0$$\n", - "\n", - "wat leidt tot de vergelijkingen:\n", - "\n", - "$$ V_{\\rm{AC}} \\left(x\\right) = C_1$$\n", - "\n", - "$$ M_{\\rm{AC}} \\left(x\\right) = C_1 \\cdot x + C_2 $$\n", - "\n", - "$$ \\kappa_{\\rm{AC}} \\left(x\\right) = \\cfrac{C_1 \\cdot x + C_2}{5000}$$\n", - "\n", - "$$ \\varphi_{\\rm{AC}} \\left(x\\right) = \\cfrac{\\cfrac{1}{2}\\cdot C_1 \\cdot x^2 + C_2 \\cdot x}{5000} + C_3$$\n", - "\n", - "$$ w_{\\rm{AC}} \\left(x\\right) = \\cfrac{-\\cfrac{1}{6}\\cdot C_1 \\cdot x^3 - \\cfrac{1}{2} C_2 \\cdot x^2}{5000} - C_3 \\cdot x + C_4$$\n", - "\n", - "Vanwege de oplegging bij A kan een randvoorwaarde worden geformuleerd als:\n", - "\n", - "```{math}\n", - ":label: BC_1\n", - "w_{\\rm{AC}} \\left(0\\right) = 0\n", - "```\n", - "\n", - "Omdat A ook een onbelast uiteinde is, kan een andere randvoorwaarde worden geformuleerd als:\n", - "\n", - "```{math}\n", - ":label: BC_2\n", - "M_{\\rm{AC}} \\left(0\\right) = 0\n", - "```\n", - "\n", - "Als dit uiteinde belast werd kon met een krachten- of momentenevenwicht ook een relatie gevonden worden.\n", - "\n", - "**Element BC**\n", - "\n", - "Omdat dit element belast is, geeft de belastingsvergelijking voor dit element:\n", - "\n", - "$$q_{z,\\rm{BC}}=10$$\n", - "\n", - "wat leidt tot de vergelijkingen:\n", - "\n", - "$$ V_{\\rm{BC}} \\left(x\\right) = -10 \\cdot x + C_5$$\n", - "\n", - "$$ M_{\\rm{BC}} \\left(x\\right) = -5 \\cdot x^2 + C_5 \\cdot x + C_6 $$\n", - "\n", - "$$ \\kappa_{\\rm{BC}} \\left(x\\right) = \\cfrac{-5 \\cdot x^2 + C_5 \\cdot x + C_6}{5000}$$\n", - "\n", - "$$ \\varphi_{\\rm{BC}} \\left(x\\right) = \\cfrac{-\\cfrac{5}{3} \\cdot x^3 + \\cfrac{1}{2}\\cdot C_5 \\cdot x^2 + C_6 \\cdot x}{5000} + C_7$$\n", - "\n", - "$$ w_{\\rm{BC}} \\left(x\\right) = \\cfrac{\\cfrac{5}{12} \\cdot x^4 -\\cfrac{1}{6}\\cdot C_5 \\cdot x^3 - \\cfrac{1}{2} C_6 \\cdot x^2}{5000} - C_7 \\cdot x + C_8$$\n", - "\n", - "Vanwege de inklemming bij B kunnen twee randvoorwaarden direct worden geformuleerd:\n", - "\n", - "```{math}\n", - ":label: BC_3\n", - "\\varphi_{\\rm{BC}} \\left(4\\right) = 0\n", - "```\n", - "\n", - "```{math}\n", - ":label: BC_4\n", - "w_{\\rm{BC}} \\left(4\\right) = 0\n", - "```\n", - "\n", - "::::::" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. Er zijn nog meer vergelijkingen nodig om alle onbekende integratieconstantes op te lossen, deze kunnen we vinden door de overgangen tussen de verschillende elementen te analyseren waarbij zowel verplaatsingen als krachten in overeenstemming moeten zijn.\n", - "\n", - "::::::{prf:example}\n", - ":nonumber: true\n", - ":label: df_example_4_2\n", - "\n", - "Bij C kan een randvoorwaarde worden geïdentificeerd uit de consistentie van verplaatsingen: zowel de neerwaartse als rotatieverplaatsing moeten hetzelfde zijn als de neerwaartse en rotatieverplaatsing aan de linkerkant van element BE:\n", - "\n", - "```{math}\n", - ":label: BC_5\n", - "w_{\\rm{AC}} \\left(4\\right) = w_{\\rm{BC}} \\left(0\\right)\n", - "```\n", - "\n", - "```{math}\n", - ":label: BC_6\n", - "\\varphi_{\\rm{AC}} \\left(4\\right) = \\varphi_{\\rm{BC}} \\left(0 \\right)\n", - "```\n", - "\n", - "Ten slotte moet er ook consistentie zijn met de snedekrachten, zoals getoond in het vrijlichaamdiagram:\n", - "\n", - "```{figure} intro_data/FBD_C.svg\n", - ":align: center\n", - "\n", - "Vrijlichaamdiagram knoop C\n", - "```\n", - "\n", - "Verticaal evenwicht geeft:\n", - "\n", - "```{math}\n", - ":label: BC_7\n", - "\\sum {{{\\left. {{F_{\\rm{v}}}} \\right|}^{\\rm{C}}} = 0} \\to -{V_{\\rm{AC}}}\\left(4\\right) + V_{\\rm{BC}}\\left(0\\right) = 0\n", - "```\n", - "\n", - "Momentevenwicht geeft:\n", - "\n", - "```{math}\n", - ":label: BC_8\n", - "\\sum {{{\\left. {{T}} \\right|}_{\\rm{C}}^{\\rm{C}}} = 0} \\to -{M_{{\\rm{AC}}}}\\left(4\\right) + M_{\\rm{BC}}\\left(0\\right) = 0\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. Er zijn nu evenveel vergelijkingen als onbekenden opgesteld. Deze kunnen nu worden opgelost en ingevuld in de opgestelde vergelijkingen voor het gewenste resultaat. Omdat het aantal onbekenden bij statisch onbepaalde constructies als snel uit de hand loopt wordt wordt aangeraden om je rekenmachine of een symbolische wiskundetool te gebruiken om dit op te lossen. Om het stelsel vergelijkingen op te lossen met behulp van numerieke hulpmiddelen, kun je de vergelijkingen opschrijven als een matrixformulering $Ax=b$ die eenvoudig kan worden opgelost door bijvoorbeeld je grafische rekenmachine of in python. Als alternatief kan een symbolische programmeertaal worden gebruikt om de vergelijkingen exact op te lossen. Als voorbeeld wordt het [`sympy`](https://docs.sympy.org/latest/index.html) pakket in `Python` gebruikt:\n", - "\n", - "\n", - "::::::{prf:example-start}\n", - ":nonumber: true\n", - ":label: df_example_5_2\n", - "\n", - "::::::\n", - "\n", - "Er zijn 8 randvoorwaarden geformuleerd met 8 integratieconstanten. Deze kunnen nu worden opgelost. \n", - "\n", - "Het invullen van de randvoorwaarden geeft:\n", - "\n", - "$$\n", - "\\begin{align}\n", - "C_{4} = 0 \\\\\n", - "C_{2} = 0 \\\\\n", - "- \\cfrac{4 C_{5}}{1875} - \\cfrac{C_{6}}{625} - 4 C_{7} + C_{8} + \\cfrac{8}{375} = 0 \\\\\n", - "\\cfrac{C_{5}}{625} + \\cfrac{C_{6}}{1250} + C_{7} - \\cfrac{8}{375} = 0 \\\\\n", - "- \\cfrac{4 C_{1}}{1875} - \\cfrac{C_{2}}{625} - 4 C_{3} + C_{4} - C_{8} = 0 \\\\\n", - "\\cfrac{C_{1}}{625} + \\cfrac{C_{2}}{1250} + C_{3} - C_{7} = 0 \\\\\n", - "4 C_{1} + C_{2} - C_{6} = 0 \\\\\n", - "C_{1} - C_{5} = 0 \\\\\n", - "\\end{align}\n", - "$$\n", - "\n", - "Het oplossen hiervan geeft:\n", - "\n", - "$$\n", - "\\begin{align}\n", - "C_{1} = \\cfrac{35}{8} = 4.375 \\\\\n", - "C_{2} = 0 \\\\\n", - "C_{3} = - \\cfrac{1}{150} \\approx -0.006667 \\\\\n", - "C_{4} = 0 \\\\\n", - "C_{5} = \\cfrac{35}{8} = 4.375\\\\\n", - "C_{6} = \\cfrac{35}{2} = 17.5 \\\\\n", - "C_{7} = \\cfrac{1}{3000} \\approx 0.0003333\\\\\n", - "C_{8} = \\cfrac{13}{750} \\approx 0.01733\n", - "\\end{align}\n", - "$$\n", - "\n", - "Nu is de volledige krachtenverdeling en verplaatsingen van de constructie opgelost. Bijvoorbeeld de momentenverdeling in BC die kan worden uitgezet als:\n", - "\n", - "```{figure} intro_data/Momentenlijn.svg\n", - ":align: center\n", - "\n", - "Momentenlijn BC\n", - "```\n", - "\n", - "De krachtsverdeling en verplaatsingen kunnen no ook \n", - "\n", - "**Oplossen met digitale hulpmiddelen**\n", - "Om het stelsel vergelijkingen op te lossen met behulp van numerieke hulpmiddelen, kun je de vergelijkingen opschrijven als een matrixformulering $Ax=b$ die eenvoudig kan worden opgelost door bijvoorbeeld je grafische rekenmachine of in python.\n", - "\n", - "\n", - "$$\\left[\\begin{array}{cccccccc}0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\\\0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & - \\frac{4}{1875} & - \\frac{1}{625} & -4 & 1\\\\0 & 0 & 0 & 0 & \\frac{1}{625} & \\frac{1}{1250} & 1 & 0\\\\- \\frac{4}{1875} & - \\frac{1}{625} & -4 & 1 & 0 & 0 & 0 & -1\\\\\\frac{1}{625} & \\frac{1}{1250} & 1 & 0 & 0 & 0 & -1 & 0\\\\4 & 1 & 0 & 0 & 0 & -1 & 0 & 0\\\\1 & 0 & 0 & 0 & -1 & 0 & 0 & 0\\end{array}\\right] \\left[ \\begin{array}{cccccccc} C_1\\\\C_2\\\\C_3\\\\C_4\\\\C_5\\\\C_6\\\\C_7\\\\C_8 \\end{array} \\right] = \\left[\\begin{matrix}0\\\\0\\\\- \\frac{8}{375}\\\\\\frac{8}{375}\\\\0\\\\0\\\\0\\\\0\\end{matrix}\\right]$$\n", - "\n", - "[Hier](rref_ti_84) is uitgelegd hoe je dit op een grafische rekenmachine kan oplossen.\n", - "\n", - "Als alternatief kan een symbolische programmeertaal worden gebruikt om de vergelijkingen exact op te lossen. Als voorbeeld wordt het [`sympy`](https://docs.sympy.org/latest/index.html) pakket in `Python` gebruikt.\n", - "\n", - "Beide opties zijn hieronder getoond" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "remove-cell" - ] - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAD0AAAASCAYAAADomNYKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAASdAAAEnQB3mYfeAAAAs9JREFUeJzl102o1FUYx/HPaEh2q3sxCgKtqNRdS7tgQi8g0SZXLgLBCiEsYnITFPTwBLqMUBRq0S2iVhEGtRF6WVTULktLbwTtgsDK6nbpzXFxztTcaeY2M3eGS/SF4YHznJfn9z/nPOeZRqvV0ovM3IwHsBPXYQY/4CRex4sR8UvPwatEZm7E07gbV+EbHEdGxPftfo1u0ZnZQOJxrMOH+BTncb3yETbg/YjYMWkhg5KZNymxXoM3cAbbcAfOYntEnINLeox/AXvxOe6LiJNdk6/HAdw8ofhH5Zgi+NGIONJuzMxn8BgO4iFY0zkqMw8ogr/AbLdgiIjFiDiI/ZOKflgy80blBH6No13uwAL2ZOYUHaIz81rla/yB3RHx03ILRcTi+MJeMXdWeyIiLnQ6qo4PcBlmWXq8m7gUcxFxatJRZmZTSY6D8klEHO/j21rtfB//l8pJ2IK3O0XvqvblIQJZCU0lMQ7KS0om7sV0tef7+NvtM9SdzszLla/QwsdDBPIXmfmEcj2ORsQj/9Y/Im4YZZ0RaVTb4u87fXW1P47y9mbmLPYpT9tq0N7J6T7+Kzv7tY/3QrXrM3NtRPw56GqZOY1X8CCeGmJc0/ju9Nlqt/Txb652nrrTEfGtku7X4fblVs7MNV1Nz+O1iHhnuXE9aCrPyaC/XcvM9W61O7vjy8wrsB2L+Iil2fvZ+juWmfdGxJmuwQ2lvLsfu2vbPqVI2TOw1Mo473REfJWZJ5QM/TCOdLgTU3guIhZYKvowblHq7c/qJPP4HZtwGzbiVcjMrTiEHRHx27gErID9Shl6ODPvUgqsW5UydB5Ptjv2qr3vUZLSNiXB/awU7qfxFt6MiHOZuRdz6Lz/a5UMeQFTEfHrBMT1JTM36f+H47t2v3+IHmKBGWXnO5lTCoFDOB0Ro00+YUYW3YvMfA+nBnmnV5PuTPy/YKw7/V/hImUh8qiSnFTZAAAAAElFTkSuQmCC", - "text/latex": [ - "$\\displaystyle C_{4} = 0$" - ], - "text/plain": [ - "C₄ = 0" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAD0AAAASCAYAAADomNYKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAASdAAAEnQB3mYfeAAAAt9JREFUeJzV10+IVXUUB/DPTBGZmWIYBFpSaruWJZmRBSZtkhYGkZBBUAoxSRDS4nACV1HISANt+kPQMoxqIw1tKmqn/TGdCNwFQX+smYbIei1+99ad17vje773kL5wObx7fud3zvf3O+e8cyc6nY5eyMzNeAw7cQPW4GecxNt4PSJ+62l8iZCZ6/E8duFafIdjyIj4qV430U06MyeQeBZX4BN8jnO4UTmEtfgoIraPm0i/yMyblVivwzs4jduwA2ewLSJ+gMt72L+KR3EKD0fEya7NV+AgNo0p/ovFjEL4qYg4Wr/MzJfwNA7jCZhsWmXmQYXw19jaTRgiYjEiDmP/uKIfFJl5k5KBZ/FylzqwgL2ZuZIG6cy8XjmN89gTEb8u5ygiFkcX9tC4p5LHI+KvpqLi8TGuwlaWpvcUrsRrEfHluKPMzCmlOfaLExFxrEV3SyXnWvTfKJmwBbNN0rsr+eYAgQyDKaUx9os3lE7cC6srea5FX79fQ3XTmXm1cgodfNZvFJl5CA8qJ/07PsWhfjIlIjb262cEmKhkh39rel0lfxnwv/dupWveodTVeXyQmWuHj3Mg1De5ukV/TXNdnd4LlVyRmZdFxJ/9eIqI+5q/M3NvtfE2vLuc7Yhr+kwlt7ToN1dyjop0RHyfmWexUbm92TbPmTnZ3SEbWKVkz49t9g1MGV1Nf1jJnd3xZeYq5RIWlfJb0r2PVM9MZj4QEaebu1aT2i7sw54W50dwot58OYyypiPi28w8rnToAzjaUCdW4pWIWGAp6WncqszbX1SbzOEPbMCdWI+3ejnOzBdwF7b3Wx4jxn5lDJ3OzHuVAet2ZQydw3P1wl6z9/14XJlb12FeGdy/wvt4r55hGzYv4hHsiIhT4+F0YWTmBu0fHP+U3H9IX4SjaTzkEhMeBEORzswZ5YZ3Kx8oNeYjYn640MaHyQsvWRZPKh17Vkml+nlmyH3HiqHT+/+IvwHtQ/pzJbnwjAAAAABJRU5ErkJggg==", - "text/latex": [ - "$\\displaystyle C_{2} = 0$" - ], - "text/plain": [ - "C₂ = 0" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/latex": [ - "$\\displaystyle - \\frac{4 C_{5}}{1875} - \\frac{C_{6}}{625} - 4 C_{7} + C_{8} + \\frac{8}{375} = 0$" - ], - "text/plain": [ - " 4⋅C₅ C₆ 8 \n", - "- ──── - ─── - 4⋅C₇ + C₈ + ─── = 0\n", - " 1875 625 375 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/latex": [ - "$\\displaystyle \\frac{C_{5}}{625} + \\frac{C_{6}}{1250} + C_{7} - \\frac{8}{375} = 0$" - ], - "text/plain": [ - "C₅ C₆ 8 \n", - "─── + ──── + C₇ - ─── = 0\n", - "625 1250 375 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/latex": [ - "$\\displaystyle - \\frac{4 C_{1}}{1875} - \\frac{C_{2}}{625} - 4 C_{3} + C_{4} - C_{8} = 0$" - ], - "text/plain": [ - " 4⋅C₁ C₂ \n", - "- ──── - ─── - 4⋅C₃ + C₄ - C₈ = 0\n", - " 1875 625 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/latex": [ - "$\\displaystyle \\frac{C_{1}}{625} + \\frac{C_{2}}{1250} + C_{3} - C_{7} = 0$" - ], - "text/plain": [ - "C₁ C₂ \n", - "─── + ──── + C₃ - C₇ = 0\n", - "625 1250 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKoAAAAUCAYAAAAdtqaHAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAASdAAAEnQB3mYfeAAABSNJREFUeJztmmuoVUUYhp9jIpmaQhQIWqFp5A8pMjO8kB5QqR8eioxCRbtAqdjJbmjY62cYgVhHJSG01CQhsDAKBFG0sDQkVDKzk5L4I8HQsjSVLrsf36zarc5ae+3bWUfYDyxm77m+s5j5Zuab1VQoFEjCzKYD74S/j0tam5J3CPAIMBG4HugH/AwcBD4A1kv6LbGxnGnozwczGwAsASYD1wAngS2ASfopytc9pYKBwCrgHNA7JV8TYMALQA/gc2AzcBa4AX9xzcBDwNgq+lQXGvrzw8wG43qvAz4EjgAjgaeAyWY2WtJpSBioofPrgNP4bHw2pb23gZnAYeBhSQdjdfUE5gM3Vd6lZMxsZtA6XtKuCqrIVX8NuJz1r8YH6TxJq6JIM3sNeBpYCjwB0C2hgnnABGAWcD6pFTObj7+kb4BR8ZcEIOmCpKXA7Ep6Uk8a+vPDzAbh1v448EYsWfi4m25mvaCDgWpmtwCvAiskfZrSUH98xP8BTJX0a5owSReyd6P+NPTnzoQQbpP0V3FC6MtnwFXAKIgt/WbWHdgInAAWlmioFbgSWCfpUNWyO59WGvozY2at+AEtKwckbUlJvzmE7Qnp3+EWdyiwI75HfQm4DRiTYQa2hHBjiXxdlZYQNvRnoxU/nGVlA356T6JvCM8mpEfx/aDIoprZSNyKLpe0J02BmfXGR3oB+KKU4ljZccBzwO1Af+ABSZszlj1O8svaaWbxuA2SZnZQTzX6FwD34RbhErAXWJDFqpXQ3xHvSprWQT0V6w/l++Pbu3twj85RYK6kT5LKSLqx3HaqpCmEBQgDtWjJbwcWZajk2hD+UoFvrhfu21sHvF9m2Tb+v/zcCkzBZ/DxWNqBhHqq0X83flrdh7/MJcB2Mxsm6UyJsseAi2W09UNCfMX6zawfvv/bDdwL/AgMAk6VU08NiCxm34T0q4vzRRY1mqEAFzuwTABrzGwNsAJ4JcT1NLMrJP2ZVZ2krcBWgIR20sq2xeOCe2oK7tDelbGqyJNRif5Jsfan4y9zNPBRibLNWdspQcX6geeBk5JmFMV9X6pQHfao34ZwaEL6kBC2w7+n/kvAWwnP/pBnd/i/R9Ip3Hr1wC1MImaW5ALLjRrr74O/x1LWtGZUqb8F2Gtmm8zslJkdMLO5wXeeRivuNsr6tJSob2cIJ8Y1mlkffOJfwLdWblHDwemxhI4uxg9YG2JXqG3hWW1mUyQdiZVrwq/FZgFTS4jOgzZqo78N32LsrYfIEu22Ub7+QcAc4HVgEr51WoXvBeP+zH+o9R5V0jEz24af7OcEDRGGbxHflHQeUq5QM7ASGI7fL38VGm0HfgcGAmOAAcCmKtqoJ1XrN7NlwDhgbJnLby2oVH834EtJC8L//WY2FB8siQO1TszGr1BXmlkzfnFxJzAe78uLUcaKl2VJBUmP4hvyj/GZOQe3zMOBPfitybxK26gn1eo3s+XADKBZ0tFOkPwfqtB/Evg6FneY8rwRNUHSMWAEsB4foM8Ag/FJeFd0zw/QlPb1VL0xswJluKe6Cma2EngQ/77gcN56ysHMNgEDJY0tinsZuF/SsPyUpdPpAzX4AKMPJPbjPtXtwBlJJzpVTAWY2WpgGn5YKB6k5ySdy0VUGZjZHfhyuxh4Dz9/rAUWSurspT8zeZzIR+ADNPImLAu/l+SgpRKexE/6O/BlNHrSvjDrMkjah0+yqcAh/HuBRbhvuMuS69LfoEFWupyPs0GDjmgM1AaXBX8Db+ZLKnj2sa4AAAAASUVORK5CYII=", - "text/latex": [ - "$\\displaystyle 4 C_{1} + C_{2} - C_{6} = 0$" - ], - "text/plain": [ - "4⋅C₁ + C₂ - C₆ = 0" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG4AAAAUCAYAAABs4ghcAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAASdAAAEnQB3mYfeAAAA6lJREFUeJztmV2IVGUYx3+zimhWCn0KWy2adhGEkNSGFdWCCF20NwlFQqUXYmCTEhEh//6CV4aIktFNukR5Y2EUCEJ4VZt3iWF+sPkBfZOlohukTRfve7az48x4zsyZ2R3YHxwezvv5f+Y57+eUKpUKtbC9EHgZWAbcDcwF/gIOA58CuyVdrll5gulW7bZ7gU3AcuAW4GdgH2BJf6bLTq9RuQQYeAOYAXwN7AXOA/cQfowB4DngsXY50Qxdrn0BQe/twGfAMeAh4FVgue2lkv5Iyl8TOOAD4EXgKPC8pMNVHcwC1gP3tsOBFulm7TsJQVsnaUeSaHsr8BqwGViTpPeka9peT3D8e6C/2nEASaOSNgNr26G+Wbpc+3zCbHAaeLcqW8AlYKXt2UliT6ryPEJUrwArJF1s1Jmk0WJkt043a488Fe0BSf+mM6IvXwE3AP1JenqqLAMzgV2SvmuvzsIp02HttsuETU9WvpW0r07efdGeqJN/kjAiFwFfwvjADUb7YQ4xk4XBaDupvUzY8GRliLBDrMWcaM/XyU/S5yYJ0wFs30iIZgU4lFWJ7ceB14EHgXnAs5L2Zqx7mnyOfyTphRrtNKU91n2bsIak+VXSnderK6kvT18tUop27OyWjLjbor2Q83wzm3A22gV8klPMCPB3jvI/1UlvVnvCceCJ1PvVJtpolWREzamTf3NVubHAXYp2lu1pkjKJl7Qf2A9gO5dSSQO5KtSnKe0prkj6JW+nBa9xx6NdVCd/YbRja2APgKTfCFvRGYz/+q7Bdk+j/E5TgPb5tn+0fcr2Htt9GbsuE6bZrM9gg7YORrusWqPtm4ClwCjwTZKe3pxsi89O289IOlbVQIlwFfMSsCKjc51iG81pPwSsJHzJdwBvAsO275d0rlGHRa5xkkZsHyDsHF8BdqSyTViS3peUzC7jArcdeIBwx3ckNnQC+Ae4C3gU6AU+LkpwgTSlPU71CUdsDwM/EA7yW9svexxrCVde220PEC4SHgaeJPjyVrrw2LCUVJG0Cnga+AJYTIj+asKPMkxwaF27PchLUdrjF32U/9eUjiFpBFgC7CYEbAOwgPBRPpK+pwQo1ft3IC+2K+Q4DkxGbM8ETgHvSdo00XoaUeuSOTPxDJW+sO2zvRg4J+lsK213AtvvAJ8DZwkXvBsJ68nQROrKQkuBIwztg6n3LdEOEaamyU4vsAe4FfidsGvrl3RmQlVloLCpcorOMqnOZFNkZypwXcp/TvVqwtp6oi4AAAAASUVORK5CYII=", - "text/latex": [ - "$\\displaystyle C_{1} - C_{5} = 0$" - ], - "text/plain": [ - "C₁ - C₅ = 0" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "C_{4} = 0\n", - "C_{2} = 0\n", - "- \\frac{4 C_{5}}{1875} - \\frac{C_{6}}{625} - 4 C_{7} + C_{8} + \\frac{8}{375} = 0\n", - "\\frac{C_{5}}{625} + \\frac{C_{6}}{1250} + C_{7} - \\frac{8}{375} = 0\n", - "- \\frac{4 C_{1}}{1875} - \\frac{C_{2}}{625} - 4 C_{3} + C_{4} - C_{8} = 0\n", - "\\frac{C_{1}}{625} + \\frac{C_{2}}{1250} + C_{3} - C_{7} = 0\n", - "4 C_{1} + C_{2} - C_{6} = 0\n", - "C_{1} - C_{5} = 0\n" - ] - } - ], - "source": [ - "import sympy as sym\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "%config InlineBackend.figure_formats = ['svg']\n", - "sym.init_printing()\n", - "\n", - "x = sym.symbols('x')\n", - "\n", - "q = 10 \n", - "EI = 5000 \n", - "EA = 20000 \n", - "F = 150\n", - "\n", - "q_AC = 0\n", - "q_BC = q\n", - "\n", - "C_1, C_2, C_3, C_4 = sym.symbols('C_1 C_2 C_3 C_4')\n", - "C_5, C_6, C_7, C_8 = sym.symbols('C_5 C_6 C_7 C_8')\n", - "\n", - "V_AC = -sym.integrate(q_AC, x) + C_1\n", - "M_AC = sym.integrate(V_AC, x) + C_2\n", - "kappa_AC = M_AC/EI\n", - "phi_AC = sym.integrate(kappa_AC, x) + C_3\n", - "w_AC = -sym.integrate(phi_AC, x) + C_4\n", - "\n", - "V_BC = -sym.integrate(q_BC, x) + C_5\n", - "M_BC = sym.integrate(V_BC, x) + C_6\n", - "kappa_BC = M_BC/EI\n", - "phi_BC = sym.integrate(kappa_BC, x) + C_7\n", - "w_BC = -sym.integrate(phi_BC, x) + C_8\n", - "\n", - "eq1 = sym.Eq(w_AC.subs(x,0),0)\n", - "eq2 = sym.Eq(M_AC.subs(x,0),0)\n", - "eq3 = sym.Eq(w_BC.subs(x,4),0)\n", - "eq4 = sym.Eq(phi_BC.subs(x,4),0)\n", - "eq5 = sym.Eq(w_AC.subs(x,4)-w_BC.subs(x,0),0)\n", - "eq6 = sym.Eq(phi_AC.subs(x,4)-phi_BC.subs(x,0),0)\n", - "eq7 = sym.Eq(M_AC.subs(x,4) - M_BC.subs(x,0),0)\n", - "eq8 = sym.Eq(V_AC.subs(x,4) - V_BC.subs(x,0),0)\n", - "\n", - "display(eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8)\n", - "for eq in [eq1, eq2, eq3, eq4, eq5, eq6, eq7, eq8]:\n", - " print(sym.latex(eq))\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "tags": [ - "remove-cell" - ] - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzAAAAAVCAYAAACZgQsDAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAASdAAAEnQB3mYfeAAAEgxJREFUeJztnXu0H1V1xz8hLB4FBJXyUCg0FAhUIBREHoYmoDEYrTcgtlJAEEEKrHhFyrO480WBuHjFgCi0SgShtIKEUoI8GhArryUKBcIbAggRSpBHwkMo6R/7/JJf5s5vfvP6zfzuZb5r3XXWnZkzZ//23mefOWfvs8+opUuX0qBBgwYNGjRo0KBBgwbDASvVTUCDBg0aNGjQoEGDBg0apMXKSTcl7QdMA7YC1gR2MLN7KqCrQYMGDRo0aNCgQYMG7yFImg6cBCwC7gCONbNHos91nMBI2hr4CbAE+CnwLPD7hOc3B74MTAL+DFgHeBm4F/gZMNvMXs/zY7JC0neAHYEtgHWBN4CngDnAeWa2KKbOAmCTDq983sw2SGhvfeA54HtmNk3SFOBrwNbAB4GFwN3A2WZ2e86flRr9JItAz0bAKcBklvNjDiAz+0OP2+4rXhSFpM8Dfw2MA7YD1gIuNbP9U9SN6mnmd+XtJ40OrEBPbbwI7fcNP7La6jLtdLhWm60eznIIdRZQgiwAAVOBKcA2wIeBPwL3ARcBF5nZu3l+V1r0mSxKs/HhWh7ZZrZRVdUpC8Nd5nnk2la3pSfdorDeNbPRbfUWUM34fwuwGs6PzwEfAnaKPpTkgZkIjAJOMrNZnR6SNAo3QMcBqwC3AVcAr+A/dBKwJ/BFYHxCe2Xi68BvgBuBF4A1gJ2B6cBhknY2s2di6r0CzIy5vrhLe5/DFeGqoFTH4jPHOcCLwF+EZ/aRdKCZ/STj70mFfpSFpM0CHesBVwMP4Yr4NWCypN2SOlqBdvuOFyXhn3ADtxj4HTA2Q91lelrwXZn6SaMDK9BUCy9C233HD/LZ6sJ2GpZ9AFRuq0eQHKAcWewLfB//qLkZeBpYH9gb+BdgL0n7mlnpG3b7VBZl2njIKNs8NqqqOmVgBMk8b5+F5XpyK97nohgP7AFcF3Ov5+O/md2CT2KQdDewo6Q1zWyFNpImMB8I5YMJzwD8CDgImA/sZ2b3RohfHTgaHxiqwvvM7M3oRUmnAicCJwBHxNR72cym52hvKj4IPgLcBDwPbGtmL7S1PRGYh89CezKBoT9lcT6uuNPM7Nw2Ws7GO+CpwOE9aLcfeVEGvo4buMfwFZs449MJLT29teC7svaTRgeWoy5eQH/yI4+tLmqnb5W0AXAM9djqkSIHKEEW+ELp3wDXtntaJJ0I3AXsg09mrszRTjf0oyzKtPGQXbZ5bFRVdcrASJF53j4Ly/VkDzP7v5h3tLzPF8bUrXr8fwj4K+D9RCZJSe6jltvo7U4PSDoaV4QHgZ2jigBgZm+Y2al0ZmTpiBNqwL+HcvOy2pK0Nj5TvQbYCOfpne0DYqDpZuA14E/LajtCR9/JQtIYfDVjAR4qsAI5eHjiAZLWKLndvuNFWTCzm83s0ayrke162jJYed+Vsd1GB5bTVAsvQtt9x4/QZiW2Okb/N6EGW/1elwMMlYWZzTOza6JhYmb2e+AH4d8JZbXfRke/yqI0Gx/el1q2eWxUVXXKwEiSed4+20lP2u5/BPfkPAtcm5aeDm2VIefWHGR09EbiJv4uhG2Iz5zeAb5gZq8lPW9mb+Rtq63N2cCXgIPNbHaOV3w2lP/T4f6qkvbH4yGXhOdujRNyG6bgbsifAY/isbs7SVrXzF5so313PK5xTg66E1G1LDLIYY9Q3hAzOL0m6Ve4cu8M/FcRmtpoG456WQXa9bQosvSTRgeWo3JeBNr61T4kIclWF7XTUIOt7mO9TEKvx8xuaH28vJPi2dQYprLohqw2Pk62eWxUVXUKYYTKPA7d+mw3PflqKH/YoR/3zfifNIFZJ5SdhDiIb7K5yMzuz9pwFZB0DJ49bW18s9PHcWbP6FBlA+CSyLUnJR1sZr/oUGcqLsQbzexNSccBZwPzJc3B3XSb4S7yG1muHGVikP6UxZahHJI9IuBRXHm3oLwPtkH6kxd1Y5melvCuLP2k0YHlqIMX0L/8WIaMtrqQnQYws5dqsNWDjCw5QAmySKBlZeDA8O/Pu1OfCYP0uSxyIJGvKWWbx0ZVVacoBhl5Ms/TZzvqSQif2x94F99/Foeqx/+Wp2nt6I3YELKwyWk8sBTPahCHgVBGf0gvcQKe0vmqbg8GHIO7qQZxof4cmGRm/xvz7EX4xq0N8M1Q2wAXAJsC10naLlpB0mp4VoXrWu48M5uJx+uuDBwKHI9vUnwGz2rxQvQ9JWAglFXJIq0cWgr3Sof7revrlEBTCwOh7Ge9rBRxeloAWftJowPLUQcvoH/tQzvS2upS7DTUYqsHQtlvetmOysfMBMwAPgLMNbPrU9KfFgOh7GdZpEZKvqaRbR4bVVWdohgI5YiQeRtS99kUevIFnOfXWXwCgDrG/wWhnBC9sYIHRtJk4JPA7vimmQtCHCqR59bEZ0xLgTsTGh6C4J7/R2AHYENgXzO7Ik1dM1uIZypJBQsp3eQp43bFDeJvJX3GzH4TeVaR6vcDh0taDHwDz+wwNfLMJHzmu0w5JR0LnAbMAs7DU0+PBU4HLpU0zsyOTfsbuqGgLE7AB/AtgbfwfNsndFudyCqHBIwKZSl7MAry4kh8xXXTcOkB4Ntm1jUGNC0/lJyCMA6pUmemwBA9zYuc/SQJfaMDkfeciIcbfM/Mjur2fEl9olReQOE+MR0fGNuRmB4X8vEira0uy06Htiqz1UX1MoS/zAA+jf+Wx4CjErwcwPAYM+MgaVp4x0PAAWnpT4OCfWIB8Tb8fDM7MqluieNmHLryNYtsE5DHRlVVpyMKynw0rsv749+sC4FLgelmlhja2GOZt9rIItduenJYKC/o0FYd4/8l+Cb/MyXthntt/tnMFkQ9MJPx7As7BsLOJR6tzY2vWvY82Wvgeba7fhSUBTN73syuwoX3QeDiDNVbmwh3j7k3FY+jvhZA0gTgO8B/mNnRZvaEmb0elGgqvinqG2FjU1koIosJeIaIXfFYxXeAmyR9IKlSBrRm10NcfwHvizxXFEV48Tt8BXYHXP/nAXMkbVsSbQCPAw9n+HuupHZX0NMeoVM/GU46AICknfEV+U4xxHlRNS+gOD8exgft1t82ZREWhwK2OrWdhlpsdW45SFoH+BU+2E/Bz6wZxFOn9gRVjZlxCItJ38WzRE00s5cytJ0GRfrER1mxP3wyXP9pSbTlRWob30W2eWxUVXWKoIjMjwOOxA91H4un/z0C9670DVL22Y56Ij/7cVf8W2huxuZ7Nv6b2bP4otLbuIf8RMJC88qRBwclfRM/A+Zy4HpJm8RszlkSytUlje6yYS9KzHWE3NJSdDLXW5jZU5LmA+OiGzcT0BokVsiSEGblnwXmmVmL+Z8J5ZAUeGb2uqS7cAXaHngiz2+IQRFZfKr9f0kH4Iq0G55VrSgeDuUWHe63smR0io/MiiK8uDpy6SRJ/wDsQkkfsma2ZxnvyYIOetoLxPYThpEOwLIMLZcChwDfLImmFqrmBRTkB/BOnBe+18hhq7PYaajeVheRw7HAQjM7sO3akyXQ1BUVjJlEnhkEzsEXUPfsUch1kXFihbAcScfjC1OJnrBeIq+N7yDbPDaqqjpFUKT/7YovdLS+iRZIugb4WEm0lYpOfTaFnnTbvJ+Eno3/8sOGf4Av4nwVeMTM3oaYPTBm9mr4mLsSPxF3q5hnXsDj0lahS3pDSd1O+qwaHwplWgHtEsroILY7Psttd8WtGspO6Tdb1/+Ysu2uKFkWa+E6UdaKV+vjYFK0bUlr4ROlN/DQtcIoixeSRkv6Iu5qva0M2mpEnJ72Ap36yXDTgQuBK8xsXhn0RFApL6AUfoyR9KykJyX9q6RNy6ItBbLY6ix2Giq21QXlMADcIekySS9IukfSUWGvahXo5Zi5DPKkCucA9+Cel554mEocJ1bBw4p+ZD1MRZ8CRWx8VLZ5bFRVdXKjoMxvA/aQNDbc3xqPWMnqpagScX22o56EvTEH4Jv3f5ijvV6O/61MZtPN7IHW5AWSz4Fpbd7vFE40M5TntwQbIW6UpL1wT04pkLShpLFhlbTTM2Plh5RFr68kP+BnPeA2M/tD272/jAubkrQJHhsNQw802xsXdvvK/S9DeZikD0fetRcurDeJfBRLmi1pqaSDOv2uLpgZyqKymIkPHolGI40cAMzsceAG3N0XjQ8WPlu/2MyWrHCjGD9mhjIzLyRtE2I538JD6wbM7L5uDablR02I09NcyNNPhpMOSDoUP7zs5KwNptGBmngB+fvEnfigNhkPqVsPuD1OByLvS9UfstrqEu001GOrZ4YyqxzG4PryFPApPLxqBinOqRgGY2ar3snhN92Ne166enrqGifaMIBvPp6dpsEejhNJfM0k2zw2qqo6ge46ZD4D98rPl/Q2vj/2x2Z2frcGeyXzPH2W5G+BffGDIuda/Ob9Ssf/CN4fygXRG0lplFuznE6TnFnAtsCXgfsk3YC7gd4GNsazIWwEXJbQRlacTsipTWejMRk4Q9KtuGt3EbA+frrpGHyj5qGROvsCx0u6GXfNv4an05yCp92bC5wZqTOAK8jzbdeuAG4CPgE8KOmq0N5WeMjCKOB4M1sUeVeLx3lz3ReWhaQz8Bn6+BTuwzRyaOEI/CNglqQ98QOkPoaHKT4CnBRTpwg/ivDiYWAcPijtA1wsaYJ1T7mYhR+FIGmA5dlUWgZsF3m+eYAXzeyYtioDDNXTvO/K009gGOiApC3xDd3jzSzPqntaHaiaF5CzT4Rw3xbuk5/O/AR+ENzZCe2l5UVWW12WnYZ6bHVe27QScLeZtWLufytpC/yDIHo4XBT9PmYi6UvAKfhq8S+BaRoaXr7Ahp6jUdc40cIheLamtHsVU/WLMm08+WSbx0ZVVacOmX8e+HtgP3zyMg74rqQnzaybt6JXMs8j1wE660lr8/6FCb+lyvG/HR1lnjSBSXSJBpfpIZKuxBm1E76hbTGedeF2fKPQf3YhrmzchAthN2A7/GN0Cc6oS4BZMZsCb8YzcW2Pu8LWAF4G/jvUuaTdRSzpo7iin9P+EjN7V9Kn8YHl7/AY6j/BQ7LmhrZviKF5G1wZcm2yLioLSWfhrvCJZvZYHhoSaHtc0o74ADUZz6KzEDcm6rBBMzc/ivAifLi2fv+vg5wHga9kpaOHGIcbxHaMCX/gq7THQGc9zfOugEz9pIVhogO7AOsC97d9PI0Gdpd0OLCGmb2VlZYY2irlRWizFFttZkvksdWbJz2XAVltdSl2OvyWym11ATksxD+c2jEf31RcBmobMwP+PJSjcXsbh18w9AOwlnEClq06fwJf1S4b4yjPxmeWbR4bVVUd6pH5WcCZZtbyzNwX5H8i+cKt4jCObGNxJrkm6YmkrfDJW7fN+1WO/3EY8u5RS5fGz1Pkm9NOB/Y2z2xQOiQtJUMa5X6BpNPwDBRjzKzQZkp5hplFwFlWYnrlDO3PAv4Wn7zMr7r9GHrWoUZ+RGiZBzxn5aQyrhxl6mmVqEMHQpsbRS5fhKdsPA14oI449z7rD6vhK2/fN7NT6qQlDcrW/7pkIekyYGMzG9927VvAPma2dVV0FMFIkUVb+9PxDcUbW5dUuj2mY1ja+Dyosf8tAszMzmu7dgLwFTPbrCo6imA464mkq/HDhTeIeo+SPDCPhvIQSb8GnjWzd0sgZk08zryFTSWNA14ys6eLvr8iTAXuLUkRxuMuzKSQjJ5A0vm452UAeKktpnKxmS2ump6AWvghaQa++vIMnsxgP3yz35Qq6SgZZepplahcB8zsZXw1aRkkLcHtUp2nNtdpH87EsxE+jcdUn4yvuv24alpyomz9r0sW5wC3SToJ+Dd8BXQavgI8XDBSZNHa5H0wvg+itslLwHC18XlQl8yvwUOnnsQ9odvjx41kSS1eN4adnkhaFfcuTQBeBYYczJnkgVkduAs/CbeF7c3snoJETSAmdSVuDA4q8u4G2RA8YLG3zGx6lbTUjRBrOhGPP30FT518hpV/AnSDYQJJtwD3W4qDLEciJF2O74tbFx887gBO7gdP7XsN8lSip+EhHE/jm2bPrcMr+F6HpEnA9cCWZlZmyvMGfQh5tqxv4ZOA9fDwp8uBUyz+NPsGBaGhhyhPt6GHaHaewISXrIqnMNsKTyl7odVwJkCDBg0aNGjQoEGDBg1GNoKj4+N4yODtnRwn/w8FyZdc/s0UKwAAAABJRU5ErkJggg==", - "text/latex": [ - "$\\displaystyle \\left\\{ C_{1} : \\frac{35}{8}, \\ C_{2} : 0, \\ C_{3} : - \\frac{1}{150}, \\ C_{4} : 0, \\ C_{5} : \\frac{35}{8}, \\ C_{6} : \\frac{35}{2}, \\ C_{7} : \\frac{1}{3000}, \\ C_{8} : \\frac{13}{750}\\right\\}$" - ], - "text/plain": [ - "⎧ 13 ⎫\n", - "⎨C₁: 35/8, C₂: 0, C₃: -1/150, C₄: 0, C₅: 35/8, C₆: 35/2, C₇: 1/3000, C₈: ───⎬\n", - "⎩ 750⎭" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "'\\\\left\\\\{ C_{1} : \\\\frac{35}{8}, \\\\ C_{2} : 0, \\\\ C_{3} : - \\\\frac{1}{150}, \\\\ C_{4} : 0, \\\\ C_{5} : \\\\frac{35}{8}, \\\\ C_{6} : \\\\frac{35}{2}, \\\\ C_{7} : \\\\frac{1}{3000}, \\\\ C_{8} : \\\\frac{13}{750}\\\\right\\\\}'" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sol = sym.solve([eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8],(C_1,C_2,C_3,C_4,C_5,C_6,C_7,C_8))\n", - "display(sol)\n", - "sym.latex(sol)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "tags": [ - "remove-cell" - ] - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2025-07-02T16:58:07.214407\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.10.3, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "M_numpy = sym.lambdify(x, M_BC.subs(sol))\n", - "x_numpy = np.linspace(0,4,100)\n", - "plt.figure()\n", - "plt.plot(x_numpy,M_numpy(x_numpy))\n", - "plt.xlabel('$x$')\n", - "plt.ylabel('$M_{BC}$');\n", - "ax = plt.gca()\n", - "ax.spines['right'].set_color('none')\n", - "ax.spines['top'].set_color('none')\n", - "ax.spines['bottom'].set_position('zero')\n", - "ax.spines['left'].set_position('zero')\n", - "ax.invert_yaxis()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "tags": [ - "remove-cell" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\\left[\\begin{matrix}0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\\\0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & - \\frac{4}{1875} & - \\frac{1}{625} & -4 & 1\\\\0 & 0 & 0 & 0 & \\frac{1}{625} & \\frac{1}{1250} & 1 & 0\\\\- \\frac{4}{1875} & - \\frac{1}{625} & -4 & 1 & 0 & 0 & 0 & -1\\\\\\frac{1}{625} & \\frac{1}{1250} & 1 & 0 & 0 & 0 & -1 & 0\\\\4 & 1 & 0 & 0 & 0 & -1 & 0 & 0\\\\1 & 0 & 0 & 0 & -1 & 0 & 0 & 0\\end{matrix}\\right]\n", - "\\left[\\begin{matrix}0\\\\0\\\\- \\frac{8}{375}\\\\\\frac{8}{375}\\\\0\\\\0\\\\0\\\\0\\end{matrix}\\right]\n" - ] - } - ], - "source": [ - "A,b = sym.linear_eq_to_matrix((eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8), (C_1,C_2,C_3,C_4,C_5,C_6,C_7,C_8))\n", - "print(sym.latex(A))\n", - "print(sym.latex(b))\n", - "A = np.array(A).astype(np.float64)\n", - "b = np.array(b).astype(np.float64)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "A = np.array([\n", - " [0, 0, 0, 1, 0, 0, 0, 0],\n", - " [0, 1, 0, 0, 0, 0, 0, 0],\n", - " [0, 0, 0, 0, -4/1875, -1/625, -4, 1],\n", - " [0, 0, 0, 0, 1/625, 1/1250, 1, 0],\n", - " [-4/1875, -1/625, -4, 1, 0, 0, 0, -1],\n", - " [1/625, 1/1250, 1, 0, 0, 0, -1, 0],\n", - " [4, 1, 0, 0, 0, -1, 0, 0],\n", - " [1, 0, 0, 0, -1, 0, 0, 0]\n", - "])\n", - "\n", - "b = np.array([\n", - " 0,\n", - " 0,\n", - " -8/375,\n", - " 8/375,\n", - " 0,\n", - " 0,\n", - " 0,\n", - " 0\n", - "])" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[ 4.37500000e+00],\n", - " [ 0.00000000e+00],\n", - " [-6.66666667e-03],\n", - " [ 0.00000000e+00],\n", - " [ 4.37500000e+00],\n", - " [ 1.75000000e+01],\n", - " [ 3.33333333e-04],\n", - " [ 1.73333333e-02]])" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.linalg.solve(A,b)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "tags": [ - "remove-cell" - ] - }, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}4.375\\\\0\\\\-0.00666666666666667\\\\0\\\\4.375\\\\17.5\\\\0.000333333333333334\\\\0.0173333333333333\\end{matrix}\\right]$" - ], - "text/plain": [ - "Matrix([\n", - "[ 4.375],\n", - "[ 0],\n", - "[-0.00666666666666667],\n", - "[ 0],\n", - "[ 4.375],\n", - "[ 17.5],\n", - "[0.000333333333333334],\n", - "[ 0.0173333333333333]])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\\left[\\begin{matrix}4.375\\\\0\\\\-0.00666666666666667\\\\0\\\\4.375\\\\17.5\\\\0.000333333333333334\\\\0.0173333333333333\\end{matrix}\\right]\n", - "\\left[\\begin{matrix}1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 4.375\\\\0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & -0.00666666666666667\\\\0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 4.375\\\\0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 17.5\\\\0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0.000333333333333334\\\\0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0.0173333333333333\\end{matrix}\\right]\n" - ] - } - ], - "source": [ - "import sympy as sym\n", - "\n", - "A_sym = sym.Matrix(A)\n", - "b_sym = sym.Matrix(b)\n", - "\n", - "sol_sym = A_sym.LUsolve(b_sym)\n", - "\n", - "display(sol_sym)\n", - "\n", - "print(sym.latex(sol_sym))\n", - "\n", - "identity = sym.eye(sol_sym.rows)\n", - "rr_augmented = identity.row_join(sol_sym)\n", - "print(sym.latex(rr_augmented))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "C_1 = 35/8 ≈ 4.37500000000000\n", - "C_2 = 0 ≈ 0\n", - "C_3 = -1/150 ≈ -0.00666666666666667\n", - "C_4 = 0 ≈ 0\n", - "C_5 = 35/8 ≈ 4.37500000000000\n", - "C_6 = 35/2 ≈ 17.5000000000000\n", - "C_7 = 1/3000 ≈ 0.000333333333333333\n", - "C_8 = 13/750 ≈ 0.0173333333333333\n" - ] - } - ], - "source": [ - "import sympy as sym\n", - "sym.init_printing()\n", - "\n", - "x = sym.symbols('x')\n", - "\n", - "q = 10 \n", - "EI = 5000 \n", - "EA = 20000 \n", - "F = 150\n", - "\n", - "q_AC = 0\n", - "q_BC = q\n", - "\n", - "C_1, C_2, C_3, C_4 = sym.symbols('C_1 C_2 C_3 C_4')\n", - "C_5, C_6, C_7, C_8 = sym.symbols('C_5 C_6 C_7 C_8')\n", - "\n", - "V_AC = -sym.integrate(q_AC, x) + C_1\n", - "M_AC = sym.integrate(V_AC, x) + C_2\n", - "kappa_AC = M_AC/EI\n", - "phi_AC = sym.integrate(kappa_AC, x) + C_3\n", - "w_AC = -sym.integrate(phi_AC, x) + C_4\n", - "\n", - "V_BC = -sym.integrate(q_BC, x) + C_5\n", - "M_BC = sym.integrate(V_BC, x) + C_6\n", - "kappa_BC = M_BC/EI\n", - "phi_BC = sym.integrate(kappa_BC, x) + C_7\n", - "w_BC = -sym.integrate(phi_BC, x) + C_8\n", - "\n", - "eq1 = sym.Eq(w_AC.subs(x,0),0)\n", - "eq2 = sym.Eq(M_AC.subs(x,0),0)\n", - "eq3 = sym.Eq(w_BC.subs(x,4),0)\n", - "eq4 = sym.Eq(phi_BC.subs(x,4),0)\n", - "eq5 = sym.Eq(w_AC.subs(x,4)-w_BC.subs(x,0),0)\n", - "eq6 = sym.Eq(phi_AC.subs(x,4)-phi_BC.subs(x,0),0)\n", - "eq7 = sym.Eq(M_AC.subs(x,4) - M_BC.subs(x,0),0)\n", - "eq8 = sym.Eq(V_AC.subs(x,4) - V_BC.subs(x,0),0)\n", - "\n", - "sol = sym.solve([eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8],(C_1,C_2,C_3,C_4,C_5,C_6,C_7,C_8))\n", - "for k, v in sol.items():\n", - " print(f\"{k} = {v} ≈ {v.evalf()}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "::::::{prf:example-end}\n", - "::::::" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Meer voorbeelden\n", - "Het voorbeeld in hoofdstuk 2.7.3 van het boek Mechanica, spanningen, vervormingen en verplaatsingen {cite:p}`Hartsuijker2013` richt zich op extensie. Voorbeeld 3b in hoofdstuk 8.2 is een buigingsprobleem.\n", - "\n", - "## Instructies in collegevorm\n", - "\n", - "Dit onderwerp is [in les 3](https://collegerama.tudelft.nl/Mediasite/Channel/public-ceg-ctb2210/watch/757766716fcb45718fca678dadaa396d1d?sortBy=most-recent) gepresenteerd in collegevorm van 0:40:00 tot 0:48:30\n", - "\n", - "## Opgaves\n", - "\n", - "- Opgaves 2.48 en 2.50 in hoofdstuk 2.9 van het boek Mechanica: spanningen, vervormingen en verplaatsingen {cite:p}`Hartsuijker2013`, antwoorden zijn beschikbaar op [deze website](https://icozct.tudelft.nl/TUD_CT/boekantwoorden/vol2/Chapter2/).\n", - "- Opgaves 8.7, 8.10, 8.11 in hoofdstuk 8.6 van het boek Mechanica: spanningen, vervormingen en verplaatsingen {cite:p}`Hartsuijker2013`, antwoorden zijn beschikbaar op [deze website](https://icozct.tudelft.nl/TUD_CT/boekantwoorden/vol2/Chapter8/)." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "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.12.11" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/book/intro.md b/book/intro.md index fae52ac..165c9f7 100644 --- a/book/intro.md +++ b/book/intro.md @@ -1,210 +1,5 @@ ---- -file_format: mystnb -kernelspec: - name: python3 ---- - # TeachBooks Manual -## Nesting inside of a start-directive - -### Different directives - -::::{prf:theorem-start} The parent theorem -:label: parent-theorem-label - -This is a parent theorem. This text is inside the parent theorem. - -:::{prf:axiom-start} A child axiom -:label: child-axiom-label - -This is a child axiom. This text is inside the child directive. -::: - -This is text after the child-start, before the child-end, inside the parent theorem. - -:::{prf:axiom-end} -Text inside the end. This text will not be rendered. -::: - -Finally some text after the entire child, inside the theorem start. - -:::: - -Some text after the entire parent theorem start, but before the parent theorem end. - -:::{prf:theorem-end} -::: - -### Same directives - -::::{prf:theorem-start} The parent theorem -:label: parent-theorem-label2 - -This is a parent theorem. This text is inside the parent theorem. - -:::{prf:theorem-start} A child theorem -:label: child-theorem-label - -This is a child theorem. This text is inside the child directive. -::: - -This is text after the child-start, before the child-end, inside the parent theorem. - -:::{prf:theorem-end} -::: - -Finally some text after the entire child, inside the theorem start. - -:::: - -Some text after the entire parent theorem start, but before the parent theorem end. - -:::{prf:theorem-end} -::: - -## Nesting outside of a start-directive - -### Different directives - -::::{prf:theorem-start} The parent theorem -:label: parent-theorem-label3 - -This is a parent theorem. This text is inside the parent theorem. -:::: - -Some text outside the parent theorem start, before the child start directive. - -:::{exercise-start} A child exercise -:label: child-exercise-label2 - -This is a child exercise. This text is inside the child directive. -::: - -This is text after the child-start, before the child-end. - -:::{exercise-end} -::: - -Finally some text after the entire child, outside the theorem start, before the end. - -:::{prf:theorem-end} -::: - -:::{exercise} This is an exercise outside any theorem. -:label: exercise-outside-theorem - -Solve this exercise. -::: - -### Same directives - -::::{prf:theorem-start} The parent theorem -:label: parent-theorem-label4 - -This is a parent theorem. This text is inside the parent theorem. -:::: - -Some text outside the parent theorem start, before the child start directive. - -:::{prf:theorem-start} A child theorem -:label: child-theorem-label5 - -This is a child theorem. This text is inside the child directive. -::: - -This is text after the child-start, before the child-end. - -:::{prf:theorem-end} -::: - -Finally some text after the entire child, outside the theorem start, before the end. - -:::{prf:theorem-end} -::: - -### Nested exercise directives - -:::{exercise-start} An outer exercise with an inner exercise between start and end -:label: outer-exercise-label -This is an outer exercise. This text is inside the outer exercise. -::: - -:::{exercise-start} An inner exercise -:label: inner-exercise-label -This is an inner exercise. This text is inside the inner exercise. -::: -This is text after the inner exercise start, before the inner exercise end. - -:::{exercise-end} -::: - -Finally some text after the entire inner exercise, inside the outer exercise. - -:::{exercise-end} -::: - -## Examples with code - -### Block directive with also a figure - -:::{prf:theorem-start} A title -:label: theorem-label - -This is a theorem. This text is inside the directive. -::: - -Now some extra text that should come inside the theorem. - -:::{figure} images/sphinx-logo.svg -:alt: Sphinx logo -:width: 200px -:align: center - -Sphinx is a great tool for documentation! This figure should be inside the theorem. -::: - -```{code-cell} ipython3 -a = "This is some" -b = "Python code" -c = "that should be inside the theorem." -print(f"{a} {b} {c}") -``` - -:::{prf:theorem-end} -::: - -### Figure directive with nothing with also another figure - -:::{figure-start} images/nothing.svg -:name: figure-label -:alt: Nothing -:align: center - -This is a figure. This text is inside the caption. -::: - -```{code-cell} ipython3 -a = "This is some" -b = "Python code" -c = "that should be inside the figure," -d = "above the caption." -print(f"{a} {b} {c} {d}") -``` - -Now some extra text that should come inside the figure, above the caption. - -:::{figure} images/sphinx-logo.svg -:alt: Sphinx logo -:width: 200px -:align: center - -Sphinx is a great tool for documentation! This figure should be inside the parent figure, above the parent caption. -::: - -:::{figure-end} -::: - This manual is primarily designed for and by teachers for use in education, but should be a useful resource for anyone interested in creating and collaborating on a TeachBook: a Jupyter book v1 v1 using the Sphinx logo Sphinx backend with additional editing tools and book features. Our aim is to provide a simple way to start book-making for new users (it only takes 10 clicks!), ease the editing process for anyone, and provide additional features developed for education-purposes. We hope you find this resource useful and refer back to it often. TeachBooks originated at Delft University of Technology in the Netherlands, and some of the material in this Manual reflects tools and resources specific to TU Delft. With the exception of a few tools for which we have educational licenses at Delft, everything in this Manual is open source. Despite this, we are happy to grow our open source community beyond Delft and welcome contributions from all users. diff --git a/book/lesoefeningen.ipynb b/book/lesoefeningen.ipynb deleted file mode 100644 index b6e6d48..0000000 --- a/book/lesoefeningen.ipynb +++ /dev/null @@ -1,316 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "44f13f99", - "metadata": {}, - "source": [ - "````{margin}\n", - "```{attributiongrey} Bronvermelding\n", - ":class: attribution\n", - "\n", - "Deze oefening is aangepast van https://oit.tudelft.nl/CT1000/2024/week_3/session_1/intro.html\n", - "\n", - "% Figures from https://github.com/TUDelft-books/CT1000/blob/2025/book/week_3/session_1/intro_data/Tekening1.vsdx\n", - "\n", - "```\n", - "```` \n", - "\n", - "# Begeleide oefening 1_oud\n", - "\n", - "Gegeven is de volgende constructie:\n", - "\n", - "```{figure} lesoefeningen_data/figure2.svg\n", - "---\n", - "align: center\n", - "---\n", - "Constructie, $EI = 6400 \\ \\rm{kNm^2}$\n", - "```\n", - "\n", - ":::::{exercise}\n", - ":label: ODE_3_1\n", - ":nonumber: true\n", - "\n", - "Bepaal de segmenten en teken de vrijlichaamsschema's.\n", - "\n", - "```{h5p} https://tudelft.h5p.com/content/1292630673009985967/embed\n", - "```\n", - "\n", - ":::::\n", - "\n", - "% solution_start\n", - "\n", - "::::{admonition} Solution\n", - ":class: solution, dropdown\n", - "\n", - "$q_z = -12 \\cdot x + 0$\n", - "\n", - "::::\n", - "\n", - "% solution_end\n", - "\n", - ":::::{exercise}\n", - ":label: ODE_3_2\n", - ":nonumber: true\n", - "\n", - "Bepaal de relaties van de krachtsgrootheden en verplaatsingen.\n", - "\n", - "```{h5p} https://tudelft.h5p.com/content/1292630677998825487/embed\n", - "```\n", - "\n", - ":::::\n", - "\n", - "% solution_start\n", - "\n", - "::::{admonition} Solution\n", - ":class: solution, dropdown\n", - "\n", - "- $ w \\left( 0\\right) = 0 $\n", - "- $ M \\left( 0\\right) = 0$\n", - "- $ w \\left( 8\\right) = 0$\n", - "- $ \\varphi \\left( 8 \\right) = 0$\n", - "\n", - "::::\n", - "\n", - "% solution_end\n", - "\n", - ":::::{exercise-start}\n", - ":label: ODE_3_3\n", - ":nonumber: true\n", - "\n", - "Los de integratieconstanten op. Je kan gebruik maken van de volgende code cellen. (Klik op {fa}`rocket` --> {guilabel}`Live Code` om live python code te activeren op deze pagina.)\n", - "\n", - "```{h5p} https://tudelft.h5p.com/content/1292630704310133517/embed\n", - "```\n", - "\n", - ":::::\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "91dc34be", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "A = np.array([\n", - " [ , , , ],\n", - " [ , , , ],\n", - " [ , , , ],\n", - " [ , , , ],\n", - "])\n", - "\n", - "b = np.array([\n", - " ,\n", - " ,\n", - " ,\n", - " ,\n", - "])\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ce6f1792", - "metadata": {}, - "outputs": [], - "source": [ - "np.linalg.solve(A,b)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9e466305", - "metadata": {}, - "outputs": [], - "source": [ - "import sympy as sym\n", - "sym.init_printing()\n", - "\n", - "x = sym.symbols('x')\n", - "\n", - "q = \n", - "EI = 6400\n", - "\n", - "C_1, C_2, C_3, C_4 = sym.symbols('C_1 C_2 C_3 C_4')\n", - "\n", - "V = -sym.integrate(q, x) + C_1\n", - "M = sym.integrate(V, x) + C_2\n", - "kappa = M/EI\n", - "phi = sym.integrate(kappa, x) + C_3\n", - "w = -sym.integrate(phi, x) + C_4\n", - "\n", - "eq1 = sym.Eq(w.subs(x,0), )\n", - "eq2 = sym.Eq( .subs(x,0), )\n", - "eq3 = sym.Eq(w.subs(x,8), )\n", - "eq4 = sym.Eq( .subs(x,8),0)\n", - "\n", - "sol = sym.solve([eq1,eq2,eq3,eq4],(C_1,C_2,C_3,C_4))\n", - "for k, v in sol.items():\n", - " print(f\"{k} = {v} ≈ {v.evalf()}\")" - ] - }, - { - "cell_type": "markdown", - "id": "94270e4f", - "metadata": {}, - "source": [ - ":::::{exercise-end}\n", - ":::::\n", - "\n", - "% solution_start\n", - "\n", - "::::{solution-start} ODE_3_3\n", - ":class: dropdown\n", - "::::\n", - "\n", - "$ w = - \\cfrac{x^{5}}{10} + \\cfrac{64 x^{3}}{5} - \\cfrac{2048 x}{5} = - 0.1 x^{5} + 12.8 x^{3} - 409.6 x $\n", - "% solution_end" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "f46e4efd", - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "A = np.array([\n", - " [ 0 , 0 , 0,1],\n", - " [ 0 , 1 , 0,0],\n", - " [-1/75 ,-1/200,-8,1],\n", - " [ 1/200, 1/800, 1,0],\n", - "])\n", - "\n", - "b = np.array([\n", - " 0,\n", - " 0,\n", - " 64/125,\n", - " -8/25,\n", - "])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "300cd851", - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([-7.68e+01, 0.00e+00, 6.40e-02, 0.00e+00])" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.linalg.solve(A,b)" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "96516034", - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/latex": [ - "$\\displaystyle - 0.1 x^{5} + 12.8 x^{3} - 409.6 x$" - ], - "text/plain": [ - " 5 3 \n", - "- 0.1⋅x + 12.8⋅x - 409.6⋅x" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import sympy as sym\n", - "sym.init_printing()\n", - "\n", - "x = sym.symbols('x')\n", - "\n", - "q = -12 * x\n", - "EI = 6400\n", - "\n", - "C_1, C_2, C_3, C_4 = sym.symbols('C_1 C_2 C_3 C_4')\n", - "\n", - "V = -sym.integrate(q, x) + C_1\n", - "M = sym.integrate(V, x) + C_2\n", - "kappa = M/EI\n", - "phi = sym.integrate(kappa, x) + C_3\n", - "w = -sym.integrate(phi, x) + C_4\n", - "\n", - "eq1 = sym.Eq(w.subs(x,0),0)\n", - "eq2 = sym.Eq(M.subs(x,0),0)\n", - "eq3 = sym.Eq(w.subs(x,8),0)\n", - "eq4 = sym.Eq(phi.subs(x,8),0)\n", - "\n", - "sol = sym.solve([eq1,eq2,eq3,eq4],(C_1,C_2,C_3,C_4))\n", - "\n", - "display((w.subs(sol)*EI).evalf())\n", - "\n", - "A,b = sym.linear_eq_to_matrix((eq1,eq2,eq3,eq4), (C_1,C_2,C_3,C_4))" - ] - }, - { - "cell_type": "markdown", - "id": "b3a4c9d4", - "metadata": {}, - "source": [ - "% solution_start\n", - "\n", - "::::{solution-end}\n", - "::::\n", - "\n", - "% solution_end" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "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.12.11" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -}