{
"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
}