mpmath является заменой для поплавковых / сложных типов языка Python и математика / CMATH модулей с неограниченной точностью и показателем размеров. Программное обеспечение mpmath полностью написана на Python без каких-либо внешних зависимостей и, следовательно, работает практически в любом месте, без необходимости компиляции.
Чтобы установить, распакуйте архив и запустите mpmath
питон setup.py установить
Документация и использование:
Импорт mpmath с
от mpmath импорта *
Это обеспечивает классы МФП и ПДК, которые работают аналогично поплавка Python и сложных типов:
>>> MPF (2) / MPF (3)
MPF ('+0,66666666666666663 ")
>>> MPC (0, -1)
MPC (реальных = '0', емк = '- 1')
>>> MPF (-0.6) ** MPF (-0,2)
MPC (реальных = '+0,89603999408558288 "ИМАГ =' - +0,65101116249684809")
Для выхода красивее (что также скрывает маленькие ошибки округления), использование печати или STR ():
>>> Печати MPF (2) / МПФ (3)
+0,666666666666667
>>> Печати MPC (1 + 2j) ** 0,5
(+1,27201964951407 + 0.786151377757423j)
Точность определяется свойствами mpf.prec (число битов) и mpf.dps (количество знаков после запятой). Эти свойства связаны, поэтому изменение одного автоматически обновляет другой, чтобы соответствовать. Установка PrEC или ДПС изменяет точность, при которой все операции осуществляются и количество цифр для отображения номера при печати. Умолчанию
Prec = 53 и ДПС = 15, так же, как плавает на Python.
>>> Mpf.dps = 30
>>> MPF (2) / MPF (3)
MPF ('0,66666666666666666666666666666663 ")
>>> Печати _
0,666666666666666666666666666667
>>> mpf.dps = 15 # восстановить по умолчанию
Вы можете создать MPFS и ПДК от числа Python, или объединить MPFS и ПДК с номерами Python в арифметических операциях, но знать, что регулярные Python плавает только конечное точность. Для инициализации MPF со значением полной точности, использовать строку:
>>> MPF (0.1)
MPF ('+0,10000000000000001') # такой же, как точность поплавка
>>> Mpf.dps = 50
>>> MPF (0.1)
MPF ('0,1000000000000000055511151231257827021181583404541016') # нежелательной
>>> MPF ('0.1')
MPF ('0,1000000000000000000000000000000000000000000000000001') # ок
Следующие стандартные функции доступны и поддерживает оба вещественные и комплексные аргументы:
SQRT, ехр, журнал, власть, потому, грех, загар, сп, зп, TANH,
экоса, ASIN, Атан, ACOSH, ASINH, ATANH
Пример:
>>> Mpf.dps = 15
>>> печати соз (1)
+0,540302305868140
>>> Mpf.dps = 50
>>> печати соз (1)
0,54030230586813971740093660744297660373231042061792
Некоторые редкие функции также доступны: гамма (гамма-функция), факторный, ERF (функция ошибки), lower_gamma / upper_gamma (неполная гамма-функция) и дзета (дзета-функция Римана).
Наконец, вспомогательные функции hypot и atan2 доступны (определяется только для вещественных чисел).
Константы пи, е, и cgamma (постоянная Эйлера) доступны также специальные объекты, которые ведут себя как MPFS, но чьи значения автоматически регулировать с точностью.
>>> Mpf.dps = 15
>>> Печати пи
3.14159265358979
>>> Mpf.dps = 50
>>> Печати пи
3,1415926535897932384626433832795028841971693993751
>>> Mpf.dps = 15
>>> Электронной ** (- пи * 1к)
MPC (реальный = '- 1', емк = '- 1.2289836075083701E-16 ")
>>> Mpf.dps = 50
>>> Электронной ** (- пи * 1к)
MPC (реальный = '- 1', емк = '1.0106 [...] E-51 ")
Режиссер округления частично реализованы. Например, это вычисляет и проверяет 15-значный интервал аппроксимации для пи:
>>> Mpf.dps = 15
>>> Mpf.round_down (); pi1 = + пи
>>> Mpf.round_up (); pi2 = + пи
>>> Pi1
MPF ('3,1415926535897931 ")
>>> Pi2
MPF ('3,1415926535897936 ")
>>> Mpf.dps = 30
>>> Pi1 <р
Что нового в этой версии:
- Общие
- Это теперь можно создать несколько объектов контекста и использовать контекстно-местный методы вместо глобальных государственных функций / (например, MP2 = mp.clone (); mp2.dps = 50; mp2.cos (3)). Не все функции были преобразованы в методы контекста, и есть некоторые ошибки, так что эта функция является экспериментальной.
- Если mpmath установлен в Sage 4.0 или более поздней версии, mpmath теперь использовать sage.Integer вместо Python долго внутренне.
- Удаленные экземпляры старого стиля целочисленного деления от кода.
- runtests.py может работать с -coverage генерировать статистику покрытия.
- Типы и основные арифметические
- Исправлена сравнение с -Inf.
- Изменен формат магнезии типа интервала MPI сделать Eval (Repr (х)) == х.
- Улучшена печать интервалов, с настраиваемым выходного формата (вклад в Vinzent Steinberg на основе кода Дон Петерсон).
- Интервалы поддерживаемые mpmathify () и НСТР () (вклад в Vinzent Steinberg).
- MPC теперь hashable.
- Добавлена более параметры форматирования к внутренней функции to_str.
- Быстрее чисто Python квадратный корень.
- Fix конечные пробелы давая неправильные значения в Str- & GT;. MPF преобразования
- исчисление
- Исправлена nsum () с Эйлера-Маклорена суммирования чего раньше игнорировать начальный индекс и сумму с п = 1.
- Реализованные метод Ньютона для FindRoot () (предоставлены Vinzent Steinberg).
- Линейная алгебра
- Исправлена LU_decomp (), чтобы признать особые матрицы (предоставлены Vinzent Steinberg).
- Различные функции норма были заменены функцией нормы родовой нормы вектора (х, р) и функции mnorm общий матричная норма (х, р).
- Специальные функции:
- Некоторые внутренние кэши были изменены, чтобы всегда немного overallocate точностью. Это исправляет наихудший случай, где ранее в кэше значение пришлось пересчитывать при каждом вызове функции.
- Исправлена журнала (небольшое число) возвращаются глупости на высокой точностью.
- Исправлена гамма () и производные функции, такие как бином () возвращения неправильные результаты на целых входов время делится на большую степень 2.
- Исправлена ASIN () не поднимать исключение при высокой точности (вклад в Vinzent Steinberg).
- Оптимизирован AGM код для натурального логарифма, делая ранее используемый метод Ньютона на промежуточных уточнений устаревших.
- среднее арифметическое функция AGM-геометрические () теперь порядок быстрее низкой точности.
- Быстрее реализации ellipk () и ellipe ().
- Аналитическое продолжение ellipe () для | х | и GT;. = 1 реализуется
- Реализованные журнала гамма-функция (loggamma ()) с правильными разрезами (медленно, реализации заполнитель).
- Исправлены отраслевые разрезы hyperfac ().
- Реализованные Z-функция Римана-Зигеля (siegelz ()).
- Реализована функция Римана-Зигеля тета (siegeltheta ()).
- Реализовано вычисление грамм точек (grampoint ()).
- Реализовано вычисление функция Римана Дзета нулей (zetazero ()).
- Реализована главную функцию подсчета: медленно, точная версия (primepi ()). и быстро приблизительная версия (primepi2 ()), что дает интервал ограничивающий.
- Реализованные премьер подсчет функция Римана R (riemannr ()).
- Реализованные числа и полиномы (колокол ()) Bell.
- expm1 ().
- Реализовано "polyexponential функция '(polyexp ()).
- Реализованные близнец премьер-постоянной (twinprime) и Мертенса постоянные (Мертенс).
- Реализованные премьер дзета-функция (primezeta ()).
Реализована функция
Требования:
- Python
Комментарии не найдены