0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>9 янв 2024</li>
2
<ul><li>9 янв 2024</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Сессия близко! Знакомимся с мощным инструментом для решения диффуров, интегралов и матриц.</p>
4
</ul><p>Сессия близко! Знакомимся с мощным инструментом для решения диффуров, интегралов и матриц.</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
6
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
7
<p>При решении математических и инженерных задач часто требуется провести аналитические вычисления: найти производную или интеграл, решить систему уравнений или упростить математическое выражение. Сделать это средствами стандартной библиотеки Python довольно тяжело - придётся написать много сложных математических функций.</p>
7
<p>При решении математических и инженерных задач часто требуется провести аналитические вычисления: найти производную или интеграл, решить систему уравнений или упростить математическое выражение. Сделать это средствами стандартной библиотеки Python довольно тяжело - придётся написать много сложных математических функций.</p>
8
<p>Но зачем, если к проекту можно подключить SymPy? Вот о ней далее и поговорим.</p>
8
<p>Но зачем, если к проекту можно подключить SymPy? Вот о ней далее и поговорим.</p>
9
<p>Из этой статье вы узнаете:</p>
9
<p>Из этой статье вы узнаете:</p>
10
<ul><li><a>что такое SymPy</a>;</li>
10
<ul><li><a>что такое SymPy</a>;</li>
11
<li><a>как её установить</a>;</li>
11
<li><a>как её установить</a>;</li>
12
<li><a>какие у неё есть функции</a>;</li>
12
<li><a>какие у неё есть функции</a>;</li>
13
<li><a>как в SymPy решать уравнения и системы уравнений</a>;</li>
13
<li><a>как в SymPy решать уравнения и системы уравнений</a>;</li>
14
<li><a>что она позволяет делать с матрицами</a>;</li>
14
<li><a>что она позволяет делать с матрицами</a>;</li>
15
<li><a>как визуализировать вычисления</a>.</li>
15
<li><a>как визуализировать вычисления</a>.</li>
16
</ul><p><a>SymPy</a> - это бесплатная библиотека для символьных вычислений на языке Python. В символьных вычислениях компьютер работает с уравнениями и выражениями как с последовательностью символов, тогда как в численных оперирует приближёнными числовыми значениями.</p>
16
</ul><p><a>SymPy</a> - это бесплатная библиотека для символьных вычислений на языке Python. В символьных вычислениях компьютер работает с уравнениями и выражениями как с последовательностью символов, тогда как в численных оперирует приближёнными числовыми значениями.</p>
17
<p>По сравнению с другими Python-библиотеками для математических вычислений, такими как SageMath и CasADi, у SymPy есть ряд преимуществ.</p>
17
<p>По сравнению с другими Python-библиотеками для математических вычислений, такими как SageMath и CasADi, у SymPy есть ряд преимуществ.</p>
18
<p><strong>Работа с символьными вычислениями</strong><strong>.</strong>Как уже было сказано выше, SymPy работает с математическими выражениями и формулами как с последовательностью символов, а не чисел. Это повышает точность математических операций и позволяет сформулировать результаты вычислений в аналитическом виде (с помощью формул, системы выражений и так далее).</p>
18
<p><strong>Работа с символьными вычислениями</strong><strong>.</strong>Как уже было сказано выше, SymPy работает с математическими выражениями и формулами как с последовательностью символов, а не чисел. Это повышает точность математических операций и позволяет сформулировать результаты вычислений в аналитическом виде (с помощью формул, системы выражений и так далее).</p>
19
<p><strong>Поддержка различных разделов математики</strong>: геометрии, тригонометрии, логики и других. В SymPy есть функции для алгебраического упрощения выражений, решения уравнений, дифференцирования, интегрирования, манипуляции с полиномами и матрицами и многое другое.</p>
19
<p><strong>Поддержка различных разделов математики</strong>: геометрии, тригонометрии, логики и других. В SymPy есть функции для алгебраического упрощения выражений, решения уравнений, дифференцирования, интегрирования, манипуляции с полиномами и матрицами и многое другое.</p>
20
<p><strong>Лёгкая интеграция с другими библиотеками Python, такими как</strong><a><strong>NumPy</strong></a><strong>и </strong><a><strong>Matplotlib</strong></a><strong>.</strong>Вы можете комбинировать символьные вычисления с численными и визуализировать их без предварительной настройки.</p>
20
<p><strong>Лёгкая интеграция с другими библиотеками Python, такими как</strong><a><strong>NumPy</strong></a><strong>и </strong><a><strong>Matplotlib</strong></a><strong>.</strong>Вы можете комбинировать символьные вычисления с численными и визуализировать их без предварительной настройки.</p>
21
<p>Перед тем как начать работу с библиотекой,<a>установите Python на компьютер</a>. Затем откройте терминал или командную строку и установите SymPy с помощью pip:</p>
21
<p>Перед тем как начать работу с библиотекой,<a>установите Python на компьютер</a>. Затем откройте терминал или командную строку и установите SymPy с помощью pip:</p>
22
pip install sympy<p>Подождите, пока процесс завершится. Откройте редактор кода или IDE и проверьте установку:</p>
22
pip install sympy<p>Подождите, пока процесс завершится. Откройте редактор кода или IDE и проверьте установку:</p>
23
import sympy print(sympy.__version__)<p>Если видите на экране номер версии SymPy, значит, библиотека установлена правильно.</p>
23
import sympy print(sympy.__version__)<p>Если видите на экране номер версии SymPy, значит, библиотека установлена правильно.</p>
24
<p>Если работаете в среде Anaconda, то для установки библиотеки введите в командной строке следующее:</p>
24
<p>Если работаете в среде Anaconda, то для установки библиотеки введите в командной строке следующее:</p>
25
conda install -c anaconda sympy<p>Все функции библиотеки подробно описаны в <a>документации</a>. Мы же пройдёмся по самым часто используемым.</p>
25
conda install -c anaconda sympy<p>Все функции библиотеки подробно описаны в <a>документации</a>. Мы же пройдёмся по самым часто используемым.</p>
26
<p><strong>Символьные переменные</strong>создаются с помощью функции symbols():</p>
26
<p><strong>Символьные переменные</strong>создаются с помощью функции symbols():</p>
27
from sympy import symbols # Создаём символьные переменные x, y, z x, y, z = symbols('x y z')<p>Аргумент функции - строка с символами, которые станут именами переменных в выражении. В нашем примере x, y, z - это символьные переменные. Обратите внимание: их имена задаются одной строкой через пробел.</p>
27
from sympy import symbols # Создаём символьные переменные x, y, z x, y, z = symbols('x y z')<p>Аргумент функции - строка с символами, которые станут именами переменных в выражении. В нашем примере x, y, z - это символьные переменные. Обратите внимание: их имена задаются одной строкой через пробел.</p>
28
<p><strong>С</strong><strong>имвольны</strong><strong>е</strong><strong>выражени</strong><strong>я</strong><strong></strong>создаются путём комбинирования символьных переменных и арифметических операций:</p>
28
<p><strong>С</strong><strong>имвольны</strong><strong>е</strong><strong>выражени</strong><strong>я</strong><strong></strong>создаются путём комбинирования символьных переменных и арифметических операций:</p>
29
from sympy import symbols # Определение символьных переменных x, y, z = symbols('x y z') # Создание символьного выражения expr = x**2 + 2 * y - z<p>Этот код создаёт символьные переменные x, y, z и содержащее их символьное выражение expr. Теперь expr можно упрощать, дифференцировать, интегрировать и далее по списку.</p>
29
from sympy import symbols # Определение символьных переменных x, y, z = symbols('x y z') # Создание символьного выражения expr = x**2 + 2 * y - z<p>Этот код создаёт символьные переменные x, y, z и содержащее их символьное выражение expr. Теперь expr можно упрощать, дифференцировать, интегрировать и далее по списку.</p>
30
<p><strong>Внимание!</strong>Здесь и далее символы ** означают операцию возведения в степень.</p>
30
<p><strong>Внимание!</strong>Здесь и далее символы ** означают операцию возведения в степень.</p>
31
<p><strong>Арифметические операции.</strong>Библиотека SymPy поддерживает основные арифметические операции с символьными выражениями:</p>
31
<p><strong>Арифметические операции.</strong>Библиотека SymPy поддерживает основные арифметические операции с символьными выражениями:</p>
32
from sympy import symbols x, y, z = symbols('x y z') # Сложение expr_sum = x + y + z # Вычитание expr_diff = x - y # Умножение expr_mul = x * y # Деление expr_div = x / y # Возведение в степень expr_power = x**2 # Комбинированные операции expr_combined = (x + y)**2 / (z - 1)<p><strong>Математические константы</strong>используются в символьных выражениях для упрощения записи. Разберём несколько из них.</p>
32
from sympy import symbols x, y, z = symbols('x y z') # Сложение expr_sum = x + y + z # Вычитание expr_diff = x - y # Умножение expr_mul = x * y # Деление expr_div = x / y # Возведение в степень expr_power = x**2 # Комбинированные операции expr_combined = (x + y)**2 / (z - 1)<p><strong>Математические константы</strong>используются в символьных выражениях для упрощения записи. Разберём несколько из них.</p>
33
<p><strong>Пи (π) - отношение длины окружности к её диаметру:</strong></p>
33
<p><strong>Пи (π) - отношение длины окружности к её диаметру:</strong></p>
34
from sympy import pi, symbols # Создание символьной переменной x = symbols('x') # Использование константы π expr_pi = pi * x<p><strong>Бесконечность (∞)</strong>обозначается двумя символами - oo:</p>
34
from sympy import pi, symbols # Создание символьной переменной x = symbols('x') # Использование константы π expr_pi = pi * x<p><strong>Бесконечность (∞)</strong>обозначается двумя символами - oo:</p>
35
from sympy import oo, symbols # Создание символьной переменной x = symbols('x') # Использование бесконечности expr_infinity = x / oo<p><strong>Подстановка.</strong>С помощью subs() можно подставлять числа в символьные переменные, чтобы получить значение выражений в конкретных точках:</p>
35
from sympy import oo, symbols # Создание символьной переменной x = symbols('x') # Использование бесконечности expr_infinity = x / oo<p><strong>Подстановка.</strong>С помощью subs() можно подставлять числа в символьные переменные, чтобы получить значение выражений в конкретных точках:</p>
36
from sympy import symbols # Создание символьных переменных x, y, z = symbols('x y z') # Создание символьного выражения expr = x + y**2 - z # Подстановка значений result = expr.subs({x: 2, y: 3, z: 1}) print(result) # 10<p>В этом примере команда expr.subs({x: 2, y: 3, z: 1}) заменяет x на 2, y на 3 и z на 1 в выражении expr.</p>
36
from sympy import symbols # Создание символьных переменных x, y, z = symbols('x y z') # Создание символьного выражения expr = x + y**2 - z # Подстановка значений result = expr.subs({x: 2, y: 3, z: 1}) print(result) # 10<p>В этом примере команда expr.subs({x: 2, y: 3, z: 1}) заменяет x на 2, y на 3 и z на 1 в выражении expr.</p>
37
<p>Функцию subs() также можно использовать для подстановки символьных выражений:</p>
37
<p>Функцию subs() также можно использовать для подстановки символьных выражений:</p>
38
from sympy import symbols, sin, pi x, y = symbols('x y') expr = x + sin(y) # Подстановка символьного выражения pi/2 result = expr.subs({x: 2, y: pi/2}) print(result) # 3<p>Здесь expr.subs({x: 2, y: pi/2}) заменит x на 2, y - на символьное выражение π/2.</p>
38
from sympy import symbols, sin, pi x, y = symbols('x y') expr = x + sin(y) # Подстановка символьного выражения pi/2 result = expr.subs({x: 2, y: pi/2}) print(result) # 3<p>Здесь expr.subs({x: 2, y: pi/2}) заменит x на 2, y - на символьное выражение π/2.</p>
39
<p>SymPy предоставляет множество функций для работы с математическими выражениями: упрощение, раскрытие скобок, факторизация, сокращение дробей и так далее. Рассмотрим некоторые из них подробнее.</p>
39
<p>SymPy предоставляет множество функций для работы с математическими выражениями: упрощение, раскрытие скобок, факторизация, сокращение дробей и так далее. Рассмотрим некоторые из них подробнее.</p>
40
<p><strong>Упрощение.</strong>Пригодится, когда нужно представить выражение в более удобоваримой форме. Для этого есть функции: simplify, expand, collect и factor.</p>
40
<p><strong>Упрощение.</strong>Пригодится, когда нужно представить выражение в более удобоваримой форме. Для этого есть функции: simplify, expand, collect и factor.</p>
41
<p>simplify() анализирует выражение на предмет вызова функций, квадратных корней, радикалов и степеней и инициализирует подходящие процедуры упрощения:</p>
41
<p>simplify() анализирует выражение на предмет вызова функций, квадратных корней, радикалов и степеней и инициализирует подходящие процедуры упрощения:</p>
42
from sympy import symbols, simplify, sin, cos x = symbols('x') expr = sin(x)**2 + cos(x)**2 # Тождество Пифагора, равное 1 при любом x simplified_expr = simplify(expr) print(simplified_expr) # 1<p>В этом примере simplify() упрощает выражение sin(x)**2 + cos(x)**2 с помощью тождества Пифагора. Обратите внимание, что не мы задаём вариант упрощения - он определяется автоматически.</p>
42
from sympy import symbols, simplify, sin, cos x = symbols('x') expr = sin(x)**2 + cos(x)**2 # Тождество Пифагора, равное 1 при любом x simplified_expr = simplify(expr) print(simplified_expr) # 1<p>В этом примере simplify() упрощает выражение sin(x)**2 + cos(x)**2 с помощью тождества Пифагора. Обратите внимание, что не мы задаём вариант упрощения - он определяется автоматически.</p>
43
<p>Функция expand() раскрывает скобки:</p>
43
<p>Функция expand() раскрывает скобки:</p>
44
from sympy import symbols, expand, factor x, y = symbols('x y') expr = (x + y)**3 expanded_expr = expand(expr) print(expr, '=', expanded_expr)<p>В этом примере мы раскрыли куб выражения (x + y).</p>
44
from sympy import symbols, expand, factor x, y = symbols('x y') expr = (x + y)**3 expanded_expr = expand(expr) print(expr, '=', expanded_expr)<p>В этом примере мы раскрыли куб выражения (x + y).</p>
45
<p>Вот какой результат вернул компьютер:</p>
45
<p>Вот какой результат вернул компьютер:</p>
46
(x + y)**3 = x**3 + 3*x**2*y + 3*x*y**2 + y**3<p>Функция collect() группирует переменные в выражениях:</p>
46
(x + y)**3 = x**3 + 3*x**2*y + 3*x*y**2 + y**3<p>Функция collect() группирует переменные в выражениях:</p>
47
from sympy import symbols, collect x, y = symbols('x y') expr = x*y + x**2 + y + x*y**2 collected_expr = collect(expr, x) print(expr, '=', collected_expr)<p>Здесь collect() группирует слагаемые в выражении x*y + x**2 + y + x*y**2 по степеням переменной x.</p>
47
from sympy import symbols, collect x, y = symbols('x y') expr = x*y + x**2 + y + x*y**2 collected_expr = collect(expr, x) print(expr, '=', collected_expr)<p>Здесь collect() группирует слагаемые в выражении x*y + x**2 + y + x*y**2 по степеням переменной x.</p>
48
<p>Результат выполнения кода:</p>
48
<p>Результат выполнения кода:</p>
49
x**2 + x*y**2 + x*y + y = x**2 + x*(y**2 + y) + y<p>factor() представляет выражение в виде произведения множителей (факторизует его):</p>
49
x**2 + x*y**2 + x*y + y = x**2 + x*(y**2 + y) + y<p>factor() представляет выражение в виде произведения множителей (факторизует его):</p>
50
from sympy import symbols, factor x, y = symbols('x y') expr = x**3 + 3 * x**2 * y + 3 * x * y**2 + y**3 factored_expr = factor(expr) print(expr, '=', factored_expr)<p>Результат:</p>
50
from sympy import symbols, factor x, y = symbols('x y') expr = x**3 + 3 * x**2 * y + 3 * x * y**2 + y**3 factored_expr = factor(expr) print(expr, '=', factored_expr)<p>Результат:</p>
51
x**3 + 3*x**2*y + 3*x*y**2 + y**3 = (x + y)**3<p>Все эти методы можно и нужно комбинировать, чтобы получить необходимый результат.</p>
51
x**3 + 3*x**2*y + 3*x*y**2 + y**3 = (x + y)**3<p>Все эти методы можно и нужно комбинировать, чтобы получить необходимый результат.</p>
52
<p>В SymPy можно решать уравнения с символьными переменными и их системы - с помощью функций Eq() и solve().</p>
52
<p>В SymPy можно решать уравнения с символьными переменными и их системы - с помощью функций Eq() и solve().</p>
53
<p>Допустим, мы хотим решить уравнение x**2 + y**2 = 1. Чтобы составить его, нам понадобится функция Eq():</p>
53
<p>Допустим, мы хотим решить уравнение x**2 + y**2 = 1. Чтобы составить его, нам понадобится функция Eq():</p>
54
from sympy import symbols, Eq, solve # Создание символьных переменных x, y = symbols('x y') # Создание уравнения equation = Eq(x**2 + y**2, 1)<p>Решить полученное уравнение можно с помощью функции solve():</p>
54
from sympy import symbols, Eq, solve # Создание символьных переменных x, y = symbols('x y') # Создание уравнения equation = Eq(x**2 + y**2, 1)<p>Решить полученное уравнение можно с помощью функции solve():</p>
55
# Решение уравнения solution = solve(equation, y) print(solution)<p>Код вернёт два решения квадратного уравнения в виде списка:</p>
55
# Решение уравнения solution = solve(equation, y) print(solution)<p>Код вернёт два решения квадратного уравнения в виде списка:</p>
56
[-sqrt(1 - x**2), sqrt(1 - x**2)]<p>Добавим в нашу программу ещё одну символьную переменную (z) и построим систему уравнений:</p>
56
[-sqrt(1 - x**2), sqrt(1 - x**2)]<p>Добавим в нашу программу ещё одну символьную переменную (z) и построим систему уравнений:</p>
57
<em>Изображение: Skillbox Media</em><p>Делается это с помощью той же функции Eq():</p>
57
<em>Изображение: Skillbox Media</em><p>Делается это с помощью той же функции Eq():</p>
58
from sympy import symbols, Eq, solve # Создание символьных переменных x, y = symbols('x y') # Создание уравнения equation = Eq(x**2 + y**2, 1) # Создание ещё одной символьной переменной z = symbols('z') # Создание системы уравнений system_of_equations = [Eq(x + y + z, 1), Eq(x - y - z, 0), Eq(x**2 + y**2 - z, 1)]<p>Теперь решим её с помощью уже знакомой функции solve():</p>
58
from sympy import symbols, Eq, solve # Создание символьных переменных x, y = symbols('x y') # Создание уравнения equation = Eq(x**2 + y**2, 1) # Создание ещё одной символьной переменной z = symbols('z') # Создание системы уравнений system_of_equations = [Eq(x + y + z, 1), Eq(x - y - z, 0), Eq(x**2 + y**2 - z, 1)]<p>Теперь решим её с помощью уже знакомой функции solve():</p>
59
# Решение системы уравнений solutions = solve(system_of_equations, (x, y, z)) print(solutions)<p>Программа вернёт значения переменных x, y, z, при которых выполняется система уравнений:</p>
59
# Решение системы уравнений solutions = solve(system_of_equations, (x, y, z)) print(solutions)<p>Программа вернёт значения переменных x, y, z, при которых выполняется система уравнений:</p>
60
[(1/2, -1/2 + sqrt(6)/2, 1 - sqrt(6)/2), (1/2, -sqrt(6)/2 - 1/2, 1 + sqrt(6)/2)]<p>С SymPy можно решать даже диффуры. Для этого в ней есть функция dsolve().</p>
60
[(1/2, -1/2 + sqrt(6)/2, 1 - sqrt(6)/2), (1/2, -sqrt(6)/2 - 1/2, 1 + sqrt(6)/2)]<p>С SymPy можно решать даже диффуры. Для этого в ней есть функция dsolve().</p>
61
<p>Давайте познакомимся с её работой на примере уравнения y’ = x**2 - y с начальным условием y(0) = 1:</p>
61
<p>Давайте познакомимся с её работой на примере уравнения y’ = x**2 - y с начальным условием y(0) = 1:</p>
62
from sympy import symbols, Function, dsolve, Eq # Создание символов и функции x = symbols('x') y = Function('y') # Определение дифференциального уравнения diff_eq = Eq(y(x).diff(x), x**2 - y(x)) # Решение уравнения solution = dsolve(diff_eq, y(x), ics={y(0): 1}) print(solution)<p>На экране увидим результат - символьное выражение:</p>
62
from sympy import symbols, Function, dsolve, Eq # Создание символов и функции x = symbols('x') y = Function('y') # Определение дифференциального уравнения diff_eq = Eq(y(x).diff(x), x**2 - y(x)) # Решение уравнения solution = dsolve(diff_eq, y(x), ics={y(0): 1}) print(solution)<p>На экране увидим результат - символьное выражение:</p>
63
Eq(y(x), x**2 - 2*x + 2 - exp(-x))<p>Есть в SymPy и инструменты линейной алгебры. Например, для создания матриц, сложения, вычитания и прочих действий с ними используют класс Matrix.</p>
63
Eq(y(x), x**2 - 2*x + 2 - exp(-x))<p>Есть в SymPy и инструменты линейной алгебры. Например, для создания матриц, сложения, вычитания и прочих действий с ними используют класс Matrix.</p>
64
<p>Для этого создайте объект Matrix, передав в него символы для заполнения матрицы:</p>
64
<p>Для этого создайте объект Matrix, передав в него символы для заполнения матрицы:</p>
65
from sympy import Matrix, symbols # Создание символов a, b, c, d = symbols('a b c d') # Создание матрицы 2x2 matrix_2x2 = Matrix([[a, b], [c, d]]) print("Матрица 2x2:") print(matrix_2x2)<p>Результат работы кода - матрица 2×2:</p>
65
from sympy import Matrix, symbols # Создание символов a, b, c, d = symbols('a b c d') # Создание матрицы 2x2 matrix_2x2 = Matrix([[a, b], [c, d]]) print("Матрица 2x2:") print(matrix_2x2)<p>Результат работы кода - матрица 2×2:</p>
66
Матрица 2x2: Matrix([[a, b], [c, d]])<p>Арифметические операции над матрицами в SymPy можно производить так же, как и над обычными числами, - используя арифметические операторы +, - и *:</p>
66
Матрица 2x2: Matrix([[a, b], [c, d]])<p>Арифметические операции над матрицами в SymPy можно производить так же, как и над обычными числами, - используя арифметические операторы +, - и *:</p>
67
from sympy import Matrix, symbols # Создание символов a, b, c, d = symbols('a b c d') # Создание первой матрицы matrix_2x2 = Matrix([[a, b], [c, d]]) # Создание второй матрицы matrix_2x2_2 = Matrix([[1, 2], [3, 4]]) # Сложение матриц sum_matrix = matrix_2x2 + matrix_2x2_2 # Вычитание матриц diff_matrix = matrix_2x2 - matrix_2x2_2 print("Сумма матриц:") print(sum_matrix) print("\nРазность матриц:") print(diff_matrix)<p>Вот что выведет программа:</p>
67
from sympy import Matrix, symbols # Создание символов a, b, c, d = symbols('a b c d') # Создание первой матрицы matrix_2x2 = Matrix([[a, b], [c, d]]) # Создание второй матрицы matrix_2x2_2 = Matrix([[1, 2], [3, 4]]) # Сложение матриц sum_matrix = matrix_2x2 + matrix_2x2_2 # Вычитание матриц diff_matrix = matrix_2x2 - matrix_2x2_2 print("Сумма матриц:") print(sum_matrix) print("\nРазность матриц:") print(diff_matrix)<p>Вот что выведет программа:</p>
68
Сумма матриц: Matrix([[a + 1, b + 2], [c + 3, d + 4]]) Разность матриц: Matrix([[a - 1, b - 2], [c - 3, d - 4]])<p>Продолжим наш код:</p>
68
Сумма матриц: Matrix([[a + 1, b + 2], [c + 3, d + 4]]) Разность матриц: Matrix([[a - 1, b - 2], [c - 3, d - 4]])<p>Продолжим наш код:</p>
69
# Умножение матриц product_matrix = matrix_2x2 * matrix_2x2_2 print("Произведение матриц:") print(product_matrix)<p>Результат выполнения:</p>
69
# Умножение матриц product_matrix = matrix_2x2 * matrix_2x2_2 print("Произведение матриц:") print(product_matrix)<p>Результат выполнения:</p>
70
Произведение матриц: Matrix([[a + 3*b, 2*a + 4*b], [c + 3*d, 2*c + 4*d]])<p>Результаты вычислений, полученных с помощью SymPy, можно визуализировать в виде графиков. Однако сама библиотека подходит для этого плохо, так как ориентирована именно на проведение символьных вычислений. Для визуализации результатов обычно используют другие библиотеки, например Matplotlib.</p>
70
Произведение матриц: Matrix([[a + 3*b, 2*a + 4*b], [c + 3*d, 2*c + 4*d]])<p>Результаты вычислений, полученных с помощью SymPy, можно визуализировать в виде графиков. Однако сама библиотека подходит для этого плохо, так как ориентирована именно на проведение символьных вычислений. Для визуализации результатов обычно используют другие библиотеки, например Matplotlib.</p>
71
<p>Построим график функции sin(x)/x.</p>
71
<p>Построим график функции sin(x)/x.</p>
72
import sympy as sp import matplotlib.pyplot as plt import numpy as np # Создание символьной переменной x = sp.symbols('x') # Определение функции с использованием SymPy y_expr = sp.sin(x) / x # Преобразование в функцию, пригодную для использования с библиотекой Matplotlib y_func = sp.lambdify(x, y_expr, 'numpy') # Генерация значений x от -10 до 10 x_values = np.linspace(-10, 10, 400) # Вычисление соответствующих значений y y_values = y_func(x_values) # Построение графика с использованием Matplotlib plt.plot(x_values, y_values, label=r'$\frac{\sin(x)}{x}$') plt.xlabel('x') plt.ylabel('y') plt.title('График функции $y = \\frac{\\sin(x)}{x}$') plt.axhline(0, color='black', linewidth=0.5) plt.axvline(0, color='black', linewidth=0.5) plt.grid(color='gray', linestyle='--', linewidth=0.5) plt.legend() plt.show()<p>В этом примере с использованием SymPy создаётся символьная переменная x и определяется функция y = sin(x)/x. Перед тем как построить график с помощью Matplotlib, функцию нужно привести к виду, понятному для библиотеки. Мы сделали это с помощью метода lambdify.</p>
72
import sympy as sp import matplotlib.pyplot as plt import numpy as np # Создание символьной переменной x = sp.symbols('x') # Определение функции с использованием SymPy y_expr = sp.sin(x) / x # Преобразование в функцию, пригодную для использования с библиотекой Matplotlib y_func = sp.lambdify(x, y_expr, 'numpy') # Генерация значений x от -10 до 10 x_values = np.linspace(-10, 10, 400) # Вычисление соответствующих значений y y_values = y_func(x_values) # Построение графика с использованием Matplotlib plt.plot(x_values, y_values, label=r'$\frac{\sin(x)}{x}$') plt.xlabel('x') plt.ylabel('y') plt.title('График функции $y = \\frac{\\sin(x)}{x}$') plt.axhline(0, color='black', linewidth=0.5) plt.axvline(0, color='black', linewidth=0.5) plt.grid(color='gray', linestyle='--', linewidth=0.5) plt.legend() plt.show()<p>В этом примере с использованием SymPy создаётся символьная переменная x и определяется функция y = sin(x)/x. Перед тем как построить график с помощью Matplotlib, функцию нужно привести к виду, понятному для библиотеки. Мы сделали это с помощью метода lambdify.</p>
73
<p>Получили такой график:</p>
73
<p>Получили такой график:</p>
74
<em>Изображение: Skillbox Media</em><p>Всё получилось. График функции соответствует математическим ожиданиям.</p>
74
<em>Изображение: Skillbox Media</em><p>Всё получилось. График функции соответствует математическим ожиданиям.</p>
75
<p>Подведём итоги и вспомним, что сегодня узнали:</p>
75
<p>Подведём итоги и вспомним, что сегодня узнали:</p>
76
<ul><li>Библиотека SymPy используется для символьных вычислений, где формулы - это не только инструменты решения конкретных задач, но также объекты анализа математических структур.</li>
76
<ul><li>Библиотека SymPy используется для символьных вычислений, где формулы - это не только инструменты решения конкретных задач, но также объекты анализа математических структур.</li>
77
<li>В SymPy можно работать с символами и переменными, строить выражения, не привязанные к конкретным числам. Это полезно при работе с матрицами, решении уравнений и выполнении математических преобразований.</li>
77
<li>В SymPy можно работать с символами и переменными, строить выражения, не привязанные к конкретным числам. Это полезно при работе с матрицами, решении уравнений и выполнении математических преобразований.</li>
78
<li>Библиотека предоставляет средства для символьного дифференцирования и интегрирования: можно находить производные и интегралы сложных функций, решать дифференциальные уравнения. Это важно при решении физических, инженерных, финансовых и других задач.</li>
78
<li>Библиотека предоставляет средства для символьного дифференцирования и интегрирования: можно находить производные и интегралы сложных функций, решать дифференциальные уравнения. Это важно при решении физических, инженерных, финансовых и других задач.</li>
79
<li>Чтобы визуализировать результаты численных и символьных вычислений, используйте SymPy совместно с библиотеками для построения графиков - Matplotlib, Seaborn и другими.</li>
79
<li>Чтобы визуализировать результаты численных и символьных вычислений, используйте SymPy совместно с библиотеками для построения графиков - Matplotlib, Seaborn и другими.</li>
80
</ul><p>Python для всех</p>
80
</ul><p>Python для всех</p>
81
<p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
81
<p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
82
<p><a>Пройти бесплатно</a></p>
82
<p><a>Пройти бесплатно</a></p>
83
<a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>
83
<a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>