{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Python gyakorlat 9" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "from sympy import Matrix, init_printing, symbols, Poly\n", "import sympy as sym\n", "x, y, z, t = symbols('x y z t')\n", "\n", "import numpy as np\n", "\n", "init_printing()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1.\n", "Írj függvényt, ami egy mátrixról eldönti, hogy Teljesen unimoduláris-e?\n", "
\n", "Segítségként nézd meg a sympy.Matrix függvényeit, elsősorban det(), minor() és minor_submatrix() függvényeket.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def TU(m):\n", " # ToDo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2.\n", "Készíts egyváltozós polinomiális egyenleteket numerikusan megoldó függvényt!\n", "
\n", "- A függvény egy stringet várjon, ami az egyenletet tartalmazza x változóval, szóköz nélkü. Pl.: ```x**2-3=x+1```\n", "- A függvény értelmezze és rendezze 0-ra az egyenletet, nyerje ki az együtthatókat és numpy segítségével keressen numerikus megoldásokat! \n", "
\n", "Segítségként nézd meg, milyen segédfüggvények találhatóak a sympy.Poly függvénycsomagban." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ -0.6403882032022076, \\ 0.3903882032022076\\right]$" ], "text/plain": [ "[-0.6403882032022076, 0.3903882032022076]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "e = \"x**2-3=x+1\"\n", "\n", "def numerikus_megoldasok(e):\n", " #ToDo\n", "\n", "numerikus_megoldasok(e)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3.\n", "Készíts függényt, ami elvégzi egy egyváltozós racionális törtfüggvény teljes függvényanalízisét!\n", "
\n", "Az eredmény legyen egy táblázat, ami tartalmazza a kritikus pontokat (függvény zérushelyeit, lokális szélsőértékeit, szakadási pontjait, inflexiós pontjait) és az ezen pontok közötti, előtti és utáni tartományokon a függvény viselkedését! \n", "- A táblázat legyen egyenlő szélességű, férjen bele minden!\n", "- Használj egyértelmű rövidítéseket!\n", "\n", "\n", "Pl:\n", "\n", "f = x^3 - 3*x^2 + 2\n", "```\n", " |-0,73 | |0 | |1 | |2 | |2,73 | \n", "konkav+ |zh |konkav+ |ma |konkav+ |in,zh |konvex- |mi |konvex+ |zh |konvex+\n", "- |0 |+ |2 |+ |0 |- |-2 |- |0 |+\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 4.\n", "Értelmezd az alábbi kód működését, és a segítségével keress összegképletet a következő rekúrziókra:
\n", "$$f_n = f_{n-1} + 3 \\cdot f_{n-2},\\, f_0 = 0,\\, f_1 = 2$$
\n", "$$f_n = 2 \\cdot f_{n-1} - f_{n-2} + n,\\, f_0 = 1,\\, f_1 = 2$$
\n", "$$f_n = 2 \\cdot \\frac{f_{n-1}}{f_{n-2}} + 3,\\, f_0 = 1,\\, f_2 = 2$$ " ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "solving -f(n) - f(n + 1) + f(n + 2)\n", "C0*(1/2 - sqrt(5)/2)**n + C1*(1/2 + sqrt(5)/2)**n\n" ] } ], "source": [ "from sympy import Function, rsolve\n", "from sympy.abc import n\n", "f = Function('f')\n", "Fib = f(n+2) - f(n+1) - f(n)\n", "print('solving', Fib)\n", "s = rsolve(Fib, f(n))\n", "print(s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 5.\n", "\n", "Bontsd szorzattá a következő kifejezéseket!" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "f = x**8 - 107 * x**4 + 49\n", "g = -100*x*y + 81*z*t - 90*x*t + 90*z*y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 6.\n", "\n", "Számold ki a logisztikus függvény inverzét" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJYAAAAmCAYAAAAmy2KXAAAABHNCSVQICAgIfAhkiAAABUVJREFUeJzt3HmIVWUYx/HPmEGWbVJBaqUG7VI2hmBltqiVlRX90UYbBREGLX8VBRotlH9EK1FWBu2YSxFlkdEGLbSnFe2WlmRa2aZW0x/POdwzd2a8y9w74433Cy9zz/ac557zu8/7vOc877TNmDFDItFoBvS3A5sYi9GBc8vWn4W/sHmfe9SiJGF1ZgxW4JSy9QfiA2zoc49alCSsErtjO1yLo7BtYVs73u4Pp1qVJKwS7ViP+/ADTsjWD8ABkrBqIgmrRDs+wjrMU+oO98RgSVg1MbC/HdiEaMc72ecn8Dy2ztavE6JLVEmKWCXGKEWl17AGx0mJe10kYQUjMUQpYnVgvugOyxP3E/EcTsPRIrKd32eetghJWEE7/haRKWcujhERqyisCUJQR+B0TMUobNEnnrYISVhBO5aKh6A5L+M3XRP39fgXX2bLG/CHlK92IgkruAL7l637BzuhDe8W1n+OF8S1ew6vYDMhwkRG+pXVzuys5TzYX45syqSIlWgKSViJppCElWgKSViJppAn7x396kXif0cesdpSa6k2DstwRoX9Roo3BX3uY+oKW5M3xWukUyvsNwX7NN+driRhtS4/Yd+NbD8MN+A8vIdt+sKpnHJhbY+Vopoy0Tvm4rIm2r8Ow7BlD9tfEu8+J4tCxV+b6EsXyoV1JZ7FF3Xam4CnRN14h661442k0RMfZuPmBtq/BlfpXOJcDR/10IYW9jlZCOV17LURWyPwdY3nr0RV97gorC1xgc6vK2plK7yP6XUcOwczati/kRMfBojaq4UNtP8BvsKZNfgB+/XQVmTbt8JMXCIEt68oSHwA94tqCxguSqyrHfHPUd31r+oeF4U1Vby1f7VKR7rjGfErndcLG9XQ6IkP40QEyr97o+w/KUprigzHQ1iNn0W16k41+Ho17sb3WCKS85PwsIiuuZB3URJjI6nqHheFdYi4YK3wTKvREx+m4WlRk9VI+2/gIAzKlkdlxy7DwZiIHXBnlfb2El3RHdnyEhGxhmF5ti6/f0uxGz7E6CrtN4yisEZojsKbQaMnPkzDgjrsH4tP8Rku6sbuChEJ8/zoLtwrynQ+FqO163FklX5+gvGiZyFqxk7IzpOfoy37+0v2PUYLcfUpRWFtoXOhG9HndlRoE+s895WihilvZ3Sz7tAeji2f+DBZ/RMf9hA/qkU12h+IW0RXub/IOXYus/1n9neQiB6TRG5U/I4LRHTsDfPF9ZstusRq6M31r0ixHmuVeNxQ5HY8WsHGsjrPfRceLyzfKML5rYV1y3XPGDGcp/cTH6aJwr3fa7Q/XnQ332b7zc/2uadgZ0j290eRx/2Csd34sK4Gf7vjV5xd4zG9uf4VKQrrXZxTtn1V1prB6qzlrM2WP69w3Eg9T3zYQdeJDxeJ0dIaXI7HdB75ThMjolrtD1USFXwncp0io0U3tVKIcXD2eW2F79gX1Hv9q6LYFS7C3uLi1ctgkdwekC2PyD7v2gub5TRy4sOOIpI8VYf9Nl0pH/hMEM8FiWdOa0TF6Rgx8pwkEvHubG2qVHWPi8L6UIxiKr1/2hhjReTLa8RnZZ+v6YXNcho58eF4vCWiSK32l4shfc5wnQc/g0TEzLvGNUKcW+NFkbjPElGvFUbiOVXd47ay/481BbeJyPVP011sPueL+X+L8Q0uFPMAZ2bbF4oc6qY6bA8Uo7TDRbrwtkjkc3FNFyO2yXX63tKUT6ZYJBL24eJGtDqVJj68hkfqtP03LlWasXOLzhFrPS6u03bLUx6xEomGkMpmEk0hCSvRFJKwEk3hP5ordgZaKnGzAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\frac{N_\\infty}{\\left(-1 + \\frac{N_\\infty}{N_{0}}\\right) e^{- \\lambda_0 t} + 1}$" ], "text/plain": [ " N_\\infty \n", "────────────────────────────────\n", "⎛ N_\\infty⎞ -\\lambda₀⋅t \n", "⎜-1 + ────────⎟⋅ℯ + 1\n", "⎝ N₀ ⎠ " ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N_0 = sym.Symbol('N_0') \n", "N_inf = sym.Symbol('N_\\infty')\n", "l_0=sym.Symbol('\\lambda_0')\n", "t=sym.Symbol('t')\n", "#Számold ki a logisztikus függvény inverzét f(t)=\n", "N_inf/(1+(N_inf/N_0-1)*sym.exp(-l_0*t))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.\n", "Oldd megy sympy segítségével az alábbi projekteuler feladatot:\n", "https://projecteuler.net/problem=46 " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }