{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "anaconda-cloud": {}, "hide_input": false, "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.7.4" }, "name": "linalg.ipynb", "colab": { "name": "kl_py_okt_09.ipynb", "provenance": [], "collapsed_sections": [], "include_colab_link": true } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "metadata": { "id": "Vo-RY7EqrGKd", "colab_type": "text" }, "source": [ "

\n", " \n", " \n", "

\n", "\n", "\n", "

\n", "\n", "\n", "\n", "# Python alapok 9\n", "\n", "\n", "\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": { "id": "-BgrMLM8rGKf", "colab_type": "text" }, "source": [ "# Még több scipy ...\n", "\n", "Az alábbi notebookban megismerkedünk két témával, melyek annak ellenére, hogy magukban is fontos jelentőséggel bírnak, kulcsfontosságú szerepet töltenek be más problémák numerikus megoldásában. A numerikus integrálás témakörében megvizsgálunk néhány egyszerű integrált a `scipy` csomag `quad` függvényével. A második kérdéskör, a differenciálegyenletek megoldása számos fizikai probléma vizsgálatában nyújthat segítséget. Gondoljunk csak arra, hogy a klasszikus mechanika [Newton törvényei](https://hu.wikipedia.org/wiki/Newton_t%C3%B6rv%C3%A9nyei), az elektrodinamika [Maxwell-egyenletei](https://hu.wikipedia.org/wiki/Maxwell-egyenletek), a kvantummechanika [Schrödinger-egyenlete](https://hu.wikipedia.org/wiki/Schr%C3%B6dinger-egyenlet), illetve az általános relativitáselmélet [Einstein-egyenletei](https://hu.wikipedia.org/wiki/%C3%81ltal%C3%A1nos_relativit%C3%A1selm%C3%A9let#Az_elm.C3.A9let_l.C3.A9nyege) mind-4mind differenciálegyenletek!\n" ] }, { "cell_type": "markdown", "metadata": { "id": "1yWy664trGKg", "colab_type": "text" }, "source": [ "# Numerikus integrálás\n", "\n", "Sok gyakorlati alkalmazásban előkerül egy fügvény integráljának, azaz a függvény görbéje alatti területnek a meghatározása. Sok analitikus függvény integrálját zárt alakban meg lehet határozni. A gyakorlatban viszont sokszor nem ismert a függvény analitikus alakja. Gondoljunk itt például egy zajos mérésre. Ilyen esetben a függvény integrálját a rendelkezésre áló mérési pontok $x_0,x_1,x_2,…x_j,…$ és mért értékek $f_0,f_1,f_2,…f_j,…$ alapján kell valahogy meghatároznunk. Ekkor az integrál értékét rendszerint egy véges összegzéssel határozhatjuk meg, ahol az összeadandó értékek a mérési pontok és a mért mennyiségek valamilyen függvényei. Az alábbiakban a `scipy` csomag `quad` függvényével fogunk megismerkedni, mely függvények numerikus integrálására alkalmas. " ] }, { "cell_type": "markdown", "metadata": { "id": "9mOeW-ktrGKg", "colab_type": "text" }, "source": [ "## 1D integrál" ] }, { "cell_type": "code", "metadata": { "id": "2xToMbfdrGKh", "colab_type": "code", "colab": {}, "outputId": "bdeaa4cc-9d29-4761-b35c-636f76a3fc1c" }, "source": [ "# a szokásos rutinok betöltése\n", "%pylab inline\n", "from scipy.integrate import * # az integráló rutinok betöltése" ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "LJyNk07ErGKl", "colab_type": "text" }, "source": [ "Vizsgáljuk meg az alábbi egyszerű integrált $$ \\int_{-1}^1 (x^2+3x +2)\\mathrm{d}x .$$ \n", "Ennek az értéke némi [algebrával](http://www.wolframalpha.com/input/?i=%5Cint_%7B-1%7D%5E1+%28x%5E2%2B3x+%2B2%29) $14/3\\approx 4.66666$ Vajon ugyen ezt kapjuk-e a `quad` fügvénnyel ?" ] }, { "cell_type": "markdown", "metadata": { "id": "gWxeAIqZrGKl", "colab_type": "text" }, "source": [ "Először definiáljuk az integrálandó függvényt." ] }, { "cell_type": "code", "metadata": { "id": "Ah8AUGsJrGKm", "colab_type": "code", "colab": {} }, "source": [ "def f(x):\n", " return (x**2+3*x+2)" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "m38naHrhrGKo", "colab_type": "text" }, "source": [ "Most már meghívhatjuk a `quad`-ot. Az első változó az integrálandó függvény, a második és a harmadik pedig az integrálási határok. A kimenet két szám. Az első az integrál becsült értéke, a második az algoritmus becsült hibája." ] }, { "cell_type": "code", "metadata": { "id": "DhEqxSEJrGKp", "colab_type": "code", "colab": {}, "outputId": "b7e8d9fe-b9ba-42a9-ab6a-423b66bc084b" }, "source": [ "quad(f,-1,1)" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(4.666666666666666, 5.1810407815840634e-14)" ] }, "metadata": { "tags": [] }, "execution_count": 3 } ] }, { "cell_type": "markdown", "metadata": { "id": "l4_3mAumrGKr", "colab_type": "text" }, "source": [ "Amint az eredmény is mutatja, ez az analitikus számítás és a numerikus integrál megegyeznek. \n", "\n", "Előfordulhat, hogy az integrálási határok végtelenek. Például vizsgáljuk meg a Gauss-görbe alatti területet:\n", "$$ \\int_{-\\infty}^\\infty \\mathrm{e}^{-x^2}\\mathrm{d}x =\\sqrt{\\pi}$$\n", "\n" ] }, { "cell_type": "code", "metadata": { "id": "7EZlbc8CrGKr", "colab_type": "code", "colab": {} }, "source": [ "# az integrandus definiálása\n", "def gauss(x):\n", " return exp(-x**2)" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "X2Vk9QhPrGKt", "colab_type": "text" }, "source": [ "A `quad` függvénynek a végtelen integrálási határokat az `inf` jelöléssel adhatjuk meg." ] }, { "cell_type": "code", "metadata": { "id": "jnWc2EaDrGKu", "colab_type": "code", "colab": {}, "outputId": "f8a5cd11-8a8b-4a50-9857-c5d63d14fd53" }, "source": [ "quad(gauss,-inf,inf)" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(1.7724538509055159, 1.4202636780944923e-08)" ] }, "metadata": { "tags": [] }, "execution_count": 5 } ] }, { "cell_type": "code", "metadata": { "id": "RjY20JOvrGKv", "colab_type": "code", "colab": {}, "outputId": "14eb5ae3-f79b-435f-d28f-b3c947a98ee9" }, "source": [ "sqrt(pi)" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "1.7724538509055159" ] }, "metadata": { "tags": [] }, "execution_count": 6 } ] }, { "cell_type": "markdown", "metadata": { "id": "1dVZt3hMrGKy", "colab_type": "text" }, "source": [ "A fent vizsgált két példával különösebb gond nélkül meg tudott birkózni a `quad`. Előfordul azonban, hogy az integrálás problémákba ütközik. Erre egy jó példa, ha az integrandus szingulárissá válik a integrálási tartomány egy pontjában. Ez nem feltétlenül jelenti azt, hogy az integrál nem létezik! Az ilyen pontokra külön felhívhatjuk a `quad` függvény figyelmét a `points` kulcsszó segítségével.\n", "\n", "Vizsgáljuk meg a $$h(x)=\\sqrt[3]{\\frac{1}{(x-1)^2}}$$ függvényt mely a $x=1$ esetén divergál:" ] }, { "cell_type": "code", "metadata": { "id": "N5LNp7jRrGKy", "colab_type": "code", "colab": {} }, "source": [ "def h(x):\n", " return ((x-1.0)**(-2))**(1.0/3.0)" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "VsB38x-4rGK0", "colab_type": "code", "colab": {}, "outputId": "65a11f72-34f4-40bc-b42a-94aea9a787a4" }, "source": [ "quad(h,0,2)" ], "execution_count": 0, "outputs": [ { "output_type": "error", "ename": "ZeroDivisionError", "evalue": "0.0 cannot be raised to a negative power", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mquad\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mh\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;32m/opt/conda/lib/python3.5/site-packages/scipy/integrate/quadpack.py\u001b[0m in \u001b[0;36mquad\u001b[1;34m(func, a, b, args, full_output, epsabs, epsrel, limit, points, weight, wvar, wopts, maxp1, limlst)\u001b[0m\n\u001b[0;32m 314\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mweight\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 315\u001b[0m retval = _quad(func, a, b, args, full_output, epsabs, epsrel, limit,\n\u001b[1;32m--> 316\u001b[1;33m points)\n\u001b[0m\u001b[0;32m 317\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 318\u001b[0m retval = _quad_weight(func, a, b, args, full_output, epsabs, epsrel,\n", "\u001b[1;32m/opt/conda/lib/python3.5/site-packages/scipy/integrate/quadpack.py\u001b[0m in \u001b[0;36m_quad\u001b[1;34m(func, a, b, args, full_output, epsabs, epsrel, limit, points)\u001b[0m\n\u001b[0;32m 379\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mpoints\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 380\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0minfbounds\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 381\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0m_quadpack\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_qagse\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mb\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mfull_output\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mepsabs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mepsrel\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mlimit\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 382\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 383\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0m_quadpack\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_qagie\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mbound\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0minfbounds\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mfull_output\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mepsabs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mepsrel\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mlimit\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m\u001b[0m in \u001b[0;36mh\u001b[1;34m(x)\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mh\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1.0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m**\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m**\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1.0\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m3.0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mZeroDivisionError\u001b[0m: 0.0 cannot be raised to a negative power" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "8BpRq0wtrGK2", "colab_type": "text" }, "source": [ "A `quad` bizony nehézségekbe ütközik, ha a 0 reciprokát kell vennie! Specifikáljuk most az $x=1$-et mint problémás pontot:" ] }, { "cell_type": "code", "metadata": { "id": "jKwwqrkHrGK3", "colab_type": "code", "colab": {}, "outputId": "37e0fed0-447f-404e-98aa-9fe0fd4ae655" }, "source": [ "quad(h,0,2,points=[1.0])" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(6.000000000001056, 4.723332835965266e-12)" ] }, "metadata": { "tags": [] }, "execution_count": 9 } ] }, { "cell_type": "markdown", "metadata": { "id": "8nFW4ejwrGK5", "colab_type": "text" }, "source": [ "Így az integrál már szépen elvégezhető." ] }, { "cell_type": "markdown", "metadata": { "id": "ys-JMmXBrGK5", "colab_type": "text" }, "source": [ "## 2D integrál\n", "\n", "A `quad` függvény kétdimenziós változata a `dblquad`. Nézzünk két egyszerű példát kétdimenziós integrálra is!" ] }, { "cell_type": "markdown", "metadata": { "id": "lkWgQRFfrGK6", "colab_type": "text" }, "source": [ "Integráljuk a $$ \\cos(x) e^{-(x^2+y^2)} $$ függvényt az alábbi két integrálási tartományon:\n", "- egy origó központú egységnyi hosszú négyzeten \n", "- az origó központú egység körlapon!" ] }, { "cell_type": "code", "metadata": { "id": "-8Z6JNdkrGK6", "colab_type": "code", "colab": {} }, "source": [ "# Az integrandus definiálása\n", "def func(x,y):\n", " return cos(x)*exp(-x**2-y**2)" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "iINXq6i9rGK8", "colab_type": "text" }, "source": [ "A `dblquad` első paramétere megint az integrálandó függvény. A második és harmadik bemenő paraméter az integrandusfüggvény első paraméterének határait adja meg. A negyedik és ötödik bemenő paraméter az első integrálási változó függvényeként kifejezve a második integrálási változó határai. A legegyszerűbb esetben ezek valamilyen konstansfüggvények. \n", "Az első integrálási tartomány tehát így számítható :" ] }, { "cell_type": "code", "metadata": { "id": "9YKxtTtbrGK9", "colab_type": "code", "colab": {}, "outputId": "5d694880-81dd-4324-f302-b65cc8f47b8c" }, "source": [ "dblquad(func, -1/2, 1/2, lambda x:-1/2, lambda x:1/2)" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(0.8183636555228812, 9.085661728779128e-15)" ] }, "metadata": { "tags": [] }, "execution_count": 11 } ] }, { "cell_type": "markdown", "metadata": { "id": "9OfN5TO-rGK_", "colab_type": "text" }, "source": [ "A második integrálási tartományban az $x$ változó függvényében kell paraméterezni az $y$ változó szélső értékeit. Ha az integrálási tartomány az egység sugarú körlap, akkor az alsó határt a $y(x)=-\\sqrt{1-x^2}$, a felső határt pedig a $y(x)=\\sqrt{1-x^2}$ adja:" ] }, { "cell_type": "code", "metadata": { "id": "m4s_OEhrrGK_", "colab_type": "code", "colab": {}, "outputId": "2aa92b64-6883-42b0-dcf7-16bfb2443b1e" }, "source": [ "dblquad(func,-1,1,lambda x:-sqrt(1-x**2),lambda x:sqrt(1-x**2))" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(1.7860608962993605, 2.211336003199449e-09)" ] }, "metadata": { "tags": [] }, "execution_count": 12 } ] }, { "cell_type": "markdown", "metadata": { "id": "XEj0WmbprGLB", "colab_type": "text" }, "source": [ "# Differenciálegyenletek" ] }, { "cell_type": "markdown", "metadata": { "id": "Tyd3hajcrGLC", "colab_type": "text" }, "source": [ "Amint azt a bevezetőben is említettük, a fizikai törvények jelentős része a differenciálegyenletek nyelvén van megfogalmazva. \n", "Az alábbiakban megismerkedünk az `odeint` rutinnal amely differenciálegyenletek numerikus megoldását tesz lehetővé. " ] }, { "cell_type": "code", "metadata": { "id": "q6BlWkLYrGLC", "colab_type": "code", "colab": {} }, "source": [ "from scipy.integrate import * # ez kell a diffegyenletekhez is!!" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "Dp7l3GAxrGLE", "colab_type": "text" }, "source": [ "Egy egyenletet differenciálegyenletnek hívunk, ha a meghatározandó függvény deriváltjai szerepelnek benne. Egy egyszerű differenciálegyenletre jutunk például, ha megvizsgáljuk egy kondenzátor töltésének időbeli válltozását! \n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "ffeM0uFfrGLF", "colab_type": "text" }, "source": [ "A kondenzátoron felhalmozott $Q$ töltés meghatározására induljunk ki a Kirchhoff-féle huroktörvényből, amit a fenti ábrán látható áramkörre írtunk fel:\n", "$$ \\varepsilon= \\underbrace{I R}_{U_R}+ \\underbrace{\\frac{Q}{C}}_{U_C} = \\frac{\\mathrm{d}Q}{\\mathrm{d}t}R+\\frac{Q}{C}$$\n", "\n", "A megoldandó differenciálegyenlet tehát:\n", "\n", "$$ \\frac{\\mathrm{d}Q}{\\mathrm{d}t}= \\frac{\\varepsilon}{R}-\\frac{Q}{RC} $$\n", "\n", "Tegyük fel, hogy a kezdetben üres volt a kondenzátor, tehát $Q(0)=0$, és számoljunk az $\\varepsilon=1\\mathrm{V}$, $R=1\\mathrm{M}\\Omega$ és $C=100nF$ paraméterekkel!" ] }, { "cell_type": "code", "metadata": { "id": "39a2HS92rGLF", "colab_type": "code", "colab": {} }, "source": [ "# Paraméterek definiálása\n", "epsilon=1\n", "R=1.0e6\n", "C=1.0e-7" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "kSjDUC6ZrGLH", "colab_type": "text" }, "source": [ "Az `odeint` függvény hívásához szükség van a paramétereken kívül a növekményfüggvényre (azaz a fenti egyenlet jobb oldalára), definiáljuk most ezt:" ] }, { "cell_type": "code", "metadata": { "id": "D59Xp5VPrGLI", "colab_type": "code", "colab": {} }, "source": [ "def RCkor(q,t): \n", " return epsilon/R-q/(R*C)" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "vzSBaxdxrGLL", "colab_type": "text" }, "source": [ "Most már készen vagyunk arra, hogy meghívjuk a differenciál egyenlet megoldó függvényt! Az `odeint` alapvetően három bemenő paramétert vár. Az első a fent definiált növekményfüggvény, a második a meghatározandó függvény kezdeti értéke, a harmadik pedig azon időpontok halmaza, ahol kíváncsiak vagyunk a megoldásra. A függvény visszatérési értéke maga a keresett adatsor." ] }, { "cell_type": "code", "metadata": { "id": "d6OSRZEYrGLM", "colab_type": "code", "colab": {} }, "source": [ "t=linspace(0,1,1000) # ezek az érdekes idő pillanatok\n", "q0=0 # A töltés kezdeti értéke\n", "q=odeint(RCkor,q0,t) # itt oldjuk meg a diffegyenletet" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "XpMcli6KrGLO", "colab_type": "text" }, "source": [ "Most már csak ábrázolni kell!" ] }, { "cell_type": "code", "metadata": { "id": "TXJvfdfqrGLO", "colab_type": "code", "colab": {}, "outputId": "5aad4f5b-35d4-4311-85e9-f71127031d23" }, "source": [ "plot(t,q/C,lw=3)\n", "xlabel(r'$t$[s]',fontsize=20)\n", "ylabel(r'$Q/C$[V]',fontsize=20)\n", "grid()" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "2OSqoBDBrGLQ", "colab_type": "text" }, "source": [ "Vizsgáljunk meg egy másik példát ! Legyen ez egy rugóval rögzített test, mely egy vonal mentén súrlódás nélkül tud mozogni.\n", "\n", "\n", "Ennek a mozgásnak az egyenlete Newton szerint, \n", "\n", "$$m\\frac{\\mathrm{d}^2x}{\\mathrm{d}t^2}(t)=-kx(t)$$\n", "\n", "Írjuk át ezt az időben másodrendű differenciálegyenletet két időben elsőrendű differenciálegyenletre! \n", "\n", "$$\\frac{\\mathrm{d}x}{\\mathrm{d}t}(t)=v(t)$$\n", "\n", "$$m \\frac{\\mathrm{d}v}{\\mathrm{d}t}(t)=-k x(t)$$\n", "\n", "\n", "Általában minden magasabb rendű differenciálegyenlet rendje hasonló módon csökkenthető. Azaz a legáltalánosabb esetben is új ismeretlen függvények bevezetésével elsőrendű differenciálegyenlet-rendszer megoldására tudjuk redukálni a problémánkat!\n", "\n", "Vizsgáljuk meg azt az esetet, ha $m=k=1$ !\n", "Most a növekményfüggvényünk egy kételemű vektort kell, hogy kezeljen!" ] }, { "cell_type": "code", "metadata": { "id": "WfEmA7BPrGLR", "colab_type": "code", "colab": {} }, "source": [ "def f(u, t):\n", " x=u[0] # az u első komponense a kitérés\n", " v=u[1] # az u második komponense a sebesség\n", " \n", " return [v,-x] # ez maga a növekmény kiértékelése " ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "dq4SiFLErGLS", "colab_type": "text" }, "source": [ "Oldjuk meg az egyenleteket úgy, hogy kezdetben a kitérés 1, a kezdősebesség pedig nulla!" ] }, { "cell_type": "code", "metadata": { "id": "yOke3qM2rGLT", "colab_type": "code", "colab": {} }, "source": [ "t=linspace(0,20,1000); # az idő intervallum\n", "u0 = [1,0] # kezdeti érték x-re és v-re\n", "u=odeint(f,u0,t) # itt történik a diffegyenlet megoldása" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "3ERxzdA0rGLV", "colab_type": "code", "colab": {}, "outputId": "36e71154-6766-4caa-9d6c-5be391c0e238" }, "source": [ "plot(t,u[:,0],label=r'$x(t)$ pozicio')\n", "plot(t,u[:,1],label=r'$v(t)$ sebesseg')\n", "legend(fontsize=20)\n", "xlabel(r'$t$[s]',fontsize=20)\n", "grid()" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\nKm8t30q7lHZc8xV/u97ccQcUFnqfl1FdDc88Az/6ka9izOdUNa6+XJViY1PZJu2/vL/W1dU1m/bQ\n8UN60eMX6aHjh3yXU1Wl2rGj6oED3tIPGaL67LO+i0lK7/7rXe08t7MeO3Gs2bQnT53UjCcztKi8\nyHc5dXWqWVmqmzd7S3/nnapz5vguJilVf1at3Rd019LKUk/pbyq4SXPfzI2orAkTVBcu9JZ2yRLV\n0aMjKibphOKmr1ibtE/+ACMyRvDxiY89LSS24M8LmJg1kfTz032X06ED3HorzJ/ffNpt21wf5bhx\nvotJSr069mLoV4ey/K3lzaYt+GvB6Q+K/RKBn/wEfvWr5p/+Kyvdh/j2ROmc2/5c7vnmPczdNrfZ\ntCWVJbxx4A2mZEfWp/nAAzBvnptA2ZTaWli4EH7844iKMRDdkz8wDvgrcAq4qol0w4G9wN+A2c2c\nM6Z3xILSAu23rJ+eqjsVNk3FxxXa8fGO+l7VexGXc/CgaqdOquXl4dPU1alefbVqXl7ExfiyZcuW\n1ikoSqWVpZo+L12Pfno0bJqa2hrNeDJDN/+/x0f3RtTWqvbpo/rKK02nmz5dddashscTpT1bQtWn\nVZo+L11LDpY0mW7k2pG6YNsCT+cM157jx6s+9ljTeRctUh02zP1Nmcie/KMN/plABvBauOCP+1xh\nH9ATaA/sAPo2cc6YNkpdXZ0OXDFQF29fHDbN2HVj9aFXH4q6rIcfVh0xIvwFmZenmp2teir8fSim\nnnjiidYpKAamvjBVZ2yaEfb1X279pY56dlTU5WzcqJqRofrJJ42//uabql27qh450vC1RGrPlrB4\n+2Id8pshYR+knt/zvGY+lak1tTWezheuPffuVe3SRfUf/2g83wcfuN/R2297KiYQIgn+UXX7qGqZ\nqv4daGrb8W8Af1fV/apaCxQArTYRW0TIG53HnC1zKK0sbfD68reWs/vwbh689sGoy5o9Gyoq4Kmn\nGr5WVgb33edGkLTW+iNVsd4duwXNv2E+L+97udFx/0X7i1hUvIin/ruRhvVp1Cjo3x9mzmzY/XP0\nqBt+m5sLnTo1zJtI7dkSpvWbBsAjf3qkwWv7q/Yz46UZLBu5jLR23mZbhWvPzEy491430qqm5szX\namvhtttg2jTIzvZVfXOW1ghDlwDv1/v5QOhYq+nbpS+5I3IZvmb46c0PVJWn33qaOVvmsDFno6dJ\n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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] } } ] } ] }