Pull to refresh

Comments 12

Спасибо.

Его интеграция с jupyter — считай, замета маткаду (плюс-минус).
И в отличии от традиционных мат пакетов не весит, непонятно зачем, кучу гигабайт. И можно прям в эмбедед изделие символьное ядро внедрять.
>> непонятно зачем, кучу гигабайт

То, что не понятно Вам, может иметь вполне простое объяснение.
Ну вот я вывел в SymPy символьное уравнение на 100500 слагаемых. Как от этого результата перейти к оптимизированной реализации с subexpression extraction, например, а потом функцию получилть на С++ или С?

Несколько раз пытался пересесть с MATLAB Symbolic Toolbox на SymPy, но все старания разбивались о академичный уклон последнего. При этом пакеты на 10+ гигабайт это умеют, и очень давно, и очень трудно от этого блага отказаться в пользу opensourse.

По поводу символьного ядра в ембеддед даже трудно представляю себе юз кейс.
Использовать Codegen.
А Матлаб до сих пор считает, что нулевой полином Чебышёва — это ноль?
Я не являюсь фанатом MATLAB, несмотря на многолетний опыт работы, колкое замечание по поводу полиномов Чебышева не к месту. Напротив, как я ранее выразился — я делал несколько попыток заменить проприетарный инструмент на опен сорс. Это чуть ли не последний инструмент в моем наборе, для котороне не удалось найти замену.
Подскажите, Вы использовали в боевых условиях кодген от NumPy? Или просто погуглили? В нижеприведенном видео неплохо представлен функционал, с которым я пыталася совладать. Выглядит сносно, но достаточно немного отойти в сторону от простых примеров. А именно:
1. Масштабные выражения и их оптимизация с точки зрения вычислительной сложности (subexpression extraction and reuse, reduced precision and bit depth, fixed point conversion).
2. Работа с входными параметрами и локальными переменными, const, pointer, ref, etc…
3. Code replacement, это когда у Вас аппаратное обеспечение предоставляет быстрое матричное умножение, и вы хотите, чтобы кодген использовал Вашу функцию. Заметте, это не просто пройтись по уже сгенерированному файлу и заменить. Это должно работать на уровне выражений.
Мой комментарий был к тому, что и Матлаб надо было дорабатывать напильником.
Нет, не использовал. Думаю, что в какие-то функции ещё в зачаточном состоянии, и если вы хотите писать символьный код, а исполнять его в плюсах, то нужно придётся использовать Матлаб или что-нибудь вроде SymEngine.
Опять же предположу, что SymPy сейчас имеет другие сценарии использования, например, бесшовная интеграция с NumPy и SciPy.
А математику с пределами, производными, интегралами и прочими вычетами оставили на потом?

Интересно, насколько это быстрее/медленнее аналогов.
Ну что, написано очень добротно, а главное без претензий на научные откровения вселенского масштаба, что не может не радовать. Цель четко обозначена: «обучить студентов основам символьных вычислений» и текст строго следует этой цели. Видимо, Юрий Карлович переосмыслил свой подход к популяризации питона и нашел достойного ученика. Меня это радует, желаю успехов Вам на ресурсе
В любой статье про SymPy нужно писать версию, потому что всё довольно таки подвижно. Например, до 1.3 некоммутирующие переменные не работали.
А его можно научить работать с гиперреальными числами, инфинитисами и прочим нестандартным вычислениям?
Наконец-то кто-то взялся за SymPy!!!
Sign up to leave a comment.

Articles