Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
#1

Готовые библиотеки для решения систем уравнений - C++

02.10.2014, 14:08. Просмотров 2421. Ответов 26
Метки нет (Все метки)

Методом Гаусса. Приведением к диагональному виду. Разрядность 32 бита, при обращении элементов главной диагонали в ноль возвращается FALSE.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2014, 14:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Готовые библиотеки для решения систем уравнений (C++):

Библиотеки для решения (недоопределённых) систем линейных уравнений - C++
Знает кто-нибудь сабж?. Если система недоопределена, то нужно в некотором формате отдавать её общее решение, ну или ФСР. Слышал про...

Разработать функцию для решения систем линейных уравнений методом Зейделя - C++
Ребят, срочно, выручайте, задание на зачет... Прототип функции int slau(int n, double e, const double *a, const double *b, double *x); ...

Исправить код метод Ньютона для решения систем нелинейных уравнений под нужное условие - C++
Данный код для решения системы ax+tg(xy)=0; (y^2-b^2)+lnx=0 Перепишите его,пожалуйста для системы 2x-y-10=0 5x^2-20y^2-100=0 ...

Добавить функционал в готовую программу решения систем дифферинциальных уравнений - C++
Здравствуйте, мне нужно сделать программу, которая будет решать различные системы дифуров, заданные мною же. У меня есть, мною же...

Помогите найти программу решения систем алгебраических уравнений методом Зейделя - C++
Ребята, помогите найти программу решения систем алгебраических уравнений методом Зейделя. Код нужен на С++ или на С#. Переделывать с...

Программа для решения систем ОДУ неявный методом Эйлера - C++
Всем доброго времени суток! Очень нужна помощь:

26
Ilot
Эксперт С++
1826 / 1184 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
02.10.2014, 14:22 #2
Ну и в чем дело?
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
02.10.2014, 14:24  [ТС] #3
В том, что я хочу их предложить.
0
Ilot
Эксперт С++
1826 / 1184 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
02.10.2014, 14:30 #4
Вот я посмотрел архив и у меня возник вопрос: А вы вообще с основными принципами экспорта функций знакомы?
Было бы кстати неплохо показать хотя бы один пример работы с вашей библиотекой.
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
02.10.2014, 14:34  [ТС] #5
А что у меня не так с экспортом?
0
Ilot
Эксперт С++
1826 / 1184 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
02.10.2014, 14:35 #6
А вот вы попробуйте загрузить свою dll и сами узнаете.
0
0x10
2549 / 1729 / 264
Регистрация: 24.11.2012
Сообщений: 4,351
02.10.2014, 14:37 #7
Архивы, да еще и exe - мягко говоря, не самый лучший вариант распространения. Есть гитхаб, где можно и исходники выложить, и документацию представить.
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
02.10.2014, 14:56  [ТС] #8
Если бы я хотел выложить исходники, то запостил бы их сюда.

Добавлено через 13 минут
-------------- Clean: Debug in test (compiler: GNU GCC Compiler)---------------

Cleaned "test - Debug"

-------------- Build: Debug in test (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -g -c C:\Projects\test\test.cpp -o obj\Debug\test.o
C:\Projects\test\test.cpp: In function 'int main()':
C:\Projects\test\test.cpp:16:7: warning: variable 'f' set but not used [-Wunused-but-set-variable]
mingw32-g++.exe -o bin\Debug\test.exe obj\Debug\test.o -lGauss
c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.7.1/../../../../mingw32/bin/ld.exe: cannot find -lGauss
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 1 second(s))
1 error(s), 1 warning(s) (0 minute(s), 1 second(s))
Что не так и как бороться?
0
Ilot
Эксперт С++
1826 / 1184 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
02.10.2014, 15:01 #9
Боюсь, что все экстрасенсы в отпуске
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
02.10.2014, 15:42  [ТС] #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//=====================================================================================================================================================================================================
#include <windows.h>
//=====================================================================================================================================================================================================
#include "Gauss.hpp"
//=====================================================================================================================================================================================================
                              int WINAPI    DllMain(HINSTANCE   Instance,
                                                    DWORD       Reson   ,
                                                    PVOID       Reserved)
{
 return TRUE;
}
//=====================================================================================================================================================================================================
extern __declspec (dllexport) BOOL CALLBACK Gauss (double     **Matrix     ,  // Coefficients matrix. Must be the array of points to arrays, witch are matrix rows
                                                   double      *FreeMembers,  // The free members vector.
                                                   size_t       n          ,  // Unknowns number;
                                                   double      *Unknowns   )  // The unknowns vector. Must be exist before the call of this function.
{
 union
 {
 
...
Добавлено через 1 минуту
Файл Gauss.hpp:
C++
1
2
3
4
5
6
7
8
9
10
11
//=====================================================================================================================================================================================================
#ifndef GAUSS_HPP_INCLUDED
#define GAUSS_HPP_INCLUDED
//=====================================================================================================================================================================================================
extern __declspec (dllexport) BOOL CALLBACK Gauss (double     **Matrix     ,  // Coefficients matrix. Must be the array of points to arrays, witch are matrix rows.
                                                   double      *FreeMembers,  // The free members vector.
                                                   size_t       n          ,  // The unknowns number.
                                                   double      *Unknowns   ); // The unknowns vector. Must be exist before the call of this function.
//=====================================================================================================================================================================================================
#endif // GAUSS_HPP_INCLUDED
//=====================================================================================================================================================================================================
0
_Ivana
3230 / 1858 / 158
Регистрация: 01.03.2013
Сообщений: 5,087
Записей в блоге: 5
02.10.2014, 20:27 #11
Причины, почему например я не буду даже разбираться и тем более применять предложенные библиотеки:

1) Не доверяю автору. Который пишет про какие-то 32 бита (размер чего?) а в примерах у него все переменные double, который по моим представлениям должен занимать 8 байт. Который пишет
Цитата Сообщение от taras atavin Посмотреть сообщение
при обращении элементов главной диагонали в ноль
а я не знаю что такое ноль для double и как он будет поступать с матрицами, определитель которых близок к нулю. И т.п.
2) Не верю, что еще не написаны в изобилии подобные библиотеки для С/С++, которые проверены многими поколениями и гарантированно работают.
3) Могу написать подобное сам, с нужным мне балансом скорости/точности и понятным поведением и изменить в случае чего.
4) У меня есть Матлаб
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
02.10.2014, 20:48  [ТС] #12
Цитата Сообщение от _Ivana Посмотреть сообщение
Который пишет про какие-то 32 бита (размер чего?) а в примерах у него все переменные double, который по моим представлениям должен занимать 8 байт. Который пишет
Разрядность, а не размер. Поищите, чем отличается x86 от AMD64.

Добавлено через 2 минуты
Цитата Сообщение от _Ivana Посмотреть сообщение
Не верю, что еще не написаны в изобилии подобные библиотеки для С/С++, которые проверены многими поколениями и гарантированно работают.
Ну как когда они должны были быть написаны?

Добавлено через 3 минуты
Цитата Сообщение от _Ivana Посмотреть сообщение
4) У меня есть Матлаб
1 .Я как то пробовал в маткаде решать системы. Четыре уравнения он потянул, а пять уже нет. В матлабе также? Мои функции отлично справляются с сотнями.
2. А матрицу вручную заполнять? Библиотеку можно использовать в программе, генерящей матрицу по некоторому алгоритму. Например, можно использовать разностные схемы решения дифуров в частных производных.
0
_Ivana
3230 / 1858 / 158
Регистрация: 01.03.2013
Сообщений: 5,087
Записей в блоге: 5
02.10.2014, 20:49 #13
Цитата Сообщение от taras atavin Посмотреть сообщение
Разрядность, а не размер.
Намекаете, что ваша библиотека оптимизирована по скорости для работы на 32-разрядных платформах?
Цитата Сообщение от taras atavin Посмотреть сообщение
Ну как когда они должны были быть написаны?
Ни разу не сталкивался, но почему-то был уверен что подобных библиотек должно быть в изобилии. Неужели вы первый, кому это пришло в голову и кто это наконец-то реализовал на С++?

Добавлено через 51 секунду
Цитата Сообщение от taras atavin Посмотреть сообщение
Четыре уравнения он потянул, а пять уже нет. В матлабе также?
Вы так тонко шутите?
0
taras atavin
3888 / 1762 / 92
Регистрация: 24.11.2009
Сообщений: 27,565
02.10.2014, 20:52  [ТС] #14
Цитата Сообщение от _Ivana Посмотреть сообщение
Могу написать подобное сам, с нужным мне балансом скорости/точности и понятным поведением и изменить в случае чего.
Рад за Вас.

Добавлено через 2 минуты
Цитата Сообщение от _Ivana Посмотреть сообщение
Ни разу не сталкивался, но почему-то был уверен что подобных библиотек должно быть в изобилии. Неужели вы первый, кому это пришло в голову и кто это наконец-то реализовал на С++?
Конечно не первый. Быстро найдёте бесплатные?
0
_Ivana
3230 / 1858 / 158
Регистрация: 01.03.2013
Сообщений: 5,087
Записей в блоге: 5
02.10.2014, 21:11 #15
http://www.netlib.org/utk/people/JackDongarra/la-sw.html
http://arxiv.org/abs/1103.3020 - думаю, на первое время должно хватить.
0
02.10.2014, 21:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2014, 21:11
Привет! Вот еще темы с ответами:

Есть ли готовые библиотеки на С++ с алгоритмами кластеризации? - C++
Всем доброго времени суток. Не могли бы вы, мужики, подсказать, есть ли готовые библиотеки на С++ с алгоритмами кластеризации. Я слышал про...

Программа для решения уравнений - C++
Помогите написать програму для уравнений z1=1-1/4*sin^2*2(альфа)+cos2(альфа) z2=cos^2(альфа)+cos^4(альфа)

Программа для решения хим. уравнений - C++
Здравствуйте форумчане! Мне нужна ваша помощь!!! Я хочу сделать программу для решения ХИМИЧЕСКИХ УРАВНЕНИЙ. Как только я начал столкнулся с...

Написать программу для решения уравнений - C++
Не могу сделать прогу на С++. Кто сделает - огромное спасибо. Необходимо выбрать 3 уравнения и написать для них программу на С++. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru