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

Символическая математика с Sympy: расширенные функции и участки

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

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

Эта статья будет охватывать некоторые передовые математические функции, предоставляемые Симпи библиотека. Если вы все еще не прочитали первую вступительную статью на Симпи, Вы можете проверить это здесь Отказ

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

В этой статье мы рассмотрим Как рассчитать производные, интегралы и ограничения с Симпи а также Как построить графики прямо из терминала. Как уже говорилось в предыдущей статье и видео, команды и функции, которые будут описаны в следующих разделах, могут быть введены как в скрипте, так и в терминале; Я буду использовать терминал, поскольку он предлагает более интуитивно понятное представление о данных.

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

Производные и частичные производные

Расчет производных математических функций является действительно общая практика в большинстве случаев, связанных с наукой; Делая это, можно определить местоположение максимумов и минимумов функции, то есть точки, в которых он начинает увеличиваться/уменьшаться.

Симпи позволяет решить эту задачу очень непосредственно; Функция, которая используется для этой цели, называется diff (), из “дифференциала”. Функция diff () , принимает в качестве входного параметра функция, которую мы хотим деформировать. В следующих строках кода мы определяем функцию «f», и мы рассчитываем его первое производное.

>>> f = 3*x**2 + 4*x + 5
>>> diff(f)
6⋅x + 4 

Как вы могли видеть, только одна линейка кода нам удалось рассчитать производную функции. В этом случае можно даже возможно рассчитать второе производное «F» (более правильно, чтобы сказать, что в этом случае второе производное не равно нулю), поскольку он представляет собой второй член заказа (X 2 ).

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

>>> f
     2
3⋅x  + 4⋅x + 5
>>> diff(f, x, 2)
6

Также в этом случае Симпи сделал задание неловко легко и немедленно!

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

>>> g = 2*x + 4*y**2 - x*z
>>> diff(g, x)
2 - z
>>> diff(g, y)
8⋅y
>>> diff(g, z)
-x

Интегралы

Интеграция – это противоположная работа по сравнению с дифференциацией. С графической точки зрения, интеграция функции означает расчет отеля между функцией и осью X, но, конечно, потенциал Интегральный исчисление не ограничивается только областями под графами.

В этом разделе мы посмотрим, как выразить интеграл функции в терминале; Как вы увидите, Симпи позволяет лучше представить функцию внутри терминала.

Для этого мы все еще используем функцию «F», определенную в начале (вы можете найти его также в первых строчках этого раздела кода), и мы просто определяем его интеграл, между точками -2 и 2. сделать это, Мы используем функцию Интеграл () И пропустите в качестве входных параметров функция, переменная, для которой мы хотим интегрировать, за которыми следует нижние и верхние границы (эти три последних параметра должны быть помещены в скобки).

>>> f
   2
3⋅x  + 4⋅x + 5
>>> Integral(f, (x, -2, 2))
  2
 ⌠
 ⎮       2                  
 ⎮  3⋅x  + 4⋅x + 5 dx
 ⌡
-2

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

>>> integrate(f)
  3        2
x  + 2⋅x  + 5⋅x
>>> integrate(f, (x, -2, 2))
36

Как вы можете видеть, благодаря Интеграция () Функция, можно было решить интеграл как символически, так и численно в очень непосредственном способе. С аналогичным подходом также можно решить двойные или тройные интегралы; Мы просто должны указывать границы для каждой переменной, так же, как мы сделали для переменной x в примере выше; В следующих строках кода мы рассчитываем двойной интеграл функции «G».

>>> g = x**2 + 5*y
>>> integrate(g, (x, -2, 2), (y, 3, 5))
512/3

Если бы мы хотели определить интеграл символически относительно одной из двух переменных, было бы достаточно, чтобы дать в качестве ввода этой переменной, сразу после имени функции для интеграции («G» в этом случае).

Пределы

В Математика , ограничения используются для оценки функции, когда она приближается к «критическим» точкам, в которых она может расходиться или сходиться на определенные значения, являясь их конечным числом или ± бесконечность. Для расчета пределов математической функции мы используем Симпи Функция предел (); Требуется в качестве ввода функции интереса, переменная, к которой называется предел, и точка, в которой мы хотим вычислить предел, то есть точка независимой переменной «приближается». В следующем примере мы оцениваем предел функции sin (x)/x когда X приближается к нулю.

>>> limit(sin(x)/x, x, 0)
1

В некоторых случаях ограничения могут принимать разные значения, приближается ли независимая переменная, приближается к критической точке от более высоких или нижних значений; Пример – предел функции 1/х , оцененный в близости нуля; Как вы увидите, результат отличается, если мы подходим к нулю от более высоких или нижних чисел. Чтобы указать направление, из которого мы хотим «подходить» критической точки, мы добавляем еще один входной параметр, то есть «-» или «+», указывающий, что мы приближаемся к этой критической точке от более низких или более высоких значений, соответственно.

>>> limit(1/x, x, 0, '-')
-∞
>>> limit(1/x, x, 0, '+')
∞

Как прогнозируется, результат пределе в двух случаях варьируется от -∞ до + ∞.

Функции построения

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

Если вы заинтересованы в них, посмотрите на официальную документацию здесь: https://docs.sympy.org/latest/modules/plotting.html.

Начнем с поиска того, как построить одну функцию; Сначала мы назначаем график переменной «P1»; Чтобы построить функцию, мы используем функцию Участок (), Ввод, в качестве входных параметров, функция (выраженная явно) и границы независимой переменной (это не обязательно, если мы не укажем никаких границ, функция будет отображаться от -5 до +5).

>>> p1 = plot(3*x + 4, (x, -3, 3))

На данный момент мы должны видеть в отдельном окне MatPlotlib, график нашей функции; На рисунке 1 сообщается о результате примера.

Рисунок 1: Участок функции + 4, рассчитанный для значений х от -3 до +3.

Также можно построить несколько графов на одном графике, каждый из которых со своими собственными границами; Для этого нам просто нужно использовать функцию продлевать(). В следующих строках кода мы определяем второй сюжет, «P2», мы решили не показывать его, указав в параметре «и через функцию Extend () , мы добавляем ее к начальному сюжету, P1. Мы наконец покажем P1. Последний результат отображается на рисунке 2.

>>> p2 = plot(x**2, (x, 3, 7), show=False)
>>> p1.extend(p2)
>>> p1.show()

Рисунок 2: Участок «P2» (определенный от до) был добавлен и отображен вместе с начальным (P1).

Еще одна интересная особенность Симпи Является ли возможность построения параметрических функций, таких как окружные окружности. Для этого мы можем эксплуатировать функцию Plot_Parametric (), Его входные параметры являются координатами «X» и «Y» точек, определяющих параметрическую кривую, параметрическую переменную и ее границы. Следующие строки кода показывают, как построить окружность, ориентированную на происхождение осей, при этом его независимая переменная варьируется от -7 до 7. На рисунке 3 отображается окно MATPLOTLIB с помощью сюжета, следовательно, генерируемым.

>>> plot_parametric((cos(x), sin(x)), (x, -7, 7))

Рисунок 3: Параметрическое представление окружности, сосредоточенного при происхождении осей X и Y.

Последняя функция, которую мы исследуем, позволяет вам построить функции, дающие в качестве входного параметра, уравнение в неявной форме. Эта функция может быть действительно полезна при работе с действительно сложными и длинными функциями, для которых часто трудно получить явную версию (то есть тот, в которой одна вариабельная зависимость выражается как функция всех остальных). Чтобы решить эту задачу, соответствующая функция – plot_implicit (); Входные параметры являются неявной функцией (то есть то, что отображается как переменные в его уравнении), так и границы для каждой из переменных. В следующих строках кода мы поручим параболическую функцию, давая в качестве ввода его неявного уравнения и изменение границ как для координат X, так и для Y. Последний результат затем показан на рисунке 4.

>>> plot_implicit(x**2 + 2*y, (x, -2, 2), (y, -3, 3))

Рисунок 4: Участок параболической функции, полученной путем прохождения в качестве входного параметра, его уравнение в неявной форме.

Выводы

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