Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
#1

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

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

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

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

Разработать функцию для решения систем линейных уравнений методом Зейделя
Ребят, срочно, выручайте, задание на зачет... Прототип функции int slau(int n,...

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

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

Помогите найти программу решения систем алгебраических уравнений методом Зейделя
Ребята, помогите найти программу решения систем алгебраических уравнений...

26
Ilot
Эксперт С++
1830 / 1188 / 342
Регистрация: 16.05.2013
Сообщений: 3,139
Записей в блоге: 5
Завершенные тесты: 1
02.10.2014, 14:22 #2
Ну и в чем дело?
0
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
02.10.2014, 14:24  [ТС] #3
В том, что я хочу их предложить.
0
Ilot
Эксперт С++
1830 / 1188 / 342
Регистрация: 16.05.2013
Сообщений: 3,139
Записей в блоге: 5
Завершенные тесты: 1
02.10.2014, 14:30 #4
Вот я посмотрел архив и у меня возник вопрос: А вы вообще с основными принципами экспорта функций знакомы?
Было бы кстати неплохо показать хотя бы один пример работы с вашей библиотекой.
0
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
02.10.2014, 14:34  [ТС] #5
А что у меня не так с экспортом?
0
Ilot
Эксперт С++
1830 / 1188 / 342
Регистрация: 16.05.2013
Сообщений: 3,139
Записей в блоге: 5
Завершенные тесты: 1
02.10.2014, 14:35 #6
А вот вы попробуйте загрузить свою dll и сами узнаете.
0
0x10
2571 / 1751 / 288
Регистрация: 24.11.2012
Сообщений: 4,377
02.10.2014, 14:37 #7
Архивы, да еще и exe - мягко говоря, не самый лучший вариант распространения. Есть гитхаб, где можно и исходники выложить, и документацию представить.
0
taras atavin
4204 / 1765 / 211
Регистрация: 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
Эксперт С++
1830 / 1188 / 342
Регистрация: 16.05.2013
Сообщений: 3,139
Записей в блоге: 5
Завершенные тесты: 1
02.10.2014, 15:01 #9
Боюсь, что все экстрасенсы в отпуске
0
taras atavin
4204 / 1765 / 211
Регистрация: 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
3233 / 1861 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
02.10.2014, 20:27 #11
Причины, почему например я не буду даже разбираться и тем более применять предложенные библиотеки:

1) Не доверяю автору. Который пишет про какие-то 32 бита (размер чего?) а в примерах у него все переменные double, который по моим представлениям должен занимать 8 байт. Который пишет
Цитата Сообщение от taras atavin Посмотреть сообщение
при обращении элементов главной диагонали в ноль
а я не знаю что такое ноль для double и как он будет поступать с матрицами, определитель которых близок к нулю. И т.п.
2) Не верю, что еще не написаны в изобилии подобные библиотеки для С/С++, которые проверены многими поколениями и гарантированно работают.
3) Могу написать подобное сам, с нужным мне балансом скорости/точности и понятным поведением и изменить в случае чего.
4) У меня есть Матлаб
0
taras atavin
4204 / 1765 / 211
Регистрация: 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
3233 / 1861 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
02.10.2014, 20:49 #13
Цитата Сообщение от taras atavin Посмотреть сообщение
Разрядность, а не размер.
Намекаете, что ваша библиотека оптимизирована по скорости для работы на 32-разрядных платформах?
Цитата Сообщение от taras atavin Посмотреть сообщение
Ну как когда они должны были быть написаны?
Ни разу не сталкивался, но почему-то был уверен что подобных библиотек должно быть в изобилии. Неужели вы первый, кому это пришло в голову и кто это наконец-то реализовал на С++?

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

Добавлено через 2 минуты
Цитата Сообщение от _Ivana Посмотреть сообщение
Ни разу не сталкивался, но почему-то был уверен что подобных библиотек должно быть в изобилии. Неужели вы первый, кому это пришло в голову и кто это наконец-то реализовал на С++?
Конечно не первый. Быстро найдёте бесплатные?
0
_Ivana
3233 / 1861 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
02.10.2014, 21:11 #15
http://www.netlib.org/utk/people/JackDongarra/la-sw.html
http://arxiv.org/abs/1103.3020 - думаю, на первое время должно хватить.
0
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
02.10.2014, 21:17  [ТС] #16
Цитата Сообщение от _Ivana Посмотреть сообщение
http://www.netlib.org/utk/people/Jac...rra/la-sw.html
Какой то список чёрт знает чего. Скачал на пробу армадилу и не нашёл в ней вообще ни одного библиотечного файла. Ни lib, ни dll.
0
_Ivana
3233 / 1861 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
02.10.2014, 21:19 #17
Действительно ерунда какая-то. Еще хуже Матлаба, тот хоть 4 уравнения решает.
0
gng
807 / 552 / 167
Регистрация: 08.09.2013
Сообщений: 1,495
03.10.2014, 00:08 #18
Цитата Сообщение от _Ivana Посмотреть сообщение
и кто это наконец-то реализовал на С++?
Подобных библиотек, действительно, достаточно, и не просто бесплатных, но и свободно распространяемых. Из присутствующих в моем дистрибутиве, т.е. для которых установка и подготовка к работе делается в одну команду или в один клик: blas, lapack, atlas. Но подобных библиотек, реализованных на плюсах, я, честно говоря, не встречал. Везде Фортран и Си, хотя использование в программе на плюсах не является проблемой.
Библиотека от taras atavin, , возможно, тоже кому-нибудь пригодится, учитывая популярность этого форума среди студентов.
Цитата Сообщение от taras atavin
Какой то список чёрт знает чего. Скачал на пробу армадилу и не нашёл в ней вообще ни одного библиотечного файла. Ни lib, ни dll.
Неужели уважаемые авторы библиотек будут подстраивать их под 32-разрядную венду. Эти библиотеки используются на разных платформах и поставляютя, обычно, в исходниках.
0
AndrSlav
65 / 53 / 14
Регистрация: 20.12.2013
Сообщений: 429
03.10.2014, 01:31 #19
Свои функции для решения слау стоит реализовывать, на мой взгляд, только если:
1. Формат хранения нестандартный - для разреженных матриц особенно актуально.
2. Метод решения не Гаусс, поскольку он не быстрый, а если скорость не важна, то можно решать чем угодно.

И да, MatLab - Matrix Laboratory - как раз создан для решения слау, люди уравнения газодинамики на нем решают в т.ч.

Добавлено через 3 минуты
p.s. Ну, не для решения слау, для матричных операций, конечно. В частности, для решения слау.
0
Ilot
Эксперт С++
1830 / 1188 / 342
Регистрация: 16.05.2013
Сообщений: 3,139
Записей в блоге: 5
Завершенные тесты: 1
03.10.2014, 07:50 #20
Цитата Сообщение от gng Посмотреть сообщение
Библиотека от taras atavin, , возможно, тоже кому-нибудь пригодится, учитывая популярность этого форума среди студентов.
Нет не пригодиться, так как автор даже не удосужился открыть файл определений, а там его ждут такие сюрпризы...
Библиотека не рабочая.
0
03.10.2014, 07:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2014, 07:50

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

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

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


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

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

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