Skip to content

Instantly share code, notes, and snippets.

@hairymax
Last active August 11, 2022 09:33
Show Gist options
  • Save hairymax/09fb1a5f3365bd69d28fe56e62ab6f49 to your computer and use it in GitHub Desktop.
Save hairymax/09fb1a5f3365bd69d28fe56e62ab6f49 to your computer and use it in GitHub Desktop.
4.1.sympy.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"source": [
"<a href=\"https://colab.research.google.com/github/hairymax/Python-for-science-lecture-notes/blob/main/04_SymPy/4.1.sympy.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
],
"metadata": {
"id": "N-NuS5O6PeSk"
}
},
{
"cell_type": "markdown",
"metadata": {
"id": "cDxHQb-rOr6I"
},
"source": [
"# Sympy : Символьная математика в Python\n",
"\n",
"Этот ноутбук является переводом раздела [Sympy : Symbolic Mathematics in Python](https://scipy-lectures.org/packages/sympy.html) из онлайн-курса [scipy-lectures](https://scipy-lectures.org/)\n",
"\n",
"**`SymPy`** - это библиотека Python для символьной математики. Она можеть стать альтернативой таким системам, как *Mathematica* или *Maple*, сохраняя при этом максимально простой и легко расширяемый код. `SymPy` написана полностью на Python и не требует никаких внешних библиотек.\n",
"\n",
"Документацию по Sympy и пакеты для установки можно найти на официальном сайте http://www.sympy.org/\n",
"\n",
"Возможности библиотеки\n",
"- Вычислять выражения с произвольной точностью.\n",
"- Выполнять алгебраические операции над символьными выражениями.\n",
"- Выполнять основные вычислительные операции с символьными выражениями (пределы, дифференцирование и интегрирование).\n",
"- Решать полиномиальные и трансцендентные уравнения.\n",
"- Решать некоторые дифференциальные уравнения."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "CXHKkhWWOr6L"
},
"outputs": [],
"source": [
"import sympy as sym"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VIqOG6R6Or6M"
},
"source": [
"## Первые шаги"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5qeho9PCOr6M"
},
"source": [
"### Использование SymPy в качестве калькулятора\n",
"\n",
"В SymPy определены три числовых типа: `Real`, `Rational` и `Integer`.\n",
"\n",
"Класс `Rational` представляет рациональное число как пару из двух `Integer`: числителя и знаменателя, поэтому `Rational(1, 2)` представляет дробь 1/2, `Rational(5, 2)` = 5/2 и так далее:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"id": "mldZ4y-sOr6N",
"outputId": "db0e389c-7422-4042-91aa-b0829367b1ab"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"1/2"
],
"text/latex": "$\\displaystyle \\frac{1}{2}$"
},
"metadata": {},
"execution_count": 2
}
],
"source": [
"a = sym.Rational(1, 2)\n",
"a"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "tALABpgyOr6N",
"outputId": "a20df49a-cf1d-482e-c9ed-2f878685feae"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"1"
],
"text/latex": "$\\displaystyle 1$"
},
"metadata": {},
"execution_count": 3
}
],
"source": [
"a*2"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "3giLKzhBOr6O"
},
"source": [
"SymPy работает на основе методов `mpmath`, что позволяет выполнять вычисления с использованием арифметики произвольной точности. Некоторые специальные константы, такие как $e$, $pi$, $\\infty$ (бесконечность), рассматриваются как символы и могут быть вычислены с произвольной точностью:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "3F8JvWciOr6O",
"outputId": "4cc01978-08d2-43a1-9423-cc6ac4d0c833"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"pi**2"
],
"text/latex": "$\\displaystyle \\pi^{2}$"
},
"metadata": {},
"execution_count": 4
}
],
"source": [
"sym.pi**2"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "uZeiS8yoOr6O",
"outputId": "d554aaa2-6a41-4451-9c68-6d45b36d7eef"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"3.14159265358979"
],
"text/latex": "$\\displaystyle 3.14159265358979$"
},
"metadata": {},
"execution_count": 5
}
],
"source": [
"sym.pi.evalf()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "J73sTPwPOr6P",
"outputId": "66c816fe-0217-44c7-b602-0b3ac99b0365"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"5.85987448204884"
],
"text/latex": "$\\displaystyle 5.85987448204884$"
},
"metadata": {},
"execution_count": 6
}
],
"source": [
"(sym.pi + sym.exp(1)).evalf()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "rr461LPKOr6P"
},
"source": [
"Метод `evalf` переводит выражение в число с плавающей точкой.\n",
"\n",
"Существует также класс, представляющий бесконечность, который называется `oo`:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "QXutr3DjOr6Q",
"outputId": "2d180e65-7d85-4461-e5bf-8ce924a65340"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"True"
],
"text/latex": "$\\displaystyle \\text{True}$"
},
"metadata": {},
"execution_count": 7
}
],
"source": [
"sym.oo > 99999"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "QlH-wlKEOr6Q",
"outputId": "5bf907cf-46e0-4c89-c060-74d9926afbc5"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"oo"
],
"text/latex": "$\\displaystyle \\infty$"
},
"metadata": {},
"execution_count": 8
}
],
"source": [
"sym.oo + 1"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "eFbSxmvXOr6Q"
},
"source": [
"### Символы\n",
"\n",
"В отличие от других систем компьютерной алгебры, в SymPy необходимо объявлять символьные переменные явно:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"id": "1pkLFPwgOr6Q"
},
"outputs": [],
"source": [
"x = sym.Symbol('x')\n",
"y = sym.Symbol('y')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cp9by1MgOr6R"
},
"source": [
"После этого с ними можно работать:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "vsNOhLbPOr6R",
"outputId": "8fd1aad6-3196-40e3-d7ae-c126c45054b0"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"2*x"
],
"text/latex": "$\\displaystyle 2 x$"
},
"metadata": {},
"execution_count": 10
}
],
"source": [
"x + y + x - y"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 39
},
"id": "D7Cma7fMOr6R",
"outputId": "64118628-0728-44cf-d4b5-7ba3fa378e42"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(x + y)**2"
],
"text/latex": "$\\displaystyle \\left(x + y\\right)^{2}$"
},
"metadata": {},
"execution_count": 11
}
],
"source": [
"(x + y) ** 2"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "iIn9HpucOr6R"
},
"source": [
"Cимвольными переменными можно манипулировать с помощью некоторых операторов python: \n",
"- `+`, `-`, `*`, `**` (арифметические), \n",
"- `&`, `|`, `~` , `>>`, `<<` (булевы)."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "uAePMVY5Or6S"
},
"source": [
"**Печать** \n",
"Sympy позволяет управлять отображением вывода. Здесь мы используем следующую настройку для печати:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"id": "R8T-UroDOr6S"
},
"outputs": [],
"source": [
"sym.init_printing(use_unicode=True, wrap_line=True)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cx3rQvtXOr6S"
},
"source": [
"## Алгебраические преобразования\n",
"SymPy способен выполнять мощные алгебраические преобразования. Мы рассмотрим некоторые из наиболее часто используемых: разложение (expand) и упрощение (simplify)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "LztqVdSXOr6S"
},
"source": [
"### Expand"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "-EObPIeFOr6S",
"outputId": "2d97f979-2440-43fc-baf4-af29df5771ee"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" 3 2 2 3\n",
"x + 3⋅x ⋅y + 3⋅x⋅y + y "
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAANUAAAAaCAYAAAAg/hniAAAABHNCSVQICAgIfAhkiAAABLFJREFUeJztm1uoFVUYx39ekTLKLngBI0q0QlOT8MUDEkFUhHSD8EFWFPZQD2o9lAieFz3HB294wyLZRi8VpNRDpRaYHJWCLMmoID0WdjwpHm8UmZcevnXYc6aZvWetWWvNHs/8YDhnr5n9fd//P2vvmbXWbKioqGgpXgEOA+f1dgB4otCK/PEm8A2i8xTwCTC10IrKS5m99N7n5wGPAZOAycAK4F/gAZdJWoTPgReQkz8N2AGcBG4tsqiSUmYvC+nzZ4CXfSZoEUYDV4Aniy7kOqDsXg7o80MdBh4GPI8YtN9h3KysAr4Afgf+RoQeApYDt3nIdxPiX5+H2K4J7Y0pZfIyirc+Pw24CFwGzlLcmOoScBDYBnQCG5D79mvACWCi43wfIB1zmOO4PgjtjSll8hIC9PmRyP3lLKADOI3doFMhJ3muZR2jUtpX6LibLeMmsQb4A7jbYcxGKMrjjSkuvFTk88cUoz6/CynumVj7EKCm93U2SbgHeMeiUIUfY6bruLtj7bZa1wI9wL0p+Zbo976Wsn8K8A/wVZO6oyjCegNm/thqbuZlVhR2/rg6Vw37/HRkwPgjAy/Fq3XyrRkK/RJ4L8NxcRR+Os4yHXd1rN1G63pkluq+Bvlm6/d/mLJ/F3LbYDJbpAjrDZj5Y6M5i5dZUdj54+pcNe3zNZ1I6ddL9ev3+f/ERifQBtyF3Gd2AFeRKUdTFG46zutAO/ItuE/H/B64I+HYGtm1bkLWJR4GxkW20bHjRgB/Ab8l5HtOx1+fWY2gCO8NZPfHVHNWL7OisPPH5lxZ9fmJyAzRMeBVHfgz5D4yTg04jlwi/0Qug48215KIwk3HOanj9G+fAmNTjjXRei1la084dq/eNz7SdiMy+9YL3GygB4rxBsz8MdFs4mUWFPb+mJ6rGpZ9voO60C7gBotiG9FNurFJW80ix1jgKeBnZCD8YMpxPrSu1PGejrStYuC3fhrdtI43kN2fPJpN6MatP87rHp7Sfiry/4vIJdIl64BbYm0zkNXq7YhxUb6zyNGLrNR/C/wCvEvyDI0PrV3672zgI2Qgvhh5pGV7k/e2kjeQ3Z88mk1w7U+Quucj94g9yKd1i6vATVD4mxY9pGPfHmv3pXWMjrtXv96DDPpnWsZThPcGzPxxrdkEhb0/3ut+HFkoPIwMXn9Cnmua4ipBAxT+Ok6vjj0m0uZb6xFkgXA++deCFGG9ATt/XGo2QZHPH291z0Eu7UepD9qe1Ul2ukrSAIW9MZNJHvwPpb7A2RVpD6F1q453AbmFindaExThvAF7f1xqNkGR70Plpe4ZyOMWPcA9sX39j7O0uUjUAIW9MYuQWardwFvI4Hob8KuO2QPcr48NpXUB9cHySzljKcJ4A/n8canZBEW+D5XzuichU619JC9yPaKTHXSRrAEKe2OmAhuRQelpZMHuHNIJ2qn/pCCk1jYd62vkKYQ8KPx7A/n9canZBEW+D1VRdVcY8jEy4H2o6EICUlbNZa17UNE/4N1YdCEBKavmstY9KLgTeAN4G1lt/wH3i+atRlk1l7XuQcdC5BuvD/l90IRiywlCWTWXte6KioqKioqKioqKiorrnv8AvHY7DZzgT2QAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle x^{3} + 3 x^{2} y + 3 x y^{2} + y^{3}$"
},
"metadata": {},
"execution_count": 13
}
],
"source": [
"sym.expand((x + y) ** 3)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "sb_h5vyDOr6T",
"outputId": "d8db23bd-ca5b-4cbc-f66e-5ea16def7aea"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" 3 2 2 3\n",
"x + 3⋅x ⋅y + 3⋅x⋅y + y "
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAANUAAAAaCAYAAAAg/hniAAAABHNCSVQICAgIfAhkiAAABLFJREFUeJztm1uoFVUYx39ekTLKLngBI0q0QlOT8MUDEkFUhHSD8EFWFPZQD2o9lAieFz3HB294wyLZRi8VpNRDpRaYHJWCLMmoID0WdjwpHm8UmZcevnXYc6aZvWetWWvNHs/8YDhnr5n9fd//P2vvmbXWbKioqGgpXgEOA+f1dgB4otCK/PEm8A2i8xTwCTC10IrKS5m99N7n5wGPAZOAycAK4F/gAZdJWoTPgReQkz8N2AGcBG4tsqiSUmYvC+nzZ4CXfSZoEUYDV4Aniy7kOqDsXg7o80MdBh4GPI8YtN9h3KysAr4Afgf+RoQeApYDt3nIdxPiX5+H2K4J7Y0pZfIyirc+Pw24CFwGzlLcmOoScBDYBnQCG5D79mvACWCi43wfIB1zmOO4PgjtjSll8hIC9PmRyP3lLKADOI3doFMhJ3muZR2jUtpX6LibLeMmsQb4A7jbYcxGKMrjjSkuvFTk88cUoz6/CynumVj7EKCm93U2SbgHeMeiUIUfY6bruLtj7bZa1wI9wL0p+Zbo976Wsn8K8A/wVZO6oyjCegNm/thqbuZlVhR2/rg6Vw37/HRkwPgjAy/Fq3XyrRkK/RJ4L8NxcRR+Os4yHXd1rN1G63pkluq+Bvlm6/d/mLJ/F3LbYDJbpAjrDZj5Y6M5i5dZUdj54+pcNe3zNZ1I6ddL9ev3+f/ERifQBtyF3Gd2AFeRKUdTFG46zutAO/ItuE/H/B64I+HYGtm1bkLWJR4GxkW20bHjRgB/Ab8l5HtOx1+fWY2gCO8NZPfHVHNWL7OisPPH5lxZ9fmJyAzRMeBVHfgz5D4yTg04jlwi/0Qug48215KIwk3HOanj9G+fAmNTjjXRei1la084dq/eNz7SdiMy+9YL3GygB4rxBsz8MdFs4mUWFPb+mJ6rGpZ9voO60C7gBotiG9FNurFJW80ix1jgKeBnZCD8YMpxPrSu1PGejrStYuC3fhrdtI43kN2fPJpN6MatP87rHp7Sfiry/4vIJdIl64BbYm0zkNXq7YhxUb6zyNGLrNR/C/wCvEvyDI0PrV3672zgI2Qgvhh5pGV7k/e2kjeQ3Z88mk1w7U+Quucj94g9yKd1i6vATVD4mxY9pGPfHmv3pXWMjrtXv96DDPpnWsZThPcGzPxxrdkEhb0/3ut+HFkoPIwMXn9Cnmua4ipBAxT+Ok6vjj0m0uZb6xFkgXA++deCFGG9ATt/XGo2QZHPH291z0Eu7UepD9qe1Ul2ukrSAIW9MZNJHvwPpb7A2RVpD6F1q453AbmFindaExThvAF7f1xqNkGR70Plpe4ZyOMWPcA9sX39j7O0uUjUAIW9MYuQWardwFvI4Hob8KuO2QPcr48NpXUB9cHySzljKcJ4A/n8canZBEW+D5XzuichU619JC9yPaKTHXSRrAEKe2OmAhuRQelpZMHuHNIJ2qn/pCCk1jYd62vkKYQ8KPx7A/n9canZBEW+D1VRdVcY8jEy4H2o6EICUlbNZa17UNE/4N1YdCEBKavmstY9KLgTeAN4G1lt/wH3i+atRlk1l7XuQcdC5BuvD/l90IRiywlCWTWXte6KioqKioqKioqKiorrnv8AvHY7DZzgT2QAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle x^{3} + 3 x^{2} y + 3 x y^{2} + y^{3}$"
},
"metadata": {},
"execution_count": 14
}
],
"source": [
"3 * x * y ** 2 + 3 * y * x ** 2 + x ** 3 + y ** 3"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-BK9JjcaOr6T"
},
"source": [
"Дополнительные параметры могут быть указаны в форме по ключевым словам:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "WnCvjQfYOr6T",
"outputId": "d2ca7f3f-c074-4297-e531-dbb790466b63"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"re(x) + re(y) + ⅈ⋅im(x) + ⅈ⋅im(y)"
],
"image/png": "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\n",
"text/latex": "$\\displaystyle \\operatorname{re}{\\left(x\\right)} + \\operatorname{re}{\\left(y\\right)} + i \\operatorname{im}{\\left(x\\right)} + i \\operatorname{im}{\\left(y\\right)}$"
},
"metadata": {},
"execution_count": 15
}
],
"source": [
"sym.expand(x + y, complex=True)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "Ie-ipnvgOr6T",
"outputId": "a91e29b3-4522-4901-b2dd-d7fa4a19c69d"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"re(x) + re(y) + ⅈ⋅im(x) + ⅈ⋅im(y)"
],
"image/png": "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\n",
"text/latex": "$\\displaystyle \\operatorname{re}{\\left(x\\right)} + \\operatorname{re}{\\left(y\\right)} + i \\operatorname{im}{\\left(x\\right)} + i \\operatorname{im}{\\left(y\\right)}$"
},
"metadata": {},
"execution_count": 16
}
],
"source": [
"sym.I * sym.im(x) + sym.I * sym.im(y) + sym.re(x) + sym.re(y)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "he28-4tdOr6U",
"outputId": "6a56062b-0e3f-4b14-c00a-415bdc442e44"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"-sin(x)⋅sin(y) + cos(x)⋅cos(y)"
],
"image/png": "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\n",
"text/latex": "$\\displaystyle - \\sin{\\left(x \\right)} \\sin{\\left(y \\right)} + \\cos{\\left(x \\right)} \\cos{\\left(y \\right)}$"
},
"metadata": {},
"execution_count": 17
}
],
"source": [
"sym.expand(sym.cos(x + y), trig=True)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "TZrh8HXwOr6U",
"outputId": "73febdcc-dc4d-42db-e089-a44d4729dd6e"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"-sin(x)⋅sin(y) + cos(x)⋅cos(y)"
],
"image/png": "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\n",
"text/latex": "$\\displaystyle - \\sin{\\left(x \\right)} \\sin{\\left(y \\right)} + \\cos{\\left(x \\right)} \\cos{\\left(y \\right)}$"
},
"metadata": {},
"execution_count": 18
}
],
"source": [
"sym.cos(x) * sym.cos(y) - sym.sin(x) * sym.sin(y)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XCm29TEbOr6U"
},
"source": [
"### Simplify\n",
"Преобразование выражения в более простую форму:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "TMZwKHMfOr6U",
"outputId": "54fca28d-20a4-433d-ec9f-3aae5a09ca0a"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"y + 1"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAADIAAAAWCAYAAACCAs+RAAAABHNCSVQICAgIfAhkiAAAAZxJREFUWIXt1r9LlVEcx/FX1lQOuVWUm+SYRJhDYERzDrk43cnJpR9QEIh/gQTWIA0VNDU0NAeSFoGCiQgNLXcO4VINIdKP4Rzx+Og177n4PA73DYfznB/f7/P58pzv9zl0KIXbmMECfuAvXlWqKJMVQfxPfFFxILUoYDjD9jr6cCzaNw2kK3m+Gzfea+L0IjYwnyEolzl8FXTtSxrIx9hfbbJ3Bscx0Za0QyINZBm/MLjHvlHcxFOslqCrZdJANrGECzibzJ/CNL5hsjxprdFVGG8dr6FkbhLn8QDf/+OvLpzntD2Pa3N7rL3Ik72bE4XxViCDeIN+3MEnvDyAv8c4XZi7hFvRvl5YW2lBa0v04A/ex/E7/MZAGz5r8stvyrADll9oCD+eyxjDDczic5siDp1iIPBBSPBZrONRqYoyKeYIIU/G0S3kR6NURTsZiQ3OxH7IdpFYx/1mxteEs7goXA3apSY/R6bsrnRpq+9n/FZI8CsZLz4yjAmRPqlaSA69eIhnwqVwDScrVZTJuPAVGniNc9XK6dDhSPEP+y1cRXkUpWAAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle y + 1$"
},
"metadata": {},
"execution_count": 19
}
],
"source": [
"sym.simplify((x + x * y) / x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "v_qTT2ehOr6V"
},
"source": [
"Существуют альтернативы команде `simplify`, предназначенные для конкретных типов выражений: `powsimp` (для экспоненты), `trigsimp` (для тригонометрических выражений), `logcombine`, `radsimp`."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "sejV5yYvOr6V"
},
"source": [
"## Дифференциальное исчисление"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "QyTp_9XhOr6V"
},
"source": [
"## Пределы\n",
"\n",
"Пределы в `SymPy` вычисляются командой `limit(function, variable, point)` \n",
"Чтобы вычислить предел $f(x)$ при $x \\rightarrow 0$, нужно вызвать `limit(f, x, 0)`:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "DfdTT535Or6V",
"outputId": "db074667-3c10-4cce-cf8d-57bea5e46408"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"1"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAABHNCSVQICAgIfAhkiAAAAHZJREFUKJFjYKACCGFgYJjMwMBwmIGB4RMDA8N/BgaGJYQ0XYAq/MzAwHCdWE2ODAwMqgwMDIwMDAwOuDSxoPH3EzKVgYGBgYkYRaOaBlwTeuQGQDEDAwODBJS2ZGBgWABlv2FgYChBN6SBAZJ0cOEH5LiMzgAA6XoX52TB9a4AAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle 1$"
},
"metadata": {},
"execution_count": 20
}
],
"source": [
"sym.limit(sym.sin(x) / x, x, 0)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "r4V0q-aAOr6W"
},
"source": [
"для $x \\rightarrow \\infty$"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "O5LLFkInOr6W",
"outputId": "53f181e0-8dab-40b8-d324-29806f08e762"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"∞"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAABHNCSVQICAgIfAhkiAAAANJJREFUKJG10TFLQmEYxfFfubU0hZvgGJfIwdnQoI9wl/oEQX6MppYWcRIEtxY3cQuiQWtpr0BwCApaxAiiGu4d5OW9IERnO4fn+fM+5+WfdIIZPjDAVp43cY93jFApAuzhDSmO8IQxEizRxQEucYeNGKSH9opP8IkXXAWzE7RikCn2g6yDL1SD/AJnsBkB/QT+GSXsROai5/RxuuK3MccrroOlCQ5jkFq+kKKBG9zKCl/KOqvjHA9FL4Fj2RcvMEQ5z1t4xLesu90iwDqK9fh3/QJzZSkAoG7HZAAAAABJRU5ErkJggg==\n",
"text/latex": "$\\displaystyle \\infty$"
},
"metadata": {},
"execution_count": 21
}
],
"source": [
"sym.limit(x, x, sym.oo)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "P4H-iarkOr6W",
"outputId": "a1173fdf-cb12-4373-aba7-fcbd9b35ff97"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAABHNCSVQICAgIfAhkiAAAAMRJREFUOI3N0r1OgkEQheEnlhqDxlYrA9wCLRfkdWhlLK30FmixsOMe+CnQRmOnUQstxGa+8GVgCRgLpjnZs/PuZHcP/1jHuMETvvCAKxyugk7xghl6uMB9rIc4KoH9aDpL/mX416VpM0yxk/b28YFP7EkN3dA7/CTwHQPsopPBdui4cI1JaCuDjdC3Alj5BxncqOpgdWJjWWPNf83gKLRVAJuhC2+w0Xfk+lMAqqn1yJ2bR25kReTgBLd4xjcerRHyLa5fD28wqzSkqLgAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle 0$"
},
"metadata": {},
"execution_count": 22
}
],
"source": [
"sym.limit(1 / x, x, sym.oo)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "jzOiULMuOr6W",
"outputId": "2a7b3d51-01a9-40ed-9bee-e3b9c201d1da"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"1"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAABHNCSVQICAgIfAhkiAAAAHZJREFUKJFjYKACCGFgYJjMwMBwmIGB4RMDA8N/BgaGJYQ0XYAq/MzAwHCdWE2ODAwMqgwMDIwMDAwOuDSxoPH3EzKVgYGBgYkYRaOaBlwTeuQGQDEDAwODBJS2ZGBgWABlv2FgYChBN6SBAZJ0cOEH5LiMzgAA6XoX52TB9a4AAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle 1$"
},
"metadata": {},
"execution_count": 23
}
],
"source": [
"sym.limit(x ** x, x, 0)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fyLtTjC8Or6X"
},
"source": [
"### Производные\n",
"\n",
"Команда дифференцирования любого выражения в `SymPy` вызывается с помощью `diff(func, var)`."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "UzZBTPQ8Or6X",
"outputId": "691e803c-79c5-4890-f1c4-13d138e2f801"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"cos(x)"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAD4AAAAVCAYAAAAeql2xAAAABHNCSVQICAgIfAhkiAAAA0JJREFUWIXt102IVlUYB/DfzJRpFmNQUZG1aJrKoIxKKGwR1CIXERRSLaIvJcoWuQi0dVZmtIiwDwNblaVkuJGB0L7AxhmL7AsqxcimksyQsjHHaXGey1zve+5cy3diIP+b932f///8z7nnOc9z7stxTDq8ip8x/Rg8rsQo7m/Liv4DXI3DWNwGr7cwhFPa4DXh6MM+TGuD1xwp60vb4DWh6JWy/VIbPb/ELnQWgc6MaA7WYDeGpWPSh/kV3Xy8h99wANuxBCfVTH4z3gm/YfyAd/FgRXcvOmINOfRJGby1Eu/A6uCerHCv4zzcWONpAQ7Fwt7EMqzCJ9hc0i2LCfZgJZ7GZxHbjCkV34XBDUmZLHz7sbWiHYg11DW1yzGCL9BVij8Tc7yYGXNDcCtyhrPwF/bi0gx/bnxeEybf4awSfwI2yNfToLSZZ2Z8Ty99ny499PbcAktYHfPcHb+Xxu818qe4O/j+nNlzQT7SMOnLoVuY4XqlbOyoxAfxO05r8O4N774G3UypvHZiUYzZqPWklXEAP+aIrWFwccOkg6HrqeF3Bd9dii02dtSfxS04IzO2OE119V3GE6EdxYc4uUG/WzpNLfg6TE5tMPgmdHU1uCX48yvxu4IbCf4wNuGqkmZ2cG83rIGxzTyaZJFKeH+O+KcZv6CGLzI+o4afgXlSyYzgF2PZPyfGftCwhjuljRsK/coGfWfov82RR1vjq0J3X4brka/xOrziyKupQ3pN3TPOmHk4iE+lDftKasoXjTPmkphnXY4sd/VZGb7o6teGyU5H1mkX1gf3WGXs9dJDVVHcAjeVYmvV95C5+EPa2LMjdlvo12f0Be4JzaI6wQIpY8N4A4/jBel4byrpngqjn/A8lktX0Cje19pd9+H7eKgV0p3bH/oBnFjS3hHxhyoes8NnSGuZFWV6Xc1zvSY1tpk1PFJnXScduYPSG9ZGaWfLuF2qxf34E59LmZ6a8XxA+rOwQ8rYXnyMR7U20ynShn5UivVIV9GvuCzjX7ygbMlw3dJVNt6JmDRYIj3IFW3weji85rbBa8IxVbodNhyjzzTpxK6tEl2t2kmBQ9gm/eEZkJruv8GFUr9aLvWH4/jf4m8ovemaaMJi4QAAAABJRU5ErkJggg==\n",
"text/latex": "$\\displaystyle \\cos{\\left(x \\right)}$"
},
"metadata": {},
"execution_count": 24
}
],
"source": [
"sym.diff(sym.sin(x), x)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "o1FX2bpCOr6X",
"outputId": "5cd34dcc-b0c6-410e-c86a-bd53bc8bf02d"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"2⋅cos(2⋅x)"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAFcAAAAVCAYAAAAzWHILAAAABHNCSVQICAgIfAhkiAAABApJREFUWIXt2F2IVVUUB/CfGqZZaFlRUURkVhZlVIJhQRmEQRFkUj30gSkSFiVkqEQ9qZXhg4R9WNhDhTShIkEMRFYGpk5FVgaZX6GWkmVWk+loD3sdPHPm3HvPzWZEmD8MzFnrv9ZZ6+y11t770oteVMQb2IVBPfjOq3EYD9UjDQ3CUmxEO/ZiFSaib/fGeNS4FocwrSDvibyWYidOrkWYIq3ADryJOXgdv4W8BX3+h0C6C61SrAML8p7Ia1T4mlmLcBNu03Ulz8K2ML7zKIPoLgyXqvaVEl1P5bUBW0ve0xAzI4gFJbpRWILt2C+1RysmlHAn4GOpLduxHjNwYgn3dnwQ/vZLlfcRHi7hzo34xlZNKFArr1blH70PFodubkH3dMhvaTIGT4Th/IJ8Eg5Kyb+D2ViEL7GywJ0dPnZjIZ7H1yFbif457uSQ75SqMfO7BmtL4lsXcTS7kdXK60p04Fv0y8lfCP7LJb5uDt28ZgI4Qaqw4qqMwAHswWUldufm/h8d9tukdsz7XqHrvGqTFuzMEr+nF54HSR92fYM8iqiVV4bFoXsgnrMqX6K89QeHfk0zQcwLo/cK8gUhf7yCj1eDO7lEN1yqkk05WRv+xKkVfA8P360VuHnUyivDedLo2oypwX1f5w4roh0/VQ3g0XC6AacVdGtDd0kFP23BHVZDvzX0g+N5miNjYT7uwBk1bLOuWFIhjgz18spjTvAO41Oc1MDvdqmLGiJbrW90buUM34f+lAq+Nga31kxcHfrzc7L7Qt4RukP4ENcUbEeGfnmFOGicVx7ZIlctoj3Y14j0WDhcr3zu8d8q98Ia+qxyh5TohuBWabR04Bedq/icsF1VIY4qeWW4V1rQnWGzsAG/b/B/qEd6Mpx9oevmkUczM3dRcCeW6IbpOnNr4TVdj0h9pCvv7ga2VfMiLeY/+EpayO+kzfviOjaXhv93axGeCsI69WcRnU8LI0r0+dPCdeF3s85V1w/LQjcrJ79R+a0pO1mMK8hb1J/pzeQ1Bn9Ji312yMaH/bI6dg8GZ2omyCdwv3T86JCqcm+Jgy3ByTAJL0lDfLk0h4dK9/zfpY+U4VlMl6qsRToNjMPlUkuPlaqFdDX9Q5q5WyLO68Nvm7SJHcj5vgdvRWIvFmJuJq+R0pm7XfrI+RZfK837G/BJiY+3cRcuwI9F5TOODO9afytLnI6WWmGX9HF2SEeW8SXcu6UPuQ9/S5vKLAwo8KZIP4Zskqpoj9TO05VvoP3xMz4r0VXNa5h0jPoVV5T4yS4Jq0t0g6UFqVfZxzVmSMlfdQze/Ui8e8wxeHePYIB06ljRw+8dKHVrS1HRryv3uMVBfC79CLRO55ncnbhIuqo/J+0VvejFcY5/AfYaTWB8Uf3qAAAAAElFTkSuQmCC\n",
"text/latex": "$\\displaystyle 2 \\cos{\\left(2 x \\right)}$"
},
"metadata": {},
"execution_count": 25
}
],
"source": [
"sym.diff(sym.sin(2 * x), x)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "sgEk6m9aOr6X",
"outputId": "83c84df7-83b3-456e-9a8a-b88be2d98e43"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" 2 \n",
"tan (x) + 1"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAGwAAAAYCAYAAAAf1RgaAAAABHNCSVQICAgIfAhkiAAABAFJREFUaIHt2VuIVlUUwPGfFqUZWNFDF5IP81JQZkRRoTRdJ6JIUogi6ot6rJfoRQka6MGKLkY36mmEgi6KlRE1UEYpWA0lFFnRZYRyLI0soynSpoe1pznzdS7jN99chO8PhzOz915rr3PW2muvfT7atGmSlfgIv2E3NuKMSbWoTSlv4VbhpDOxAbtw3GQa1Wb0HI0DuKZkzFr8hFljmOccDOL2MeiYFGrC8O7JNeM/ThT2LCnoPxf/4K4WzLUB/SJIJoMVeBzviy1hEM9VCdVMLYe9hE9wWEF/D/ZiZgvmOk88+6oW6GqGbWn+fdjuEHTYI9iJuQX9C8TqeraFc27HDkxvQrYu3l1Hk3NfjPmYlnRUOqwrDcq76hmj1uNbDIiluwU3FeisGQ6AGl7AHvyJXlxdIPeoSE+nldh7f9J9aUF/T+pf3tA+LdkzmHRkuTe1d5bMW0Td2ByWpcMoHNaBNWngNuHAoWtxGjMgXnQ3Vovo/j7J3Jejs5b6NonCYKtwxlrhtAMisrI8JirD0yseqhf7FRcbZyX9nxuZUh9ONj2TI3NZ6nuoYu486ibYYVSnxFNz2o7A2/gbJxfoGxTRm6Uztb+RaXtSrNpLcELmaiwEZglnfVpg5xDdRmaIVen/F+Wnvdmp/8MKvXnUTUGHFXFdkru5QF+f/MJhh0iRQxSl5K4GuQWpvafCrlNEVvgOdySZN0WQFTEgVvjBUjcFHTZHrIIv8If/v9iVBfpeKdC3WaStg+UCwyulitUZ+7bgqIrxP4jVW0af4uDKu7pHYWeWDiUOO3yUSuaKVHGsOCv04Ffxwmu4BUcWyO4taN+vuYpsIN1njGLs7szft4lAK2NmRn8Ra3BMQ9tiXCv2576Gvm0V+pqmpjginjByP8hyg/zUVaYP3k39B8tJSW5zxbgbRenfn8Y/XTF+ehr/TRM21U1QSsxG+FB6yttv5qX7+py+i5q1rEn6xcpZWDLmKhEon2ERvhSfnspkFoqyf9xWRCvIOuwX4dk5OeP60r2job3TxH+DG8R7ON5wIGVZgnXiyNEpnHuPSP8PlOg9P903tczScSC7h/2OD7AUz+Mrsepew1PiS/rL4mXsFF/VrxSfkK6fOJMRK325cMjXmfbFeF3sr5eL1UjY3Cv2maViH27kCvG8r46PyaUsSxdxlCGKq+709x7cnSc4T/wO9bPI59l960K8I1biPrGHLDOcc7sadNWMzx5GlOY/igDL2r4r2bcoR2boYLw1p2+2KDaKKtoq6sa2h3UprzT7mtQ7pVgpHubsFui6U/kvA21awAxx+N44Rj0zRYpfN2aLJoCiny4OBfbjY3H+6xWfx5phPv7Cg4rPjG3atGnTZurxL2crMc0fuH2xAAAAAElFTkSuQmCC\n",
"text/latex": "$\\displaystyle \\tan^{2}{\\left(x \\right)} + 1$"
},
"metadata": {},
"execution_count": 26
}
],
"source": [
"sym.diff(sym.tan(x), x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "iLq1RmBQOr6X"
},
"source": [
"Можем проверить, вычислив производную по определению через предел"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "GtWKLMRROr6Y",
"outputId": "1b6f0d4e-ac08-4b46-a51d-043eaa2647a1"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" 2 \n",
"tan (x) + 1"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAGwAAAAYCAYAAAAf1RgaAAAABHNCSVQICAgIfAhkiAAABAFJREFUaIHt2VuIVlUUwPGfFqUZWNFDF5IP81JQZkRRoTRdJ6JIUogi6ot6rJfoRQka6MGKLkY36mmEgi6KlRE1UEYpWA0lFFnRZYRyLI0soynSpoe1pznzdS7jN99chO8PhzOz915rr3PW2muvfT7atGmSlfgIv2E3NuKMSbWoTSlv4VbhpDOxAbtw3GQa1Wb0HI0DuKZkzFr8hFljmOccDOL2MeiYFGrC8O7JNeM/ThT2LCnoPxf/4K4WzLUB/SJIJoMVeBzviy1hEM9VCdVMLYe9hE9wWEF/D/ZiZgvmOk88+6oW6GqGbWn+fdjuEHTYI9iJuQX9C8TqeraFc27HDkxvQrYu3l1Hk3NfjPmYlnRUOqwrDcq76hmj1uNbDIiluwU3FeisGQ6AGl7AHvyJXlxdIPeoSE+nldh7f9J9aUF/T+pf3tA+LdkzmHRkuTe1d5bMW0Td2ByWpcMoHNaBNWngNuHAoWtxGjMgXnQ3Vovo/j7J3Jejs5b6NonCYKtwxlrhtAMisrI8JirD0yseqhf7FRcbZyX9nxuZUh9ONj2TI3NZ6nuoYu486ibYYVSnxFNz2o7A2/gbJxfoGxTRm6Uztb+RaXtSrNpLcELmaiwEZglnfVpg5xDdRmaIVen/F+Wnvdmp/8MKvXnUTUGHFXFdkru5QF+f/MJhh0iRQxSl5K4GuQWpvafCrlNEVvgOdySZN0WQFTEgVvjBUjcFHTZHrIIv8If/v9iVBfpeKdC3WaStg+UCwyulitUZ+7bgqIrxP4jVW0af4uDKu7pHYWeWDiUOO3yUSuaKVHGsOCv04Ffxwmu4BUcWyO4taN+vuYpsIN1njGLs7szft4lAK2NmRn8Ra3BMQ9tiXCv2576Gvm0V+pqmpjginjByP8hyg/zUVaYP3k39B8tJSW5zxbgbRenfn8Y/XTF+ehr/TRM21U1QSsxG+FB6yttv5qX7+py+i5q1rEn6xcpZWDLmKhEon2ERvhSfnspkFoqyf9xWRCvIOuwX4dk5OeP60r2job3TxH+DG8R7ON5wIGVZgnXiyNEpnHuPSP8PlOg9P903tczScSC7h/2OD7AUz+Mrsepew1PiS/rL4mXsFF/VrxSfkK6fOJMRK325cMjXmfbFeF3sr5eL1UjY3Cv2maViH27kCvG8r46PyaUsSxdxlCGKq+709x7cnSc4T/wO9bPI59l960K8I1biPrGHLDOcc7sadNWMzx5GlOY/igDL2r4r2bcoR2boYLw1p2+2KDaKKtoq6sa2h3UprzT7mtQ7pVgpHubsFui6U/kvA21awAxx+N44Rj0zRYpfN2aLJoCiny4OBfbjY3H+6xWfx5phPv7Cg4rPjG3atGnTZurxL2crMc0fuH2xAAAAAElFTkSuQmCC\n",
"text/latex": "$\\displaystyle \\tan^{2}{\\left(x \\right)} + 1$"
},
"metadata": {},
"execution_count": 27
}
],
"source": [
"sym.limit((sym.tan(x + y) - sym.tan(x)) / y, y, 0)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "077lsx_IOr6Y"
},
"source": [
"Производные более высокого порядка можно вычислить с помощью метода `diff(func, var, n)`:"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "_v2Jxd5nOr6Y",
"outputId": "c83f0148-30e1-4f66-cc44-efe1f50c1dd4"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"2⋅cos(2⋅x)"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAFcAAAAVCAYAAAAzWHILAAAABHNCSVQICAgIfAhkiAAABApJREFUWIXt2F2IVVUUB/CfGqZZaFlRUURkVhZlVIJhQRmEQRFkUj30gSkSFiVkqEQ9qZXhg4R9WNhDhTShIkEMRFYGpk5FVgaZX6GWkmVWk+loD3sdPHPm3HvPzWZEmD8MzFnrv9ZZ6+y11t770oteVMQb2IVBPfjOq3EYD9UjDQ3CUmxEO/ZiFSaib/fGeNS4FocwrSDvibyWYidOrkWYIq3ADryJOXgdv4W8BX3+h0C6C61SrAML8p7Ia1T4mlmLcBNu03Ulz8K2ML7zKIPoLgyXqvaVEl1P5bUBW0ve0xAzI4gFJbpRWILt2C+1RysmlHAn4GOpLduxHjNwYgn3dnwQ/vZLlfcRHi7hzo34xlZNKFArr1blH70PFodubkH3dMhvaTIGT4Th/IJ8Eg5Kyb+D2ViEL7GywJ0dPnZjIZ7H1yFbif457uSQ75SqMfO7BmtL4lsXcTS7kdXK60p04Fv0y8lfCP7LJb5uDt28ZgI4Qaqw4qqMwAHswWUldufm/h8d9tukdsz7XqHrvGqTFuzMEr+nF54HSR92fYM8iqiVV4bFoXsgnrMqX6K89QeHfk0zQcwLo/cK8gUhf7yCj1eDO7lEN1yqkk05WRv+xKkVfA8P360VuHnUyivDedLo2oypwX1f5w4roh0/VQ3g0XC6AacVdGtDd0kFP23BHVZDvzX0g+N5miNjYT7uwBk1bLOuWFIhjgz18spjTvAO41Oc1MDvdqmLGiJbrW90buUM34f+lAq+Nga31kxcHfrzc7L7Qt4RukP4ENcUbEeGfnmFOGicVx7ZIlctoj3Y14j0WDhcr3zu8d8q98Ia+qxyh5TohuBWabR04Bedq/icsF1VIY4qeWW4V1rQnWGzsAG/b/B/qEd6Mpx9oevmkUczM3dRcCeW6IbpOnNr4TVdj0h9pCvv7ga2VfMiLeY/+EpayO+kzfviOjaXhv93axGeCsI69WcRnU8LI0r0+dPCdeF3s85V1w/LQjcrJ79R+a0pO1mMK8hb1J/pzeQ1Bn9Ji312yMaH/bI6dg8GZ2omyCdwv3T86JCqcm+Jgy3ByTAJL0lDfLk0h4dK9/zfpY+U4VlMl6qsRToNjMPlUkuPlaqFdDX9Q5q5WyLO68Nvm7SJHcj5vgdvRWIvFmJuJq+R0pm7XfrI+RZfK837G/BJiY+3cRcuwI9F5TOODO9afytLnI6WWmGX9HF2SEeW8SXcu6UPuQ9/S5vKLAwo8KZIP4Zskqpoj9TO05VvoP3xMz4r0VXNa5h0jPoVV5T4yS4Jq0t0g6UFqVfZxzVmSMlfdQze/Ui8e8wxeHePYIB06ljRw+8dKHVrS1HRryv3uMVBfC79CLRO55ncnbhIuqo/J+0VvejFcY5/AfYaTWB8Uf3qAAAAAElFTkSuQmCC\n",
"text/latex": "$\\displaystyle 2 \\cos{\\left(2 x \\right)}$"
},
"metadata": {},
"execution_count": 28
}
],
"source": [
"sym.diff(sym.sin(2 * x), x, 1)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "wCY8ug22Or6Y",
"outputId": "27d39293-ae7c-4e5d-90e7-634f92109708"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"-4⋅sin(2⋅x)"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAGMAAAAVCAYAAABSQFBJAAAABHNCSVQICAgIfAhkiAAABBBJREFUaIHt2FuoVGUUB/CfZqZZ2J0KjHkwrZfKokKwyMok6Qb1FEGlESImIVQkSIceMszSnrqHRoGCYmFJSJaikdmxBCMx0o5Bnq5mlJlkTQ/rO81u3HvPnONOA88fhpm91vrWZdbl+75NP/rRS9RQx8KK9S7CdxhWsd4yXCJiuecw2gR3JMOHarym+mRcir8wM0M7Vfi5HF9gH37GekzBwIpsL0c3TqhIX0uMwB784tCTcSzOw1kV+NWDVcK/oRnaVOHrLryGOXg5ydWxFAMqsH1Z0jerAl0tMQDvYDuecITasgSjRFc830S/Gjc6uAPOxFcijlsr8mErdmZtVdV2zZghArsbe1vI3oTVom33i6pci2kZmZr8MZWl17AYP+B3dOKGApuTRcEsaaK/ixUiUVl8g2fT76ty9K2Sn6gBybc6Hm/iLcY5mFDgYyU4X8za+em5Q3Fn3Jt43aJKH8OL2IiPMnI15cl4T2zEG5LdRSIhf2J8jt1OHNC7jfuBZGt+Du/CZOszHJOhP5nWPJez5trEm9cLH3qFQSLQbRqzuENxMjaJbjgjh3da5ndNeTLqeKSJNzHRVzbRh4lEbCmIIQ+Dknw96c3DwsS/Kz3PSs9L5E+g4Ym/sRd+9AqPigoZm6F1KE/GXpzcQm9NeTK6/Lsie7BTjK0sRqU1q1rYzGJeWvNWicwIMRG+xPQk/zYGl6zZJ0ZgLro0Kq2dz6uZtZeLipvbpLNDcTJmaoyp+bgFp+fI1ZQn4/WCeNaL4shirEbFtoMZSX4rTmkhO0fjv3kfx7eQ/1r8Z4j2y2K7mLXtYldGzyv4HLN7sf4pUbnTRND3i0DWihnd2aaePQX0Aw4eEfvS95A29E7H02IvuAa7W8h/n/k9Bb+1kB+a8acynKT9blpQomMSXhDV/KNGl9S0Pk3lYU3iZ3F2oq0vjahRGFvk72nNuF2cwrrTumdayA9M8tt7CM2d0Vfsx0sFvIsxRgS/DR8UyO0Rm+3K5OhkXIllFfnYg25RwaNLZB4SR9HN4ujZvO80Y5IoiE9FB60TY3mBiDkPo8XRd3ObfleCDsV7xnj5N9oVac316bmmus4gbtJ1jMzhzU68Tq33CBgnxtEOjTcEtynfy4g7WF2MQlTXGX3Fcvwq7gddIjFXiPdGm8Qt/r/AMnFBmyjeQfXgTo0T4TqxjzWjSyP5F+FN8f5qgug6ItmduFnEsy5Hz3XJzht9jqIP6FDcGVNFQnaI6tqNT/AgTszI1VTbGYPxLT4s8LXssybJjhTH0p9wQY6NnkvdhhzecLFxl3XOUYWHxZ815gjYvi/ZHncEbP8vMURcClccZrtDxZVgaTMj79Z6tOAAPsZxYr7/cZjsnitOn3MV34/60Y9+/IO/AfUvPuwYkD3VAAAAAElFTkSuQmCC\n",
"text/latex": "$\\displaystyle - 4 \\sin{\\left(2 x \\right)}$"
},
"metadata": {},
"execution_count": 29
}
],
"source": [
"sym.diff(sym.sin(2 * x), x, 2)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "tjTzUz01Or6Y",
"outputId": "6622bc8d-bc50-4f61-fe29-322cb200a0e9"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"-8⋅cos(2⋅x)"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAGgAAAAVCAYAAACqoKu+AAAABHNCSVQICAgIfAhkiAAABLxJREFUaIHtmH1oVXUYxz/b1HwpZq/YiwS1VhmUvRkLi6woNIxAGSVRhilSWiZkaEQS5KZp/iFhLxYGhSyX0yyoG+JKg6VbRcsUrJmSzmYtU2qtNm9/PM+Pnfu7zzn3nHa9It4vHLj3+T4vv/M7z/P8nnOgiCJOMrwNdADDChjzeiANPFqIYPcAKeBnoAtoA9YCVYUI3k/cCBwD5gZkZyMb1wD8gNzTH8BWYBpQmqfYDUA7cHqe/JlYjGTCr8AqoBaoB/5BbvzB4xk8D0gBh4EhAdlM5J4OAO8CNcBbqpdG7q8kD7HHqL8FefBlYgTQCxwEzvO4cRq87XgFzwMqkSR63ZPfDkwku1JGAPuQ+5qUpzXsBPYasfKCm5DFbgjhjwBHQ7gxQB2wH+hGSj0FVBu61cDnSJvpAlqB+cBphu69wCb1141UwWfAY4Zura7/jpA1WligNisMLoX98EqA1crVetzzKr87wRpi4yz6Nvccj7tVAzcYdtOBHrVdCyxC2uM3QKOnu0j9HAJWAi8B36msERgU0J2h8nakKpzfbcB2Yx3Nuo4kw8HTGmO5wV2DdJTvgbKAfJnavGbY3Knc0gRrSIQ5SJvoQDalBngP+BvJKL/1jQL+BTqBqwx/FwV+VyGL34e0F4cBwEay+3cL8tD9mJCdQMOQh9Nq35aJAaoflfGrlZ+q/13F1WG3sXLltyVYR2Lch2x4OnDtBqYYuiuUfyqG3zdUd4bBVSLZGjzjWoA/gTNj+K5U36kYug5L1eajCJ2RSBveA8xS/Y/JrHQfXcg5buInMjc21/WOZz8PycSXgUuAocB1wCeqv8TT367yKyIW7NCiuhUh/F7ly/X/XPpa3HIkcc4NsXXVWRdjHQBPqP5OpLVHoYa+/foC2ZMo7Ef20MQmYFeCK7jht+ki1hl+hyLvRb3Ig3PYrTZn5Fg0yDtImvAzokn5iwOyh1Teq9wxYDNwg2c7mugBJwhXCTvIbLVhcIkSNxE7CR+m+gVX8rND+HVkTzX/p4IuDeFdBQ03uOHABKRN9gK/kVlNF6jt1hxrmKN6rdhnm48pSFK0q93KHPqlqv9jDN+J4c6TF0L4LcpPNGzinEGrVHeawVWQfQaF4U2yE6UEGWwORdg9o3Zfkz1kWJiAvKB/iyTDLmQgujzC5kqN8X4M/4lRrc4PAhd63HgkM7qQTycOwSlulOEzOMXdrP73kJn9ZcB65Z4NyMdhv+G7iW+8J68n/Ix7Trlmcp85AGOBv5CEOV9lk9XH+gi7R1RnVowYiVEKfKoBjiAfHRcDHyAPJw08adhNR7K/GxnJXwReRVraZk/XfUr6BXgFOQPdqLuFzOnoMHLu1SPtdxkyvrqNHuj5fkC5xz35wyrvQYaNhcY1NaA/WmO3k92OXUu/BRtrNM7IEL7fGIj06SbkIfUgreND4K4IuyqkrDuQtnAAGUcnG7r3I2fFUeT9agdSOYM9vZnIi3Ebks2dSHuahz2UDEIe/JeefCG5p9lG1a1AOsjvwNVGDPci2mRw5UiHiaqwUx7zkQ289gTEnq2xx56A2CcNBiPT4MYCxx2CdI16nyjL1j2l0QN8hXx4bUYGmELgMuQMXoKcX0UUUURe8B9JjnfXVe6J4wAAAABJRU5ErkJggg==\n",
"text/latex": "$\\displaystyle - 8 \\cos{\\left(2 x \\right)}$"
},
"metadata": {},
"execution_count": 30
}
],
"source": [
"sym.diff(sym.sin(2 * x), x, 3)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XaQghwP8Or6Y"
},
"source": [
"### Разложение в ряд\n",
"\n",
"`SymPy` также умеет вычислять ряд Тейлора выражения в точке. Для этого используется `series(expr, var)`:"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 54
},
"id": "uS489fI4Or6Z",
"outputId": "213b105d-7a6d-4e00-80fc-e2e98d723b0a"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" 2 4 \n",
" x x ⎛ 6⎞\n",
"1 - ── + ── + O⎝x ⎠\n",
" 2 24 "
],
"image/png": "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\n",
"text/latex": "$\\displaystyle 1 - \\frac{x^{2}}{2} + \\frac{x^{4}}{24} + O\\left(x^{6}\\right)$"
},
"metadata": {},
"execution_count": 31
}
],
"source": [
"sym.series(sym.cos(x), x)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 54
},
"id": "Oj5dgBUyOr6Z",
"outputId": "32c9700f-c7ac-494f-88d3-415a9de6901c"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" 2 4 \n",
" x 5⋅x ⎛ 6⎞\n",
"1 + ── + ──── + O⎝x ⎠\n",
" 2 24 "
],
"image/png": "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\n",
"text/latex": "$\\displaystyle 1 + \\frac{x^{2}}{2} + \\frac{5 x^{4}}{24} + O\\left(x^{6}\\right)$"
},
"metadata": {},
"execution_count": 32
}
],
"source": [
"sym.series(1/sym.cos(x), x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "GDcDhH8vOr6Z"
},
"source": [
"### Интегрирование\n",
"\n",
"`SymPy` поддерживает вычисление неопределенных и определенных интегралов с помощью функции `integrate()`, которая использует мощный расширенный алгоритм Риша-Нормана и некоторые эвристики и сопоставление шаблонов. \n",
"\n",
"Интегрирование элементарных функций:"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "Mgw5bj8UOr6Z",
"outputId": "dc361d50-3c56-4f73-9f03-03223188fd1c"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" 6\n",
"x "
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAWCAYAAADafVyIAAAABHNCSVQICAgIfAhkiAAAAVFJREFUSInt1LFLXEEQBvDfqVhY2VikMIUe2BlTpIuksfIawaRJpVga8gdoKXhpUgc70wjXpRRbNShpEgsvpIil4hUqBBUlnsXuHefzXpR7B0Hwg4Wdmd3vm52Z93gAeILPqOAcu3hVC3ZlJO/FJjZQiCIDOMzIW8diFEhFR0aBCWyjJGT9He+Qy8hbx3lcRTzHNP5EkbbgAl8TvkWUa0ayRGuoYjLhz2E5xj40+PeFqWlEGU/TMnqGv/FSZ4P/YyRfSpxfwXrCt9BE9AZqmU5Fey7aJbdf/AKXmEceb3CC2X8J9OMMe0KzqlhFd8r5An4Izf6F9+4xRcVIXBXmvOeuC2lI+w4qDfsZnLYq0AxvcSVMSBWf2kk+Lsz2DvrwU2jiUDvIXwql+C38IeG18IovWclHcCyUZTAR+xZFRlslz+MARxhuEh+LAlutCjzi/+Ia2T9LY22H13QAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle x^{6}$"
},
"metadata": {},
"execution_count": 33
}
],
"source": [
"sym.integrate(6 * x ** 5, x)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "YYA51h0TOr6a",
"outputId": "f706ea51-9928-4d01-e99c-fd859ade8377"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"-cos(x)"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAE8AAAAVCAYAAAAHIbMXAAAABHNCSVQICAgIfAhkiAAAA3hJREFUWIXt2F2MXVMUB/DfzFAdJTMSBFEvxqASHxFNKvUg4UEfRKJp8IR+RCihCUnrWVHFg0h9VFKJhFLRpC8yiWh9JEyniPp66VRF59KhKsIYWuNh7ZOeOXPO3Nu5N2Ga+Sc395y1/vu/19l37bX2ucxgBhV4GQcwpwmNKzGGZS2JaJrgKvyDVS3Qegs1nNICrWmBPhxCZwu05ovsW9MCrf89ekXWvdBCza+xD+2Zob2aO2XMx2bsx6hI9z4sKeEuwXv4FSPYjdU4qYR7I95JeqMYwg7cXcK9E20pjjL0iUy6uWBvw6bke6zgew3n4foKzaaxHIfFw72BtdiIz7C9wF2bghzGBjyBL5JtO2bluCuSvSayKdPtx86SOAZSHFWN4jIcwVfoyNmfTPM8XzLmuuRbX6HZFObhbxzEJSX+c3PXC1Ig3+GsnP0EbDOxvuwSP8iZJbqnF+7niIXbXSfeTWme29P9mnS/WfmO7Er+/jq6U8IzSfyBBrgvJu6KEl+vyIrBnG0XfsdpDWj3Ju2+Ory5olTsxco05m3jM76IEfxQ5fw2iTT6eSU3dmeyXVQnaGIxxtBT4d+X/F3pfpWj2/Zp3IQzKsZmWV1V7/J41NFn+RAn1+HvF1mN2CZ57MGfDUyaYSh33Z2boB6yRalV+GuiOHeLZvIUfhLN4T7cLx54Bx4UNS7DSPqe3UAcw7nrpfijDr8zp99STCXzzq/wZ5nXXeLrxiKx9Y/gZ+Oz8Jw09oM6MdwmjjO1xN9Qh9+e+Hvq8KaEY6l5GxN3aYmvx8SaV4WXTDxytIlXsuHSEYFF+Aufi4X/RjS7CycZc3Ga680G4jpm5LvtvBJ/vttenQLZa3zWdGBr8j2cs18rFqWIrDPfULBvUV1TF4rtOYizk21x4m8t4We4I3FWTsJpCstF1ozidTyC58Q2fbfAfTwF8yOexTpxvBjD+8Z3vUP4XizKenEe60/cAZxY0L41+e4p2C9PWjUTS0ZWdq6peLZXRbOYW+FvCRaI1D4gtsaQOAIsLuHeImrTb6JRfSkyrljs7xIv54Miaw7iUzyEU0t0Z4kf5eOcrUccM37BpSVjskPwRyW+LtEoJsvM4wqrxWJc0QKte5PWwhZoTQvMFl17W5M6nWL3bCk6OiZyjxscxifiT4YB0cymggtEDV8n6uUMZvAf41/QRvWqQlEMoQAAAABJRU5ErkJggg==\n",
"text/latex": "$\\displaystyle - \\cos{\\left(x \\right)}$"
},
"metadata": {},
"execution_count": 34
}
],
"source": [
"sym.integrate(sym.sin(x), x)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "ytKDyX_ROr6a",
"outputId": "bc14562a-0d6b-4075-bd31-9d88085ddda4"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"x⋅log(x) - x"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAG0AAAAXCAYAAAABQcHxAAAABHNCSVQICAgIfAhkiAAAA8BJREFUaIHt2UtoXGUUB/BfkhqbVkg3QhUqF42RbrQiCmqrC3XjVinqQtSKGytiwUXrQldatS4Ua6kPSEGohYpC8UFWPkHrE6vWCm1TNcYaRKVorFrHxfdde2fm3mQed5hI5g9DZs53zv8755577jnfDT0sKCSoYKyLPuzAj1jaBsdFQhy3l+LRPEeiu0m7GP9gQwlcL2EKp5XANa+R6G7SxvELhkrgukSIZVMJXPMaie4lbVSosqdL5NyPI+gvkbMjqHVwXEjEdTXyPiE5FWxugHct3sKvmME+bMSpBfp9uBtf4g9M4kkMYyJ+srgt2uwq4GsljhdwFq4p4Owk2rruF+CEcPEGMvLHouH2jCyRX2kPRvk0tuFRfB5lb2AwZ9+n4voknsAWfI29UTZRo/8h/lY8gDQTR4qr49qWAs5OohV/qzAWFW+JvzfF37tUV2aiPmmXRtk3WJ6RL8Ie+X1jTZQfwLKMfFCo1orqpC0VEravpDhSDMf1vXPwdgpjmvO3CiuER9phrI+Gr6uvkER90p6JsjtyeEeFu+lQjfzZaHNzjs3l6pM2GmXjJcWRxQx+mIO3U2jF3yo8FI0qeBdLcnQS9Un7KMpGCniPxPXhHJuzc/QH8JfqpKXVXNTPsmgkjiwmhSqeCxMZ3kY+zzfA2bC/iwqMpzPf1+H3BjdNkzFVsD4lNPtlwpCStTmao38CP9XIZuLfxQ3402wcQxn+2XBQGJgaxfcN6rV63d0kjNNTQsa3FegliivtnAKbtNKyvetjzVXamVH/ncIIAhqNI0V/1D84h16n0Ky//+Fa/InPcDq+Ei7aeTm6ifqkpf1pXY7+iPye9pzmelqf8OpqOke/lThSrIx7vTiLTqfQir9gtVCOh3BGlF0vBPJyjn6iPmmXRdnhuHmKgchRwX01PFc6OT1me90g3lSfNNituHc2G0eKW6PO+ll0OoFW/bVKeCU0pf7R9kEkWFMjT+Sf0x6O8qPYikeE8byCt+VPQ9vj+nd4XDgrHXDynFZbnTdG/TtLiCPFTmEIWVGw3gm07O+IMOb+jPNz1tND53s18kTxa6wbhJ5zTGjYXwgVVjQ89OMe4bFwXGjcW4XKO4ZPa/QHhZvi/RLiEPeZMcedXTLa8Xde41zB8Z05axvj2oUl7HNX5FpdAteCwXL1p/4leEW4mGtzbBYL0+ieNvceEip7d5s8Cw6bhQTsiN/H8K2QsFeFiTEPV+B+7f0TdCUeEB73PTSBq/Ca0JCP4zd8gntxShf96qGHHnro4f+DfwEpTVUnuR7TrAAAAABJRU5ErkJggg==\n",
"text/latex": "$\\displaystyle x \\log{\\left(x \\right)} - x$"
},
"metadata": {},
"execution_count": 35
}
],
"source": [
"sym.integrate(sym.log(x), x)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "j13MVogKOr6a",
"outputId": "bc5cff74-d520-46ec-d78a-a2024495bb4f"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" 2 \n",
"x + cosh(x)"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAHoAAAAYCAYAAAA1Zem1AAAABHNCSVQICAgIfAhkiAAABKVJREFUaIHt2VmIXFUQBuDPuMYoiaKiYqTRuMUtIgqKggmKKG6gBPWp3YLEBQ0oJD7oi3tMFJG4REieNFFREEQDYtwgZlFxfzGLGEcdl6hoXDKOD3WauXPn3pnuOz2ZkfQPTfetqlOnbv+n6tS5lw46aAJzsQa/ohsv47hRjaiDEcFruEqQezxexLfYdzSD6mDksRd6cOFoBzIKqKEXSyqOX4rvMWEYMZycYrh2GD6awkFpojNGeqIxiJrqRJ+CfzGnDXG8iC6RdCOG5fgAO4/kJGMUNdWJXoEtGN+GOE5Nccxrg69CLMA3OKzi+LoI8Kw2xbO9UVON6CNFNj/Zxlg+xyaMawjG5QxWiGAvzcl3EjfQi/sKHC/EFZiB9e2JtRJOxTJsxl+ihK3AzALbmXgLv2ArPhaniN0LbC/C68nfX2JBv4nZJXHU8Cx+wJ9YiwtKbK8W/++yEn0VTp7FoTinxKcTRTP1mf7l96Hk8ImCMY+ITvuYMqdNom54GX0dtgkinsM9WIwPsTJne0+aqxuL8CA+SbKV2C1jOyvJu0TWNfyuFkfLBmrJ7g3RVK0SCbBUkN2D6QVxr01xlzVhVTg5O+nml/hE3yqpp+t56XqZgRXgMXGGnoEDM58qjUBddaKn4h/8hGML9Idkfp+W5vlKxNrALuI5QH5/WycWzwEFfvfL/K6lsb24M2d3bpK/kpNPECR/XOA7iyWa5wQmJv3qwZxOFqVsA25MA17Vf5U30FvyuWuIwItQV53oR9PYW5uwfSrZzirQHSmyJ7v9rMPv2GcIv7Xkd6PiZnSTKOX5+XpFeR4MrXDSwFZRaQfFvfpIexd7DjWgRWxUvkiKPkuG8Lcm2R3dxNzrku2UEv2mpJ+YrufoK90LcQn2LxhXS3Yvlfh9RyyiLBrVpWx/zqJVTjaLaoEoV0Xozvy+Bn80EUgreBiTcrJpuFjsaRtzug+H8NfwtbmJuRsEdpXou0QjM0k0agtEJs7GzbhF/Nlv4jaxx2axpcTvNgPL7Nb0vUcTcbfKyfiM/0JcKdr9LnFDi5oIoh2oq166q2T04SX6RkbnF6IkO1+U/x78qC+7awavPiuTPouDk+ydIWJulZNxyf7LMoPz8Tc+EjfwhWhyjhrCcTtQt3326MXJ9poC3RQD9+gyPK3/saemdaJ3Eh169wDrPlTh5Jg01wtFyjNEOVgvHmXCZQbfd9qJuvZ03VML9Nmu+/Q0zwb999qdxX324o6MfLogJI9Gh35euq5pnWh4XnnPUJWTq5LNjXnFNLG3dBlY0hpl8cxBHLcDdcM/R/eIo9By3I3HRal+I2d7f5rrO3FEfEAccXrxtv7d7BZ8LQiZL86vq5PtWuya7GqqEX1Fkt+Qkw+Hk2dETzA5K5wi2vCfcULBoMbhe1WJ03ahbviPQE8T5ep7Ue6+EceQywpsLxd742/igcanIpPzjdH14kXBepFdP4nn+bdj74xdTTWidxML7r2MbDicTBRN2Paowh20iLmCuJPa4OsmO+4bxDGPPUS3//Iw/YwXVez5vGJHfJ04FrEN74sXKmtFY1kFR4ge5QHl5/kOOuiggw7+H/gPaSR57PoJdFgAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle x^{2} + \\cosh{\\left(x \\right)}$"
},
"metadata": {},
"execution_count": 36
}
],
"source": [
"sym.integrate(2 * x + sym.sinh(x), x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "m0PmluWHOr6a"
},
"source": [
"Специальные функции"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 55
},
"id": "AQvEZgyGOr6a",
"outputId": "d1d8419a-d2c2-4ac2-bae0-b252478a628c"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" 2 \n",
"√π⋅erf (x)\n",
"──────────\n",
" 4 "
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAHUAAAAYCAYAAADEbrI4AAAABHNCSVQICAgIfAhkiAAABYZJREFUaIHtmX1o1VUYxz/XzTldbr1BKg3KZHORtWZrvWwDa00oklAhWkGtzMCUykLUIC8hKZTp7MXszVm+lY4lI6zVPzXtTalZ4pAxs4K2lrhoNXO92B/P8+P+Ovec3/3d3bmZ3C/8uNzv85znPL9znvOc55wfpJHGGYAlwF7gV+BnoAm4bFg9GmZMB04AJwfxGWq8D9QiEzkFaAS6gHOHwZfTAluAecPtRBLIBdYCR4B+JIgWGzpnAX8DtwbY2Qh0AzkD9GOq9j1ngO1PGXKBHv5fEd2EDOa7wHIgClxq6IxXnXKHjVLgH2Bhir40Ap1IEAXhAiTIngvQuYtYpkspUOYADakYGGJMRl76vQR6bwNfARkOeTPwCzA6RX+uVn+WJtCbq3rTHPJ89aeXQZjUFmBGKgaGGPOQl74/QOdZ4EdgokNegKzSlwfJpzbgO2BEgM4u4Cj2IIsAHwIdwNOkOKkTkT1lpEN+C+ELoysdNmYRe6F+oB2JatvLTVNbzyArYCdwTLnHA/ou8tlYjaTDyQHvvVLb3eiQN6t8lsFHgHqVrfTxy5Sb7rCXixSiGxzyh5Agq0S2klCTmoPsMSaiQF1Au3LgRe3kgOp7zzblW4AniI/SDGCr6rQD64A1wCHlNlr6e5RYau1H9qsVwGbgeu23G/jT58cyYgFSh1S8/km2YR/wF+4C6Qpk/zvIf4Nvlfq33tCvIhaMNtSo3JYRi4DjSDBCiEktQAb2d2Rg/IgAh4ESV2PFbdrJcoNfpPx9jnbPq3wFkOnjRwJ7VGYWN5uV7wWusdjMAPqAry2yF5Az6g3AON9jFjA5yIR+4/DbQ736co/+X6r/3yI+gPNU9oXD1nbgNyDb4DORADtEbG+PkmBSxwFXAR8jE+t/wUpk9SWC18lsg/dW6lRLmzIknbzjsOkVDbUG36b8vY52U1Reb5G5UnPU0CtQvtnRh4d8ZAV9C8wnlkGyHPrHkSxhIhsJ0u0W2ZNIRrjWx0VxTKq3Mrr02QRUADOBN1R2N/YUaKJYf/cbfAkS8bbAWIBkgj7iBxViNz3+iM9BBrwb+6R5fQJ8aZFFHG1MnKe/PQn0fkC2i8XIMeQTZPz6HfrHkGOLiZuQxdRo8GXI6l8FfJrQawvOAf4gFp1jkJeaEKLtESTS/IM2FlmJrhTWTbjiqsrX5jrlXg/wpU51KkL47UKx2tgZQnchMV+DCi+QSe218BuQIinPx2UiKfcgMMrQj5JE9duALPXxwJ0kPucBnK0d7DH4CuXftLTJVtlHYZzywUtxDwTotCDBNDZJ235M0H52J9Cr0b46VX9dgO4I1e0w+Ayk6t9l8N64hnnWeI0yiccmJH3UANW4U5wfQakXoNXSxlvR54ewb7O5zyGPIFVpO/YVERadyIV/YYDOzcj4HECOPS3IyvGqdxOF6p85HpVIujdT7wngNUffJcjxcLf2FZias5AUcVh/w9ykPIxEy1yDf0X5ake7/Sqf6ZCXE39ObUVe1lWIFKrNbcEuh8IOtTXJ4VsfMk7eMXC26rsKv1qVzzf4tUh2tO21LkRJ8vLhJW3wakj9etUvM/gG5R8BLrS0q0bOkieBD5BiYDVyddcBfG/oj0IKENcqBbhD7S0K6XsQPFsPGnwxclXXCVxiyPbi3s+3IkVjvo+LIO+ZKM2biJLkpJZrg8qQ+q1IpI0x+NuRvaIPeMzRthRZEV3IBB9FCqv1xN/keF87zEO9H971WVWATlhkAT8Bn/u4SeprD3C5pY13wfCZwechxxlzFZeqfrIfDKIkOakRZHDClv9nMpYQfL0ZFguwfw16SvmLU7SfRhLIRi7hm1KwMRr5cLDDImvDXkimcYpRidwdD/QjeRGSLi8aJH/SSCONNNI4/fAvnAigte5+Lm8AAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle \\frac{\\sqrt{\\pi} \\operatorname{erf}^{2}{\\left(x \\right)}}{4}$"
},
"metadata": {},
"execution_count": 37
}
],
"source": [
"sym.integrate(sym.exp(-x ** 2) * sym.erf(x), x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "xZUwwebaOr6b"
},
"source": [
"Определенные интегралы:"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "pu1g01xmOr6b",
"outputId": "dd0c954e-db90-4f83-bdec-d32d34c6b0b9"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAABHNCSVQICAgIfAhkiAAAAMRJREFUOI3N0r1OgkEQheEnlhqDxlYrA9wCLRfkdWhlLK30FmixsOMe+CnQRmOnUQstxGa+8GVgCRgLpjnZs/PuZHcP/1jHuMETvvCAKxyugk7xghl6uMB9rIc4KoH9aDpL/mX416VpM0yxk/b28YFP7EkN3dA7/CTwHQPsopPBdui4cI1JaCuDjdC3Alj5BxncqOpgdWJjWWPNf83gKLRVAJuhC2+w0Xfk+lMAqqn1yJ2bR25kReTgBLd4xjcerRHyLa5fD28wqzSkqLgAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle 0$"
},
"metadata": {},
"execution_count": 38
}
],
"source": [
"sym.integrate(x**3, (x, -1, 1))"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "Zll3wjFfOr6b",
"outputId": "aafecfd9-bffb-4480-b8a1-a99fd418e426"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"1"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAABHNCSVQICAgIfAhkiAAAAHZJREFUKJFjYKACCGFgYJjMwMBwmIGB4RMDA8N/BgaGJYQ0XYAq/MzAwHCdWE2ODAwMqgwMDIwMDAwOuDSxoPH3EzKVgYGBgYkYRaOaBlwTeuQGQDEDAwODBJS2ZGBgWABlv2FgYChBN6SBAZJ0cOEH5LiMzgAA6XoX52TB9a4AAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle 1$"
},
"metadata": {},
"execution_count": 39
}
],
"source": [
"sym.integrate(sym.sin(x), (x, 0, sym.pi / 2))"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "hGUfxkUiOr6b",
"outputId": "a55f7fde-5408-4a99-e9b3-4c3fa6efde18"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"2"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAABHNCSVQICAgIfAhkiAAAAMJJREFUKJHF0j9LQlEYB+DH6BNYhJ/HxcmpD9CgQ0OImxAIbi5u7eLSJji5NzQGDRItDtHQ3J0aSnS4LxJytBMN/eBw4XCe+77nD3/MCdqYYYkPFLhHC0cpdIk13nCLIcZ4j/kpKruojmbijzW8Bjz/TevXgW7s6zORz/h+5VY5xiIqNXLRKMA8F3QCPKOaA64CPClP8Md0AyxwlgN6AR5xmgP6AR4c2MP3Z3GBCVbKSywS619izTaDqHJo3OW0+8/ZALIVMPhgrAZWAAAAAElFTkSuQmCC\n",
"text/latex": "$\\displaystyle 2$"
},
"metadata": {},
"execution_count": 40
}
],
"source": [
"sym.integrate(sym.cos(x), (x, -sym.pi / 2, sym.pi / 2))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qpf086bLOr6b"
},
"source": [
"Несобственные интегралы:"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "8gDz11NmOr6b",
"outputId": "648f43ed-f771-4d2d-f8fd-c6c7a5b74952"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"1"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAABHNCSVQICAgIfAhkiAAAAHZJREFUKJFjYKACCGFgYJjMwMBwmIGB4RMDA8N/BgaGJYQ0XYAq/MzAwHCdWE2ODAwMqgwMDIwMDAwOuDSxoPH3EzKVgYGBgYkYRaOaBlwTeuQGQDEDAwODBJS2ZGBgWABlv2FgYChBN6SBAZJ0cOEH5LiMzgAA6XoX52TB9a4AAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle 1$"
},
"metadata": {},
"execution_count": 41
}
],
"source": [
"sym.integrate(sym.exp(-x), (x, 0, sym.oo))"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "DdXGZr4dOr6c",
"outputId": "fb60e9ec-55c7-4197-922d-b5beebe84445"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"√π"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAACAAAAAWCAYAAAChWZ5EAAAABHNCSVQICAgIfAhkiAAAAYhJREFUSInt1b9LV1EYBvCP0Q/SEmtLXQyKoEWds7GGIJoSFFwCIaeG6i9oi2YHaYiyIEwcxaClWkMJlwZxE0QMLbUf9GM458a3w710bn4hCB+4XO7znuc9zznve85lD/VwEZ/xo4lPLTzG2C4X8ddox3scb2bSfTXGXsULrDfTQB28xOV/NflJrOJARfyS/KbraxTuTxK1CbVeSfgRPMHXCgMbGMd1LGKqIXYGg3iF51goS3A6TrCFySTWgiX0V0xe4IqwwjsJfzvy18pExQ5s4h66YqIj+BhjA9jGmz8Y6I3v+YTvr+BLMRrdjjRw93ErQzsTtacS/p1QukM5Bo7hE+bid6tw9jsztMv4IJSswFF8x9ucyQs8wzecwDBmMzQdwupfJ/xA5B9WCcsuokeRHxJK8SDDQFH/tMNr1b/AQeG2W4rvwxmaG8JKRxN+IvIXqoRlO/AFT9GDaexkGKjageK/cRbdGXl+4Zzg/Hzm+Hmhb1oTfhBrwjG+WcdAC+76vaP38H/iJxZ+Zabs5VHhAAAAAElFTkSuQmCC\n",
"text/latex": "$\\displaystyle \\sqrt{\\pi}$"
},
"metadata": {},
"execution_count": 42
}
],
"source": [
"sym.integrate(sym.exp(-x ** 2), (x, -sym.oo, sym.oo))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DJkW2H_yOr6c"
},
"source": [
"## Решение уравнений\n",
"\n",
"`SymPy` способна решать алгебраические уравнения относительно в одной или нескольких переменных, используя функцию `solveset()`:"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "SFa2w3oaOr6c",
"outputId": "9ab5fe84-ba5e-4cbc-e7c5-7af2ae99a209"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"{-1, 1, -ⅈ, ⅈ}"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAIYAAAAWCAYAAAAFH+TSAAAABHNCSVQICAgIfAhkiAAAAtRJREFUaIHtmj1oFEEUx38xShAlxjQK4kclRgvlFMFCOK0CIipqY2UriqJY2OVAxOAHFjZiIQeKhSAYsBAsFBQUQQ34kaAETlGx0CKJECFqLN4sd7fZm92Z29l1cX6wzHFv/u/e7bydfTO74PFYcAB4CowDv4EN+Ybz33ECmEHGIS19BZgGvgJ3gNWmTtcCf4BJ4BpwGlhqGaCOfcBl4BEwgfyRGwXwnQU3kZiNB0+jLwODwD1le2bq9LASHrUMKinD6ncmgRHSHTyXvrNgBbAG6HCkf45c/AvDhjkap72qHbEMKinHkYzuBg4VyHcWfARGkYR2oR9FkmZx2KBLjE7VTlsGlZQHwHvs/3xevl2zDYn7vEN9MLadYYMuMTz5UlLtizz0usToUe2UjWNP22SRGD9VuyhsaJUYHcBWZCr6YBmYpz1KwA/gnUN9TbXlsCGcGP3ARWQJUwKuIutdneMZg6NIKwJTaqR3LhYgRXOwqjIlqf46cuFfAG4BZ4BVAHNDHfuBY+rza2QPQMcY9ekoCV8M+haNNM/FeuSitb2NJNV/Bs4Cl4D96rv71GeSJrqBXUht8YmIitUhZdzNLC59p80RJNaDjvU7VL/HwDpgXmCIqjEmgCHgNrAM6LMMzmNPViuS7aqtAG9o2JrQrUqCorNX0ycvqrR3ReXlOykl5Lb0NsJWJT4+nb6RYGOrFjaEa4xGguxxvdexWx1QfxazBTkBAN+AkyFNENOvHH27ogt5TjXcIoa4+OL0Jr4iGUAys2wisqCCvnqvRWheIre8WVu5Gfp2xUYktist7HHxxekbqaq+K00CPKVEe0xEGdCDvAJwrmC+0yDt+IaQMV5iItqrRHeB5fw72+c7kfuni1cAXPpOg7Ti6wI2I+/ZjGM4tvOBVzRPvf5FneJToXlMB6I66YrPKWATsqTpQ57Z63ZBPcXgIVJsfgeeIEWqx+PxtMFfG4zoiaaCIUgAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle \\left\\{-1, 1, - i, i\\right\\}$"
},
"metadata": {},
"execution_count": 43
}
],
"source": [
"sym.solveset(x ** 4 - 1, x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "OAE2ScXyOr6c"
},
"source": [
"Этот метод принимает в качестве первого аргумента выражение, которое приравнивается к 0. Он также имеет (ограниченную) поддержку трансцендентных уравнений:"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "7hdOdGFjOr6c",
"outputId": "8f197c6c-0c05-4d67-902b-1640d47983e5"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"{ⅈ⋅(2⋅n⋅π + π) | n ∊ ℤ}"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAL8AAAAXCAYAAABapZ6FAAAABHNCSVQICAgIfAhkiAAABsxJREFUeJztm3mIVVUcxz/jvmurlpRm5ZKCOpYtlEymKUaYitpKUwYZaYqEZSI+0kyLyBZQM0qxwpZBzRZLULHRtLJGTYfM6hWaZhuaaGX1+uN7bvPmzLn33Xt9zzG9H3jc4ay/e+45v+3egYSEBCc3AxuA/cDfQA9HmwlAxrS1WQjsA5oWSsATmF5oXe+K2C9l+rXPszz/J1LAEWAvsBToGHWAi4B/gN+AF4BpQBtHu1fQYtsTXGL6T7DKT0MPdAmwEziMDlc5MAqoE1XQE5glwB6gWYQ+KWp387cDpgOfoeea8fmtKaAMJcBMYIWZ6yNXo6KAAe4FngXGAU8HtDsXaAJ8YSbyeB/oDZyFNrjHaGAOeqirge+A1sBQoCVQBgy3xjpZ6Q1sBCYDM0L2SQFTgfOAdEGk8mc8MAtogDbcdnQAXOxE+8uPFsB7+O/RRkBnoAJoCHQ189psAnqa8Q4Gi1/FFLQB+4ftkEVHpPWfc9T1Ba6npoZvgw5CBhgWY85jQSmSr+QYzlkJfEt4i5iidjT/dDPveuQ1FJL6wDJgMFAPKcwRPm1fNnKdY1cELWhdcz0S0OZqM/DjVvmd6MS+6uizCliODkc2e4G55u8Sq66/medRoBtytX5AJ3k9cKnV/jr8za396xlwf/kkrkyLkXWNo4TCEHVtXZQADwErgT5I4xeKOsAi4HXgTeB54F3gNZ/23v6ta1fUO0pBis31U6u8HwqQN0QczxP0L6vc2wwdgY/RIi9Epm4QWoQLUHwCMrVzgHuAbcAbWWN1BkaiGGMlsDmijHGJK9M6c+2P3IB8E3VtXUwEDgG3UfPZ5ZMiYD6wFngJeArYig5AXpmNNELQyfdMSqessqZoAbZGnK+e6ZMBBlh1i035PqoOnEeZqbvKKr/BlE+3yiea8lER5YOjd3viyNSSgKDNQYpobk+ctc2mOVJ0Lhc338xGFgZ0n9NC9JmL7qG7XeGn+YvQDWeQv+lHMTKPO7LK2iITsyeEYNnMRGb3HWpqOE873UFNK1Npro2sci8tW2GVF/uUHwviyLQf+B25PoUgztpm0wG5IuejzRmWXAGvzTTgTxT4j0NZw7Eh+qXNtYQcVn4g8AQyfxmqfHAXTdGJ/8Aqv9z0dfn7ftxn+lQCp1p1zVB8kMYd+Xup1g5W+VJTfqFVvgO5Vw1zyJQmvI+eARbkGO9oZNpNeHciRXjNH3dts+lOtHWKk+q8H5hn/r4duWVBmcps2qL7O4Ligkcwa2Nr/oHoVAF8DjwTMGh3dOJtbeGlNYO0RTZjkO+2HbgG+MWq74FudCXu9Gcx0o7fOPodRBrGoznyX7cBf+SQazbQyjHmYLT4aasujCWJK1NjqqeL80Xctc3ma9N3JlUuST6528hxKzAEZQpvJHwqfDcK5p9EKXTQ/aZdjVugB3wY2IUjSjaMMQKUWuVnm/LyEIKNN223Amf6tPGswmhHXXOkuVZb5a1Mn3VWuefKLQohm4tS4vv8cWWqg+7xq5DzpAiv+eOsrYsVKFuX7zf5t6CAuz5SjG+T22LbeFm2chTE1/cqXKnOAyiHWoZMRhefQf0yPXuAH6keBLt4AJ3GCpQy3efTzvNJP/GpK0IvMrLxfGvbxzse/P2oMnVC91gImeOsrYvHkPKaT3h3JBeDkbIZgdZoEsqI5bLYNn3NNYWs63+p+6A8vxfo2j64RzEKxOycbgalok5H5tzFFGQmN6ET/VOAHMUo0NniqOtlrvYB9Assu5lr1ExUPogr02XmGkYDRyXO2rpYhZ7nTSjn7vfcw9IP+flDzVizkMsS+g1tFqeYa9quCMrzeyfEdUAaord4FbgDsTL0lnYA1f1bUMDyMFXB8n2O/mkUQHrzbEEPycZ7QGE1v3eQu6JDu8sxZqGIK9O1aK2W5VmeuGvrx2QUr81AAbz3ecMBn/Z+2Z4rUFA6CDgDvRsZDvwaUg4bb/9Gev8wFX//1vvi0C8b1AC9JdzoqEsRPhPgzTPPHsRQiV6+2Ka2Am2YJlb5SGRlDiHNEpVS4vv8cWRqiWKvpRHmSRHO54+7trnogKzAZuJ92LbdzF2O4ogvzd9+vxdzyLPAzNcuyk08aDoNidIpi0kc288HTkTGojW8MkKfFLX7VefxxjK0Hq2jdBpmOr2FPgqK+qlxIxQ3LI/YL0E0Br6n+mcQYUiRbH6QW9cbWZ/9RNy/jan63MD7uf6ZJYg+yH1K/pklOl3QRm4fsV+KZPOnqL5vp7oaBQW8h4GLUaqoC3obuDeiEGvNLyE6leghJkRnDQpwfwY+pHZS2wm1QAk6NPbb6YSEhISEhJOcfwEJRBkanzIRjAAAAABJRU5ErkJggg==\n",
"text/latex": "$\\displaystyle \\left\\{i \\left(2 n \\pi + \\pi\\right)\\; |\\; n \\in \\mathbb{Z}\\right\\}$"
},
"metadata": {},
"execution_count": 44
}
],
"source": [
"sym.solveset(sym.exp(x) + 1, x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "3RQH1l7XOr6d"
},
"source": [
"### Системы линейных уравнений\n",
"\n",
"Sympy способен решать большую часть полиномиальных уравнений, а также уравнения с несколькими переменными. Для этого в команду `solve()` передаётся кортеж в качестве второго аргумента."
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 37
},
"id": "nxTi8zjROr6d",
"outputId": "004b027d-2428-4f3b-b53a-034fc0d95bb9"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(-3, 1)"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAEsAAAAVCAYAAAAOyhNtAAAABHNCSVQICAgIfAhkiAAAApVJREFUWIXt2NuLTVEcB/CPSTJR4xaTIomR8uAepUFupZTwB0g8epEXXsyLXF7JgwchD4iQB6Wk3CJlJg+US0gYjHsiuT389uY4M/uco3P2mQe+tfu11/mt9f2u31rr91tn8x9V4wBeYEBvC+kFTMMPrK3EeQa+Y0MOQnbgHB7jE16jHVswNAe+FKuwCxfxXgTjUAn/E3iGgeUGPou3aKxeYzd8wVXsw3YxgetC/BOMyoETOhKOD7itfLBmJj6bSw3aInbV3tpo7Ib+Ge1bhbg9OfHOx3j0wTzlg0UE9REa0oaGIoc1yYBHaqWyCJ8z2o8mdnxOvOdxVwSpUhzGaCxKG4qDtRDfxFGpJ5Yl9madeUvhcmJ/BatvwY8DMFlsv485C9kokmcTpmOOCNT2nHn/BtcT29rTjy1im56tg5DOhCt9zmBEHXipPGcRFbszfSk8hmnpfpPR8aE/J1juKSWmWeTGZqzAWHGFmFrBBOqJ1xiWvhQew0+JzapY92Un6J7wtAKf5+JOcwN3cBCT/oIjbzT6HZc/gvUisVmXwwV5KRIl+pbImcPQlSNXpWjAIDwobEjxDC8xoc6iUoxM7Lde4i/GBJEqOtKGwmD9wAWxsuNyIG8R1a8YDeJSOhxXdM+Z+xNtq3PQVAqzEns+behb5HAcK7EE92pMvhTbcEls7VeiAs4VCb4T63roly7o1yq4lycPUVRgtlgI4thvLOqzWOzyU1mD9hNJ91oVwrIwCbvFtu4Sk38n7jNtGJLRr138+R1cBXeb0pX7YZF/k0jsJ8sNvCkZYEoV4mqFQWJ1d9aZd72IwZxyjv1FdTqdt6IKsExcV5rLOdYQjeLac6zSDq3iG9O/+PFvoji2Y3pXxn/8O/gJkaSWhIK+WmIAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle \\left( -3, \\ 1\\right)$"
},
"metadata": {},
"execution_count": 45
}
],
"source": [
"solution = sym.solve((x + 5 * y - 2, -3 * x + 6 * y - 15), (x, y))\n",
"solution[x], solution[y]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "QWUbZjjtOr6d"
},
"source": [
"Альтернативный метод для полиномиальных уравнений - `factor`. Он возвращает многочлен, разложенный до неприводимых членов:"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "Bd9MaHXDOr6d",
"outputId": "b26d4f80-4680-4923-8e12-988ca5c1d798"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"⎛ 2 ⎞ ⎛ 2 ⎞\n",
"⎝x - x - 1⎠⋅⎝x + x - 1⎠"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAOAAAAAYCAYAAADj7PGVAAAABHNCSVQICAgIfAhkiAAAA/dJREFUeJzt202IG2Ucx/FPq6hrhYogqFAP2ioFXyqiIFSIRS+CKOhFT6l6s168tae9KeIrIqKnCIJWKhW8aC8eVFArWhRUkNbtwW5tD4pCq7YaD89sNzudJM8kM8k0+3whtHnmP8/88nx33p5MSCQSM8lO7McfOI4PcMNUEyViSe5mgI+wXRB3I/biKC6bZqhEFMndlHkTx7Cuwj4vwb+4r8I+Vwu3oovHI2qTu+ZRxp/b8B+eqjjElVmIrRX3ey7yEF7BJ8JlXhdvDVlnLxaFnaEfyd1kqMsf2IffMTdexrN4F9/gvIr7PRc5IEj7Ez+IE3h7VrdrQE1yNxnq8uc64Qj6xvgZV/ACjuCaivs9V7kLm7AGLXECCbIPY23Bsia7awufsVVBniZQmb+8yEezTncXrLwv29CDufY16GTLnilY70U8jG04FBGyDkbNXhcf46dsu2V4B1fjnoJlg9wx2hg0wR2rwx/4CqcV38DfLNyIf2/lpcjzWZDXC9Z5WZg921wyaNWMkn1StMQfQe/Oap8rWDbIHeXHoEp3beOdAVeDP+sEgd8N6KCTddDO3u/K3u929tn0VeEGdRuu6HkNvQmtiY747JOkJV7g+qz2y1x7jDvix6Bqd23jX4J2zK4/hHuIrnC678cGnMTP2JHVf4gLCmq7fV7zEUHroEz2SdISL5DwGY7m2mLcET8GVbtrG38HnGV/4A7LR5RBPG1ZyGe4OHLDsSzo/wdQ9Ir94Iyevc5MrZLr/CKc7XqJdUfz/HVK9D1K9rJ5yrhjTH/n9yw4mf170ZAOjvf8/zGciNxwLAfxV4n6IyVqR81eZ6ayzFl2tUSsO+r39xIuzbVtwf3CQwILuWUHSvQ9SvYmuaPYH7hK2JM/HbDyI8JU92JW+1rV6Wqkqdlb4o+ga4XPcDDXHuOO6Y1B2/iXoLPsD2FK95iVR5le7sU/+BaX40ecwvWl4k6HJmdviRe4Oat9L9c+zB3THYO28XbAWfd3hj1ZwcZc+1bhdH9IeCyJ8DhOF++Xijt5mp69JV7g9qx2R8Gyfu6Y/hi0jb4DTjv7MFqq8YfwpWsXT/S0bREeb1rEtbn6/Vn9ndFxJ0tTsz8gTD50hJm8rnBZstRW+D0R3hZu4DcULCtyRzPGoG20HbAJ2Yuowx/ClO6v+CJ7v1GYMv0NNxXUL32x+HmZ9BOiydnnDZ6JWyhYZ71w897vqJ93R3PGoK38DtiU7EXMq97fGXZmndxSSdREVTwpeBn0i4TkrrnE+EOYyj4s/Ao60QzmhOnxPUPqkrtm0tdf0c9LTuNrXCg8X3iq1miJGDbhbzwr3BP1I7lrJrH+EolEIpFIJBKJuvkfH6D6287FdMwAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle \\left(x^{2} - x - 1\\right) \\left(x^{2} + x - 1\\right)$"
},
"metadata": {},
"execution_count": 46
}
],
"source": [
"f = x ** 4 - 3 * x ** 2 + 1\n",
"sym.factor(f)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 39
},
"id": "6NI0YnpsOr6e",
"outputId": "0f3ec20d-61cf-4d5c-f8c3-b8f1ef05713a"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" 2 2\n",
"(x - 2) ⋅(x + 2) "
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAJUAAAAYCAYAAADzjL9JAAAABHNCSVQICAgIfAhkiAAAA+xJREFUaIHt2k+IHEUUx/HPxiVmjRDxHyp4kRgN+BdRECJI/BMQxIOevDghHjysQQQRA+LiJUGiUURED7KCHpSEVaKgOQmJ4J/FiIHEg9FV0KgL/ju4aqLr4fWSsZ3p6emumR2G+UGz0/1e1Xv13erqqupmpJFG6pkewcf4DfPYi8uWNaPB1YhVSb2LzQLO5ZjB9zhzOZMaUFVi9TJ+xOpeZ9dHXYNF3FvS/3T8jdsLfIaREz1gdS3+wYO1U+utzhKNnsEXWMCvOIAtWNGizAyOCQiddL4Au6GNfZg5kZaVffgFE2WzXibdJxryHV7Fdrwkcl/EbozlylyX2baVqP91HMQpbezDzImErNaJu+/FLhNfDm0Uw23+TjsP3wggd7YodwRftyjXrKfEP+GiNvZ+c2qI9txYoWxVTqRhZUcW5KYWtn1tEhjDdGbbURC8n9om8nm2he2xzLapTdldYti/tKD+Ik6kZ9VQvVMVqYgTaViZxQmtJ55XisnYYf8d5p7MAr9QVHGf9ZDIaVcL282ZbWcL2zNiFbO+Q/1FnEjPqqE3naqIEwlYrRagDhX4TGdBGtn5Uk9/TfEQ2U+Niza0u8PWZLaPctefE/suG8WjYenIT1TLcCItq4b0naoTJ+qzsi6rYF9BIheK1cNXmMz838HKcu3oi3aKvN4u8FkQd1mzFtscUzm/MpxIy6ohfacqw4l6rFzv5J1UpO1NlbyP0zr4L2muIJlWxysl623W1qzsEcUbcd+K0aaKynKiGqs53XGa7ib5TGU5UYHVeNPvhezvqg5l5pt+b8HvJWMdxR8lfYkVRTeaFM/5w2IC/VOB74ST7e1WZTlRjdXTOCN37SrcITZb53K2T0vU2axuOFGPlQtE7z1Q4HO3WEofy3yfrxossR4Q+RzCuR18V4g2HK0Yqwwn0rJqSPP464YT9VkZE68c5tvYb8Nf+Azn4HMcxyVVAybSwwLUQZxdwn995r+nYrxOnEjPqqF+p+qWE/VZIXZXF7E2d32DGLq/FFvycFfm+0adgDX1aJbDrPIvfjdnZSZrxG3Hid6waqjXqapwoiKr8dz5HrFht0m8JyKe52+J90W3iOGcADsrnvU3YH83gRPoHjwu9oP2i8lnXnP+P5G9NSvzZo3YrTgxmKyqciINKyvxAz7MzteK5eTPuKKF/9Lm2Ad1glbUlM4ro/dyZdaISWfd0TXPid6yaqg+Uk3pnhPpWCE+wFrE1SkqGzDdr8Pb9C40zJxIy8oq8RJxb4rKBkgTYptid6L6hpUTNVm1+lThBD7BqWIecLxyaoOli/EnnhCffdTVsHIiPauRRhpppJFGGnb9CzkOnCVNLkSpAAAAAElFTkSuQmCC\n",
"text/latex": "$\\displaystyle \\left(x - 2\\right)^{2} \\left(x + 2\\right)^{2}$"
},
"metadata": {},
"execution_count": 47
}
],
"source": [
"sym.factor(f, modulus=5)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "aZndRJy5Or6e"
},
"source": [
"`SymPy` также способен решать булевы уравнения, то есть определять, удовлетворяет ли определенное булево выражение условию или нет. Для этого мы используем функцию `satisfiable`:"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "nzNusm2jOr6e",
"outputId": "19d8b226-4001-47aa-916e-f5bf79c4b74a"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"{x: True, y: True}"
]
},
"metadata": {},
"execution_count": 48
}
],
"source": [
"sym.satisfiable(x & y)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "r104TMBMOr6e"
},
"source": [
"Вывод функции говорит нам о том, что `(x & y)` истинно во всех случаях, когда `x` и `y` оба истинны. Если выражение не может быть истинным, т.е. никакие значения его аргументов не могут сделать выражение истинным, оно возвращает `False`:"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "8ch2PSkOOr6e",
"outputId": "c2b7971f-69c5-46ec-cea7-72f16d6cfc81"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"False"
]
},
"metadata": {},
"execution_count": 49
}
],
"source": [
"sym.satisfiable(x & ~x)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VZ2pN9G_Or6f"
},
"source": [
"## Линейная алгебра"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8blGo_cJOr6f"
},
"source": [
"### Матрицы\n",
"\n",
"Матрицы создаются как экземпляры класса `Matrix`"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 58
},
"id": "Id65PwMAOr6f",
"outputId": "3d89f7ea-2085-4531-c453-97a0a60e2947"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"⎡1 0⎤\n",
"⎢ ⎥\n",
"⎣0 1⎦"
],
"text/latex": "$\\displaystyle \\left[\\begin{matrix}1 & 0\\\\0 & 1\\end{matrix}\\right]$"
},
"metadata": {},
"execution_count": 50
}
],
"source": [
"sym.Matrix([[1, 0], [0, 1]])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ymHv4sF8Or6f"
},
"source": [
"В отличие от массива NumPy, в него можно помещать символы:"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 58
},
"id": "n2JjwyOhOr6f",
"outputId": "1275ad14-0957-4e5d-b527-92d2b849586b"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"⎡1 x⎤\n",
"⎢ ⎥\n",
"⎣y 1⎦"
],
"text/latex": "$\\displaystyle \\left[\\begin{matrix}1 & x\\\\y & 1\\end{matrix}\\right]$"
},
"metadata": {},
"execution_count": 51
}
],
"source": [
"x, y = sym.symbols('x, y')\n",
"A = sym.Matrix([[1, x], [y, 1]])\n",
"B = A**2\n",
"A"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 58
},
"id": "gt9swWKWOr6g",
"outputId": "4c07419a-66bd-4d10-ae4f-f3cb8c89e327"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"⎡x⋅y + 1 2⋅x ⎤\n",
"⎢ ⎥\n",
"⎣ 2⋅y x⋅y + 1⎦"
],
"text/latex": "$\\displaystyle \\left[\\begin{matrix}x y + 1 & 2 x\\\\2 y & x y + 1\\end{matrix}\\right]$"
},
"metadata": {},
"execution_count": 52
}
],
"source": [
"B"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 58
},
"id": "0b0tqVCfOr6g",
"outputId": "5e0b53ee-19fb-4546-ebfb-474b376496ea"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"⎡-x⋅y -x ⎤\n",
"⎢ ⎥\n",
"⎣ -y -x⋅y⎦"
],
"text/latex": "$\\displaystyle \\left[\\begin{matrix}- x y & - x\\\\- y & - x y\\end{matrix}\\right]$"
},
"metadata": {},
"execution_count": 53
}
],
"source": [
"A - B"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ypStsI-qOr6g"
},
"source": [
"### Дифференциальные уравнения\n",
"\n",
"SymPy способен решать (некоторые) обыкновенные дифференциальные уравнения. Для решения дифференциальных уравнений используется `dsolve`. Сначала необходимо создать неопределенную функцию, передав `cls=Function` в функцию `symbols`:"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"id": "cP_NOl2eOr6g"
},
"outputs": [],
"source": [
"f, g = sym.symbols('f g', cls=sym.Function)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "RuXCzka9Or6g"
},
"source": [
"`f` и `g` теперь являются неопределенными функциями. Мы можем вызвать `f(x)`:"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "lLKdSAy4Or6g",
"outputId": "1fa26730-d2d0-486f-f39a-37df33a9643e"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"f(x)"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAACMAAAAVCAYAAADM+lfpAAAABHNCSVQICAgIfAhkiAAAAilJREFUSIntlU1IVFEYhh8VzNHKVQsFV5lm0K8UGLZKCNrqxjYV1aa0RYsoN7oIksqNm6iVrTJQCiSI2WaQFQUG/Sz6cWGT06Jo0VDaz+J7LzOeOffcmLsK+mC453zv+73nved+Zw78A7EeGAfeAz+A38A5YTeAPNBQoXan9I7/bcGMCu4CF4ARYAuwG/gFnKnQSBS3gRywNom4WUbuebAs8AXIpDSzR2sMJRFPinjCybdhu3I9pZEoXgILQLUP7JUJ368DGNV4v6c2K6zXyVcBE8JGHWxY+QM+M3ux3sgDyxqPqKgGeAKs4G/c7cBP4IW4UYxpwWuemh5hV3xmkNA3YN7JN8jI87hCijtwRPMhzW/h/xSNwh/FCW4VYcLJtymfDZhpAQrAO2CA4iGoDdQUgI9x4GGJnHbyXRTfMhQXKfbZA6A+gb+I7ThQvn279Hzm5At61iWIfyoZH8M+eSgyJdplcR87vuucfDP2trMB4UOqzYl7NcFItfhvfGAV8BV4HYPlWf3mpXEQuzbmgQ3AK+xEtgfMdMj0tA9sFzgZUzwlvNXJd2Of4y3QpFyfuHcCZo6KM+AD+wWejSmO8FMluR3Y9ZADNjr8x+Lvi9G7iTVviw+8rOKemOJaYAmY07wVO5afgW0efvSn9tCDNWKNG9q5xDivBXamEQEGpdOdRqQOu9xmUmhkgA9YD66KmnJuMFaAp8Aa7K5arsDMJuA7cAnrt/+RGH8Asv2QUAvjNDMAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle f{\\left(x \\right)}$"
},
"metadata": {},
"execution_count": 55
}
],
"source": [
"f(x)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 54
},
"id": "qXVyF49QOr6h",
"outputId": "26c73405-c482-4b2f-8b4b-b9447b7916ed"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" 2 \n",
" d \n",
"f(x) + ───(f(x))\n",
" 2 \n",
" dx "
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAHkAAAAmCAYAAADgIjRrAAAABHNCSVQICAgIfAhkiAAABJZJREFUeJzt2luoVFUcx/HP8YRpZoYQpSAGeY3Mo6KQaEhJkVE9aJBBNN0gynqICPOhDIKMCqqHri/2kklFgQTlS1FpVkJeuhKVEmbZQxeo090e1pIz7mb2nJm198yR9heGmf3/r/Xf//mtPXuvteZPRUUFmII38DH24PKeZlNRCpMwED+fhgMY17t0KorkRnzewL5b+HUfE4zqdQIjnAHsytgWoB9fdz+dijLYgXV1xxPxERb3Jp2KVAbwOgaxF4vwC1ZE//F4E1f1JLsSOAmPYh/+wGGsjb5ncEjnE48FMd71aSkWynT8hA2YhouF734Yk9GHTVifcI4yNaUDXbfEDq/gXuHLnYmF+Ae3JSQDL+EgTkyMUxSv4dmM7Wl8Fz8vEb73rrrXnDbPUbamtKHrrJjMqw18W/EjxiYmsyieY12rhl1gipDLwoz9MWHwi6AbmtKGrjfFhjdk7DOEK+6pApKBT7Bf5zP8mpDnssQ8LsVfGJ2x78D9ibGP0C1NaaHryphIo9ds4Xl1GOc36Ls1+lZm7H3YGH0bMr67o/3Ctr9GoKaYQb4kxhlfZ1sabVckxk7RlBJ0XSw8Jw7hz/h5fezUj53CFd9ocjAXfwvbfv119ofiCZ9s0Gd59D3YKJlhUFPMIE/Cb0KOZwiTrv0x9qzE2CmaUpKu/fhV2J+tZ1xMZm+zjoaurFo8XhePN2t865gQ/e/lxMyjpphBhtXCwA5iO+4Rlk9FbBalaEoJus6JDTZm7DOifWtOMlMEkb7CGkMTjeyzrp5BfJvjz6OmuEEukxRNKUHXq2OQWzP2cwxdPXncZ+iZsw0ntGh/QLiaW7HPf59pea+Nw4jZLVI1JVHX4zLO+fH9g4x9ML6PaRH8+7rP1wm3qTzG1sXO42GcnLEN4DJhI2Ffxpfdb+4lqZpSsK5vCVP68Rn7ZOEqejsn8JWx78HY9vEWiYyK7b9o0a4ZNcfG7TpFUwrWtQ8/47MmvkOOvqLqWSFs1e3BKfhUmE3OzElmdkz6xRZJN6Oms0Fu57af8iJNU0rQdWZ0Ptek8wvRPy1jXyLcPr4UliOwKrZ9OSeZa2KbNTlt8qjp3S95uJUinWpKSbqujs47mnQ+4r+5zjYgbMkdFNaY9bwf2y9tEm+TMDno9M/3mt4N8nArRTrRlBJ1fSB2Xt6k82hhw/7deDxNmKb/gLMbtD+yKN/RwDdBmBjkXZGtqCl+kJtVgrSiWaVIu5rSe13dGU8wLyUIbolxliTGKZon8HybfRbgw4RzFqUpBek6RtgZ2pIQYyy+EZ5HI41sJUgriqgUKUJTCtb1XGHvtdM/uGcL+7enF5FMAnmVIKvwO6bWtX9EWJacGo+LrBRJ1ZSRo+uIYTiVIDuFwgG4XVjuTI/HRVSKVJRMq0oQuEBYk64V1rr1RQVFVIpUlEg7lSDbheXIRV3IqzT+j3XX84T/aHdn7PMdved9nvB/bp+jf+EVxwDDqQSZKzyzrxW2B4uq9aroEq0qQaYKS5G7YvuzhOfvsm4nWpFGs0qQiUIhXLasZjPe6WaCFRUVFRUVFRUVFRUjkX8B+WXAibvEQloAAAAASUVORK5CYII=\n",
"text/latex": "$\\displaystyle f{\\left(x \\right)} + \\frac{d^{2}}{d x^{2}} f{\\left(x \\right)}$"
},
"metadata": {},
"execution_count": 56
}
],
"source": [
"f(x).diff(x, x) + f(x)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 38
},
"id": "ypYd3NQQOr6h",
"outputId": "6e195693-82b3-49aa-b5f2-d54376378fd1"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"f(x) = C₁⋅sin(x) + C₂⋅cos(x)"
],
"image/png": "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\n",
"text/latex": "$\\displaystyle f{\\left(x \\right)} = C_{1} \\sin{\\left(x \\right)} + C_{2} \\cos{\\left(x \\right)}$"
},
"metadata": {},
"execution_count": 57
}
],
"source": [
"sym.dsolve(f(x).diff(x, x) + f(x), f(x))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Iioov3MEOr6h"
},
"source": [
"Этой функции можно передать аргументы в виде ключевых слов, чтобы помочь найти наилучшую систему решения. \n",
"Например, если вы знаете, что уравнение является уравнением с разделяемыми переменными, можно использовать ключевое слово `hint='separable'`, чтобы заставить `dsolve` решить его как разделяемое уравнение:"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 58
},
"id": "un6h2JeLOr6h",
"outputId": "13cd4ca1-8d92-4f86-d2ee-bdfc1d1eae65"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"⎡ ⎛ C₁ ⎞ ⎛ C₁ ⎞⎤\n",
"⎢f(x) = - acos⎜──────⎟ + 2⋅π, f(x) = acos⎜──────⎟⎥\n",
"⎣ ⎝cos(x)⎠ ⎝cos(x)⎠⎦"
],
"image/png": "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\n",
"text/latex": "$\\displaystyle \\left[ f{\\left(x \\right)} = - \\operatorname{acos}{\\left(\\frac{C_{1}}{\\cos{\\left(x \\right)}} \\right)} + 2 \\pi, \\ f{\\left(x \\right)} = \\operatorname{acos}{\\left(\\frac{C_{1}}{\\cos{\\left(x \\right)}} \\right)}\\right]$"
},
"metadata": {},
"execution_count": 58
}
],
"source": [
"sym.dsolve(sym.sin(x) * sym.cos(f(x)) + sym.cos(x) * sym.sin(f(x)) * f(x).diff(x), f(x), hint='separable')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "YVT8PKGCOr6h"
},
"source": [
"## **Упражнения**\n",
"\n",
"1. Вычислите $\\sqrt{2}$ с точностью до 100 знаков после запятой.\n",
"2. Вычислите $1/2 + 1/3$ в рациональном виде.\n",
"3. Представьте выражение $(x+y)^6$ в виде многочлена.\n",
"4. Упростите тригонометрическое выражение $\\frac{\\sin(x)}{\\cos(x)}$\n",
"5. Вычислите $$\\lim_{x\\rightarrow 0} \\frac{\\sin(x)}{x}$$\n",
"6. Вычислите производную $log(x)$ по $x$.\n",
"7. Решите систему уравнений $$x + y = 2,\\\\ 2\\cdot x + y = 0$$\n",
"8. Существуют ли булевы значения `x`, `y`, которые делают выражение `(~x | y) & (~y | x)` истинными?\n",
"9. Решите дифференциальное уравнение Бернулли $$x \\frac{d f(x)}{x} + f(x) - f(x)^2=0$$\n",
"10. Решите то же уравнение, используя `hint='Bernoulli'`. В чём разница?"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.9.10 ('main')",
"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.9.10"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "58656f4d27507c1cf066d160953941131aeedc5e8ddd25f7cf3d9165a5f5fe3d"
}
},
"colab": {
"name": "4.1.sympy.ipynb",
"provenance": [],
"collapsed_sections": [],
"toc_visible": true,
"include_colab_link": true
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment