Показаны сообщения с ярлыком python. Показать все сообщения
Показаны сообщения с ярлыком python. Показать все сообщения

четверг, 14 июня 2018 г.

Python. Производные, интегралы и ОДУ

Если искомая функция является полиномом, для её дифференцирования и интегрирования можно использовать методы модуля numpy.polynomial.polynomial. Хочу обратить внимание, что самый левый коэффициент соответствует младшему члену полинома, правый - старшему. Функции polyder() и polyint() содержат дополнительные опциональные коэффициенты, которые позволяют использовать их более гибко.



воскресенье, 10 июня 2018 г.

Python. Символные вычисления

Если ввести в поисковике запрос "символьные вычисления в python", большинство результатов будут посвящены модулю SymPy. Это действительно мощный инструмент, описание работы с которым можно найти, например, здесь. Я же ограничусь кратким рассмотрением некоторых из возможностей данного модуля. 

понедельник, 4 июня 2018 г.

Python. Решение уравнений

Для решения системы линейных уравнений типа Ax = b в numpy имеется функция linalg.solve(). Они принимает на вход квадратную матрицу линейно-независимых строк A, а также вектор значений b, и рассчитывает вектор корней x. Для проверки результата в данном примере использована функция allclose(), она сравнивает два массива поэлементно и возвращает True, если разница не превышает заданной величины (по-умолчанию относительная разность не более 1E-5, абсолютная - 1E-8).


Если найти решение не удалось, можно попробовать функцию linalg.lstsq(), которая ищет такой вектор x, для которого евклидова норма разности между Ax и b будет минимальна.

вторник, 22 мая 2018 г.

Python. Графики

В качестве инструмента построения графиков рассмотрим библиотеку matplotlib и её модуль pyplot. Он предназначен для работы с двумерными фигурами и умеет строить большое число разнообразных типов графиков, обеспечивая при этом Matlab-подобный интерфейс. Простейший график можно создать с помощью следующих команд.
  import numpy as np
  import matplotlib.pyplot as plt 
  # векторы абсцисс и ординат
  X = np.linspace(0, 2*np.pi, 50)
  Y = np.sin(X)

  # создание графика и его отображение
  plt.plot(X,Y) 
  plt.show()
Как видно, отрисовка происходит через обращение к модулю pyplot (plt). График строит функция plot(), а отображает - show().

четверг, 17 мая 2018 г.

Python. Массивы

В принципе, массивы в Python можно построить за счёт комбинации списков, однако при больших размерах массива данное решение неэффективно, т.к. работать будет сравнительно медленно, а памяти потребует много. К тому же, все специальные операции придётся задавать вручную. Для решения данных проблем был создан модуль NumPy.

понедельник, 14 мая 2018 г.

Python. Функции и списки

Интерпретатор Python может использоваться как среда для вычислений даже без импорта дополнительных модулей (кроме math). Рассмотрим базовые возможности языка, которые могут быть при этом полезны. 

Прежде всего, в интерпретаторе можно выполнять основные арифметические операции. 

воскресенье, 13 мая 2018 г.

Python. Мудрый змей

Python в настоящее время является одним из самых популярных языков программирования. Отчасти это связано с простым и элегантным синтаксисом, отчасти с кроссплатформенностью, отчасти с расширяемостью и огромным сообществом программистов, которые адаптировали этот язык для решения самых разнообразных задач. В том числе, связанных с математическими вычислениями. Обычно, когда говорят про расчёты в Python, на ум приходит пакет NumPy. Однако, это не единственный математический пакет Python, к тому же, его "специализация" - линейная алгебра и работа с массивами. Для полноты его нужно дополнить такими пакетами как SciPy и MatPlotLib (последний необходим для построения графиков). На этом, конечно, разнообразие доступных математических пакетов не заканчивается, но мы ограничимся тремя самыми популярными.