LINUX.ORG.RU

GiNaC 1.6.0 - C++ библиотека для символьных вычислений

 , , ,


0

2

Новый выпуск 1.6.0 C++ библиотеки GiNaC (GiNaC is Not a CAS), предназначенной для неинтерактивных операций с символьными математическими выражениями, стал доступен для загрузки 22 мая 2011 года спустя 11 месяцев после выхода предыдущей версии 1.5.8.

GiNaC написана на ISO-C++ и распространяется под лицензией GNU GPLv3.

Среди основных возможностей GiNaC следующее:

  • Быстрые манипуляции с большими целыми числами и рациональными дробями благодаря использованию библиотеки CLN, в основе работы которой лежит метод умножения Карацубы (Karatsuba) и метод умножения Шёнхаге-Штрассена (Schönhage-Strassen) для больших целых чисел
  • Эффективная обработка полиномов от нескольких переменных и рациональных функций
  • Поддержка линейной алгебры включает символьные матрицы, векторы и решение уравнений
  • Очень быстрое эвристическое вычисление наибольшего общего делителя (НОД) для полиномов
  • Большое количество встроенных функций (sin, cos, atan, sinh, factorial, итд)
  • Символьное дифференцирование и разложение в ряды для всех встроенных функций
  • Различные формы возвращаемого результата (в том числе для последующей численной подстановки)
  • Эффективное и безопасное использование памяти благодаря внутреннему подсчёту ссылок (reference counting) на все выражения

Разработчикики позиционируют библиотеку как неинтерактивную, то есть наиболее естественный способ взаимодействия с ней - написание программы на C++, компиляция и затем линковка с libginac. Собственно разработчики используют компилятор C++ из GCC.
Связанный проект PyGiNaC - интерфейс к библиотеке GiNaC на Python, заброшен с версии GiNaC 1.3.2, тем не менее исходный код всё ещё доступен в CVS репозитории.

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

>>> Загрузить исходный код

>>> Страница проекта

Ответ на: комментарий от iVS

>>Я что о связи говорил?

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

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

Вопрос времени. Нужные калибровки-то можно забить и вычистить все бесконечности. Их же на любой вкус cуществует.

mclaudt ()
Ответ на: комментарий от mclaudt

Вопрос времени. Нужные калибровки-то можно забить и вычистить все бесконечности. Их же на любой вкус cуществует.

В том-то и дело, что на ЛОРе полно крикунов, для которых Питон - отстой, Си++ - г****. Но когда есть проект, где нужна реальная помощь, то вся их энергия куда-то испаряется. По поводу нужных калибровок и т.д., то добавить что-то свое в SymPy даже не очень знающему программисту куда проще. Алгоритмов рабочих не так и много.

iVS ★★★★★ ()
Ответ на: комментарий от iVS

>>SymPy даже не очень знающему программисту куда проще.

А там тензоры хоть появились? Вроде год назад кто-то грозился ввести. Про комплексность и не заикаюсь...

mclaudt ()
Ответ на: комментарий от iVS

Да, спасибо, похоже, это все что есть. Координаты не преобразует, ковариантность-контравариантность тоже вроде не сделана. Негусто, конечно, но для черновой оценки каких-нибудь идеек вполне годится.

А вообще даже с не очень навороченными CAS бутылочным горлом является обычно мозг человека. Была бы мысля, а просчитать можно и в гнуплоте. Вон Ландау безо всяких CAS брал адовые комплексные интегралы и вообще всю теорфизику поднял.

mclaudt ()
Ответ на: комментарий от anonymous_incognito

>Вот что интересно: а на каких задачах, кроме как для написания интерактивной оболочки к ней, используются возможности символьных вычислений у этой библиотеки?

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

dmn ()
Ответ на: комментарий от dmn

можно ради эксперимента попробовать написать численный метод, который бы давал точные значения хотя бы первой производной для x^n, n от 1 до 1024, x от 0 до 10^6. А потом чтобы бы ещё и с sqrt x справлялся.

У символьных методов с этим вопросов не возникает.

dmn ()
Ответ на: комментарий от mclaudt

>Axiom, и в Maxima уже используются довольно абстрактные языки

и отличаются они как хаскелл от лиспа, что же выбрать? Может, что-то своё придумать?

dmn ()

а как в этой GiNaC 1.6.0 с системой типов? Один тип expression или есть какие-то абстракции?

dmn ()

Математика довольно большая наука, когда нибудь они сумеют охватить всю математику ?

argin ★★★★★ ()
Ответ на: комментарий от dmn

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

mclaudt ()
Ответ на: комментарий от dmn

>>символьные вычисления в программе часто полезны

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

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

mclaudt ()
Ответ на: комментарий от anonymous

Судя по результатам последнего гуглосоревнования «всё» ии, написанное на Java не смогло победить один сверх-ИИ на CL. Так что джависты как всегда кичатся своими процентами на TPCI, а толкового ничего сделать не могут.

anonymous ()
Ответ на: комментарий от anonymous

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

anonymous ()
Ответ на: комментарий от mclaudt

якобианы в методах конечного элемента откуда брать?

dmn ()
Ответ на: комментарий от dmn

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

Вот тебе задача: краш-тест желтой лады-калины с президентом внутри. Там аналитикой не пахнет в принципе.

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

mclaudt ()
Ответ на: комментарий от argin

когда нибудь они сумеют охватить всю математику ?

Лолчто? Вот и школьники подтянулись.

iVS ★★★★★ ()
Ответ на: комментарий от iVS

>Лолчто? Вот и школьники подтянулись.

Я познакомился с математикой, когда тебя в проекте ещё не было

argin ★★★★★ ()
Ответ на: комментарий от argin

>>Я познакомился с математикой, когда тебя в проекте ещё не было

Судя по наивности высказываний, знакомство шапочное.

mclaudt ()
Ответ на: комментарий от mclaudt

>>Я познакомился с математикой, когда тебя в проекте ещё не было

Судя по наивности высказываний, знакомство шапочное.

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

Начни с размера доказательства теоремы Пуанкаре Перельманом.

argin ★★★★★ ()
Ответ на: комментарий от argin

Мне кажется, ты смешиваешь CAS и ATP. У Axiom есть конечно методы доказательства теорем, но по-серьезному это трудно алгоритмизуемый эвристический поиск в рамках одной научной группы. В общем случае утилитарный матан не имеет отношения к отполированным до блеска доказательствам теорем и реализуется куда проще.

Лейбниц вон дифференцировал и интегрировал без строгого обоснования, из нестрогих рассуждений. То же самое с преобразованием Лапласа - много лет применяли по интуиции, заменяя вещественные дифуры линейными уравнениями относительно комплексных чисел, строго обосновали куда позже.

mclaudt ()
Ответ на: комментарий от argin

когда нибудь они сумеют охватить всю математику ?

Начни с размера доказательства теоремы Пуанкаре Перельманом.

Вы противоречите сами себе, поскольку именно доказательство Перельмана и есть яркий пример новых идей в математике, оказавшее большое влияние на современную топологию. Кстати, правильно называть не теоремой Пуанкаре, а гипотезой Пуанкаре. История доказательств при помощи компьютеров и их успехи не настолько велики, чтобы делать какие-то выводы сейчас. По крайней мере, сто лет назад были попытки построить логику доказательств (Б. Рассел и другие), но привело это к обратному результату - теореме Геделя.

iVS ★★★★★ ()
Ответ на: комментарий от anonymous

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

naryl ★★★★★ ()
Ответ на: комментарий от iVS

собственно меня не интересуют доказательства только при помощи компьютеров, это в целом область ИИ. Но иметь возможность корректно формулировать математические задачи, уметь описывать математические объекты, уже известные зависимости между ними, делая тем самым возможной проверку выводов было бы полезно и интересно, оставляя за компьютером чисто техническую работу по проверке логики.

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

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

В общем, я как то так рассматривал эту новость

argin ★★★★★ ()
Ответ на: комментарий от argin

Сформулировать задачу можно, известные соотношения и выводы - тоже. Есть вледующие но:

1. Формулировка будет понятна машине и практически нечитаемой для человека.

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

3. Машина делает только то, что скажет ей человек.

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

iVS ★★★★★ ()
Ответ на: комментарий от iVS

ИИ уже разработан. Я - прямое тому доказательство.

anonymous ()

Любопытно, оно с Mathcad 7 сопоставимо? Пользовал кто?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.