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 ()).
Реалізована функція
Що нового у версії 0.10:
- Додатки включають замальовки підтримки, матриці і лінійні функції алгебри, нові корінь встановленню фактів і квадратурні алгоритми, підвищена арифметичне інтервал, і деякі нові спеціальні функції.
- Багато поліпшень швидкості були здійснені (кілька функцій на порядок швидше, ніж в 0,9), а також різні помилки були виправлені.
- Важливо відзначити, що цей реліз виправляє mpmath працювати з Python 2.6.
Вимоги
- Python
Коментар не знайдено