Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > GNU для С++: решение уравнений. С чего начать?


Автор: valeriyzf 17.7.2010, 16:55
Как использовать функции и методы GNU в Visual C++ для решения математических задач?
Перечитал весь ихний сайт, а конкретно, с чего начать, какие куда библиотеки устанавливать и т.д., так и не нашел.

Конкретно интересует реализация следующего примера:
http://www.gnu.org/software/octave/doc/interpreter/Nonlinear-Equations.html
(решение системы нелинейных уравнений). Начиная со слов: "Here is a complete example..." 

Все очень аппетитно выглядит, но как довести этот пример до реального кода в С++?
У кого есть опыт, пожалуйста поделитесь..

Автор: Фантом 17.7.2010, 19:52
Цитата(valeriyzf @  17.7.2010,  16:55 Найти цитируемый пост)
Как использовать функции и методы GNU в Visual C++ для решения математических задач?

Вопрос, прямо скажем, очень похож на такой: "Прочитал "Книгу о вкусной и здоровой пище", но так и не понял, как играть джаз на контрабасе. Конкретно интересует исполнение пьесы "Салат оливье", начиная со слов "добавьте майонез по вкусу"..."  smile 

Вы сначала определитесь, что такое GNU и что такое GNU Octave. А потом подумайте, что именно написали.  smile 


Автор: valeriyzf 17.7.2010, 19:58
Не дописал в первом случае "..Octave".
И все же  smile
Я сам написал процедуры для решения систем нелинейных уравнений. Но они выглядят довольно громоздко и в некоторых случаях (от 3х ур-й) работают довольно долго. Так что начал поглядывать на уже готовые библиотеки. 
Спс

Автор: Фантом 17.7.2010, 20:08
Octave - это, вообще говоря, не библиотека, а пакет со своим встроенным языком. В принципе, его можно прицепить к C++, но пока что непонятно, зачем Вам это нужно, да и "реальный код на C++" при этом все равно не получится.

Автор: valeriyzf 17.7.2010, 23:26
Мне конкретно нужна процедура, решающая системы нелинейных уравнений (как в примере выше). Три строчки - и ответ готов! Идеально!
Потому что сейчас я пользуюсь своей, которая считает довольно долго (по времени: иногда до 10 сек), и в некоторых частных случаях не очень хорошо работает.
Соответственно, если уже есть готовая стандартная процедура, то я с удовольствием бы ею пользовался.
Но, честно говоря, думал, что это все легко подключается к С++ ...

Автор: Фантом 18.7.2010, 15:16
Цитата(valeriyzf @  17.7.2010,  23:26 Найти цитируемый пост)
Соответственно, если уже есть готовая стандартная процедура, то я с удовольствием бы ею пользовался.
Но, честно говоря, думал, что это все легко подключается к С++ ... 

Тогда лучше пользоваться не Octave. Это хорошая штука, но все-таки она в первую очередь ориентирована на программирование на ее собственном языке. Если же Вам нужна библиотечная функция к программе на C++, воспользуйтесь, например, GSL. Описание есть http://www.gnu.org/software/gsl/, посмотрите мануал по ссылке, там все достаточно детально объясняется.

Автор: W4FhLF 18.7.2010, 15:45
По ссылке можно прочесть, что Octave использует solver из пакета MINPACK. Его версия на С++ легко ищется в гугле и выведет вас на вполне достойную реализацию: http://devernay.free.fr/hacks/cminpack.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)