Символьная математика Python? [закрытый]

&& иногда называют оператором guard .

variable = indicator && value

его можно использовать, чтобы установить значение, только если индикатор правдоподобен.

19
задан Pratik Deoghare 3 February 2009 в 11:21
поделиться

7 ответов

  1. Это - хороший проект к навыкам программирования практики. Но если Вы хотите создать реальную библиотеку, которой другие люди захотят пользоваться, это - проект, который Вы не хотите запускать один и с нуля...

  2. , Где запустить: Взглянули на решения, которые уже являются там и думают о том, чем случается так, что Вы хотите сделать отличающийся. Как Ваш проект будет отличаться от других?

  3. Ресурс: SymPy является библиотекой Python для символьной математики

19
ответ дан 30 November 2019 в 02:56
поделиться

1. Эта хорошая идея проекта?

Да; я ожидал бы, что это обеспечит бесконечный источник интересной работы, которая, вполне быстро, протестирует и расширит Ваши полномочия программирования.

2. Где запустить?

я второй другие предложения, чтобы Вы посмотрели на существующую работу. SAGE является очень впечатляющим и если бы Вы попросили мой совет, я предложил бы, чтобы Вы во-первых записали базовую систему для того, чтобы сделать арифметику с числами и символами; затем взгляните на SAGE и запишите модуль, чтобы расширить систему, другими словами, стать участником чего-то большего вместо того, чтобы пытаться сделать все это самостоятельно. Взгляд также на Mathematica и Maple, Macsyma и Axiom. Последние 2 свободны (я думаю), но они все хорошо документируются онлайн и большой источник идей и проблем.

3. Как нужно приблизиться к этому проекту?

, Поскольку можно было бы приблизиться к употреблению в пищу слона. Один укус за один раз. Более серьезно я думаю, что существуют некоторые базовые проблемы, такие как представление выражений и некоторая основная функциональность (арифметика на многочленах), в котором Вы могли получить первый опыт.

4. Какие-либо хорошие ресурсы?

Партии и партии. Google для 'компьютерной алгебры', 'перезапись термина'. Взгляните на то, что доступно на Amazon. И, если Вы имеете доступ, проверяете цифровую библиотеку ACM

Удача.

10
ответ дан 30 November 2019 в 02:56
поделиться

@Resources: Вы могли смотреть на pythonica - это было попыткой реализовать программу Mathematica-типа в Python (исходный код доступен для скачивания).

4
ответ дан 30 November 2019 в 02:56
поделиться

Символьная математика является забавным проектом. Использует ли кто-либо, это, кажется, не имеет значения в Вашем вопросе, таким образом погружается в.

я записал два из них за эти годы. Самое прохладное было один для SQL, где пункты - он сделал некоторые тривиальные символьные манипуляции на SQL для сворачивания в некоторых дополнительных И условия. Не полный "решатель" или "оптимизатор" или что-либо, всего несколько символьных манипуляций любым SQL, где возможный пункт. Менее прохладный был для отладчика; это сделало сложную математику для разработки (символически) смещений стека для переменных.

Вы запускаете путем определения классов для элементов математического выражения - операнды, операторы, функции, и т.д.

необходимо решить, в каких манипуляциях эти объекты должны участвовать. Получение конкретного значения для выражения является легким и очевидным. Запустите со случая, где все переменные имеют привязку.

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

Затем дескриптор, перестраивающий выражение в каноническую форму. Т.е. Вы сделали частичную оценку и имеете Add( Variable(x), Add( Variable(x), Lit(3) ) ). Необходимо записать правила преобразовать это в Add( Multiply( Lit(2), Variable(x) ), Lit(3) ).

Одно очень прохладное осуществление оптимизирует круглую скобку так, чтобы печатный вывод имел наименьшее количество круглой скобки, необходимой для получения значения.

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

, В частности, перестраивая уравнение для изоляции переменной может быть действительно твердым в некоторых случаях.

Выполнение производного преобразования легко, но символьная интеграция действительно, действительно трудно с тонной особых случаев.

основы являются забавой. В зависимости от того, как далеко Вы хотите пойти, это прогрессивно становится более твердым.

7
ответ дан 30 November 2019 в 02:56
поделиться

Этот pySym Блог мог бы также заинтересовать Вас для получения идей и начинающих и изучения, что другие делают с Python & символьная математика.

3
ответ дан 30 November 2019 в 02:56
поделиться

Больше в способе ресурсов: SympyCore:

цель проекта SympyCore состоит в том, чтобы искать новые высокопроизводительные решения, чтобы представить и управлять символьными выражениями на языке программирования Python и испытать новые символьные модели к achive существенно последовательной и достаточно общей символьной модели, которую было бы легко расширить на Компьютерную систему алгебры (CAS).

1
ответ дан 30 November 2019 в 02:56
поделиться

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

существует много больших ресурсов. Я рекомендую книгу "Алгебра Современного компьютера" zur Gathen и Gerhard, хотя она действительно более касается арифметики в специальных формах (многочлены, целые числа, матрицы), чем общее символьное управление. Когда Вы начинаете, Вам можно на самом деле лучше помочь путем рассмотрения некоторого Lisp или учебного руководства по Схеме, потому что символьная математика концептуально очень проста, чтобы сделать в Lisp и создать символьный механизм в Python, необходимо будет более или менее реализовать мини-Lisp как основу.

, Поскольку другие указали, Вы могли посмотреть на SymPy и sympycore для вдохновения или конкретных алгоритмов. Исходный код для любого проекта немного сложен (но конечно не слишком трудно для приобретения знаний из).

(Если я могу включиться немного, я записал крошечный символьный механизм некоторое время назад (как проект выходных дней - это является очень крошечным, и я не работал над ним с тех пор). Это реализует универсальный символьный механизм приблизительно в 200 строках кода, и затем существует 300 строк кода, реализовывая символьную арифметическую и символьную булеву алгебру с некоторым очень элементарным упрощением. Возможно, легче вырыть в, чем SymPy. Но все там - вещи, которые Вы могли легко обнаружить для себя и можете развлечься еще больше, делая так.)

1
ответ дан 30 November 2019 в 02:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: