Рубрики
Без рубрики

Символическая математика с симпы

https://youtu.be/n_zuhuufalk Эта статья показывает, как решать математические уравнения и выражения символически, в Python. Благодаря симпы-библиотеке это оказывается чрезвычайно легкой задачей. Однако, как вы увидите в следующих примерах, количество инструментов и функций, предоставляемых этой библиотекой, огромно. Благодаря всем его функциям, Sympy … Символическая математика с симпы Подробнее »

Автор оригинала: Andrea Ridolfi.

Эта статья показывает, как решить математические уравнения и выражения символически, в Питон . Благодаря Симпи Библиотека, это оказывается чрезвычайно легкой задачей.

Однако, как вы увидите в следующих примерах, количество инструментов и функций, предоставляемых этой библиотекой, огромно. Благодаря всем его функциям, Симпи представляет собой действительно мощную систему алгебры, с которой мы можем решить Очень непосредственно, Математические выражения, уравнения, неравенства и даже Системы уравнений/неравенств Отказ

По этим причинам Симпи представляет собой фундаментальный инструмент для решения множества Математика связанные проблемы. Статья разделена на разные разделы, каждый из которых имеет дело с конкретным Симпи функция. Если вы заинтересованы в теме, вы можете найти документацию обо всех описанных здесь функциях (и много других) в https://www.sympy.org/en/index.html Отказ

Импорт Sympy

Первый шаг включает в себя импорт в наш скрипт Симпи библиотека; Поскольку несколько разных пакетов будут использоваться во всем этом примере, мы им импортируем их, написав следующую строку кода (для импорта Sympy Вы, должно быть, ранее установили его, если вы еще этого не сделали, введите « | Установить PIP Sympy » в вашем терминале).

from sympy import *

Определение переменных и функций

Начнем с определения переменных, которые мы хотим использовать в наших расчетах. Для этого мы эксплуатируем Симпи Функция Символы () который принимает в качестве ввода строки и превращает его в Симпи Переменная; Затем мы назначаем значение функции переменной с тем же именем выбранной строки. В следующих строках кода мы инициализируем две переменные « X » и « y ».

# Initializing two variables
x = symbols('x')  
y = symbols('y')

Аналогичная процедура может быть использована для определения имени функций, которые будут использоваться в сценарии; На этот раз S YMPY Функция, которая служит для цели, это Функция () и работает так же, как Символы () Отказ Мы, следовательно, инициализировать функцию под названием « F », с данного момента каждый раз, когда мы вводим « f » на скрипте, мы имеем в виду функцию.

# Initializing a function f
f = Function('f')

Использование Sympy в вашем компьютере

Симпи можно даже использовать непосредственно с вашего терминала; Именно здесь его способность символически решать математические уравнения и функции выражают все возможное. Теперь мы увидим, как инициализировать и напрямую использовать Симпи в терминале. Первое, что нужно сделать, это открыть свой терминал и импорт Симпи Аналогичным образом как и раньше. Мы, следовательно, введите «Импортировать Sympy» и нажмите Enter. После этого мы входим в следующую команду « Sympy.init_session () », следующие строки содержат две только что описанные команды и вывод, который будет предложена вашим терминалом.

>>> import sympy
>>> sympy.init_session()
Python console for SymPy 1.7.1 (Python 3.7.1-64-bit) (ground types: python)
These commands were executed:
>>> from __future__ import division
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)
>>> init_printing()  

Как вы можете видеть, после Sympy.init_session () Команда, несколько Симпи пакеты были импортированы; Кроме того, буквы «X», «Y», «Z» и «T» были инициализированы как симпы, «K», «M» и «n» как целочисленные параметры, в то время как буквы «F», «G» и «H» как функции.

Все эти задачи были выполнены автоматически в пределах Sympy.init_session () команда, которая в основном инициировала Симпи сеанс с некоторыми заранее определенными функциями и переменными.

Преимущество использования терминала над текстовым редактором заключается в том, что он будет представлять все функции и уравнения, используя улучшенный графический стиль, что делает их (как мы увидим) более непосредственно. Большинство команд, которые будут следовать в следующих разделах, могут быть введены как в скрипте, так и в терминале, я указываю, когда некоторые конкретные функции не будут работать на одной из двух платформ.

Расширение и упрощение математических выражений

В этом разделе мы узнаем, как использовать Симпи расширить или упростить математическое выражение. Обе задачи могут быть выполнены автоматически и мгновенно, просто используя функции Развернуть () и фактор () Отказ

Чтобы увидеть, как расширять() Функция работает, мы сначала определим функцию f = (3x + 5y 2 – 6) 2 И тогда мы передаем его как единственный входной параметр функции Развернуть () Отказ В терминале набираются следующие строки, чтобы получить лучший графический вывод; Тем не менее, они работают так же, когда набираются в скрипте.

>>> f = (3*x +5*y - 6)**2
>>> expand(f)
     2                       2
9⋅x  + 30⋅x⋅y - 36⋅x + 25⋅y  - 60⋅y + 36

Как вы можете увидеть из сообщенных результатов, функция Развернуть () рассчитал выражение, определенное в функции F И напечатал его усовершенствованным графическим способом, избегая звездочек и размещения показателей в качестве вершины. Представление стиля может варьироваться в зависимости от различных терминалов, но обычно его улучшается в отношении входной.

С другой стороны, функция фактор () Работает совершенно противоположным образом, он упрощает выражение, которое передается в его скобках. Вы можете увидеть пример в следующих строках.

>>> g = x**3 + y**3 + 3*x*y**2 + 3*x**2*y
>>> factor(g)

Решение уравнений и неравенства

Еще одна полезная функция, предлагаемая Симпи Является ли возможность найти решение алгебраических уравнений, используя функцию .решать () .

Эта функция принимает в качестве ввода двух разных параметров, уравнение, которое мы хотим решить и переменную, для которой мы хотим решить ее соответственно.

Это особенно полезно в случае символических решений уравнений с несколькими переменными, в которых нас могут быть заинтересованы в получении символического решения по одному из двух неизвестных. Следующие строки сообщают либо численное решение уравнения одного переменного и символического решения двумя переменных уравнения относительно переменной « y ».

>>> solve(2*x + 3)
[-3/2]
>>> solve(2*x + 3 -y, y)
[2⋅x + 3] 

Аналогичным образом мы также можем получить численное и/или символическое решение уравнения или неравенства высшего порядка. Оба задача отображаются в следующих строках.

>>> solve(x**3 - 7*x)
[0, -√7, √7]
>>> solve(x +4*y -7 > 0, y)
      7    x
y > ─ - ─
      4    4

Решение систем уравнений/неравенств

Симпи Может использоваться для решения систем уравнений/неравенств. Для этого мы будем эксплуатировать, снова функции решить () Отказ В случае системы уравнений мы вводим уравнения в виде элементов списка; Следующие строки описывают решение системы трех линейных уравнений с помощью решить () Отказ

>>> solve([x + 2*y - 5*z, z + 3 - x,  y + x + z])
{x: 21/8, y: -9/4, z: -3/8} 

Как видно, вывод решить () Функция – это значения трех разных системных переменных. Таким же образом, мы также можем получить решение систем неравенств; Достаточно ввести неравенства как элементы списка; На этот раз символы «>» <«<» должны быть указаны как для неравенств.

>>> solve([x**2 + 2*x > 2, 4*x + 5 < 6])
-∞ < x ∧ x < -√3 - 1

Как обычно, решение печатается прямо под нашей командой, используя логические символы для оператора “и”, “или”.

Заключение

Эта статья представила некоторые основные функции, предоставленные Симпи библиотека. В частности, мы видели, как использовать Симпи определить переменные и функции; Как символически расширить и упростить математические выражения и как использовать эту библиотеку для решения уравнений, неравенств и даже систем уравнений/неравенств. Функции, показанные в изделии, могут быть введены как в тексте скрипта, но и непосредственно в терминале (или ноутбуках Jupyter), чтобы получить немедленную оценку и лучшее графическое представление выполненных расчетов.

Оригинал: “https://blog.finxter.com/symbolic-math-with-sympy/”