Где взять бесплатные математические библиотеки для C / C ++ - PullRequest
2 голосов
/ 20 апреля 2011

Существуют ли бесплатные библиотеки C / C ++, которые выполняют типы функций, которые выполняет Matlab - я имею в виду что-то сложное, например дискретный лапласиан и т. Д.?Является ли лучший вариант для создания какого-либо интерфейса в Matlab и создать свою собственную библиотеку?

Спасибо

Ответы [ 8 ]

3 голосов
/ 20 апреля 2011

Вы смотрели на Boost.Math?http://www.boost.org/doc/libs/1_46_1/libs/math/doc/html/index.html

Если вы работаете в Windows, BoostPro предлагает очень простой в использовании установщик: http://www.boostpro.com/download/

2 голосов
/ 20 апреля 2011

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

Произвольная точность

  • в основном целые числа: GMP , MPIR (аналогичные кодовые базы, MPIR имеет сборки VC)
  • плавает: MPFR
  • комплекс: ПДК

Специалист:

Общие сведения:

и это только несколько. Я не повторял те, которые другие перечислили как libpari.

На тот случай, если вам интересно, Maple, Mathematica, Matlab и т. Д. Все используют GNU MP для расчетов произвольной точности.

2 голосов
/ 20 апреля 2011

Если вы хотите что-то, что было клоном Matlab, но бесплатно, вы можете использовать Octave http://www.gnu.org/software/octave/

Я не использовал его в программе на C ++, но он, очевидно, имеет C ++ API:

http://octave.sourceforge.net/doxygen/html/index.html

1 голос
/ 20 апреля 2011

Научная библиотека GNU - это бесплатная числовая библиотека для программистов на C и C ++.

С набором инструментов Coder (требуется MATLAB R2011a) вы также можете включитьваш код MATLAB в C или C ++.

1 голос
/ 20 апреля 2011

Я использую OpenCV для большой обработки изображений и матричных манипуляций, для которых я обычно использую matlab.

http://opencv.willowgarage.com/wiki/

Может быть излишним, в зависимости от того, какую математику вы пытаетесь сделать, но это здорово для компьютерного зрения.

1 голос
/ 20 апреля 2011

Взгляните на броненосец для упрощения обработки матриц.Тогда для решения PDE вам придется делать работу самостоятельно, т.е.Создайте явно свою матрицу Лапласа и решите ее так, как вы хотите.

Существует также Intel MKL (хотя и не бесплатный), который добавляет некоторую ценность: итерационные решатели (GMRES, BCG) и некоторые черные ящики для решенияУравнение Лапласа / Пуассона на простых областях (кубы и сферы).

1 голос
/ 20 апреля 2011

PARI может быть хорошим выбором, хотя я не знаком с его использованием:

Официальный сайт PARI

PARI - это библиотека C, и если вам нужно независимое программное обеспечение, там есть PARI-GP.

Ниже приведено описание PARI на сайте выше:

PARI / GP - широко используемый компьютер система алгебры, предназначенная для быстрого вычисления в теории чисел (факторизации, алгебраическое число теория, эллиптические кривые ...), но и содержит большое количество других полезные функции для вычисления математические объекты, такие как матрицы, полиномы, степенные ряды, алгебраические числа и т. д., и много трансцендентные функции. ПАРИ также доступный как библиотека C, чтобы позволить более быстрые вычисления.

Надеюсь, это может быть полезно!

P.S. Говорят, что функции Octave можно вызывать из C ++, и это может быть отличной заменой MATLAB.

0 голосов
/ 20 апреля 2011

вы можете использовать октаву:

http://en.wikipedia.org/wiki/GNU_Octave#C.2B.2B_Integration

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...