4201 / 1793 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
1

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

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

Методом Гаусса. Приведением к диагональному виду. Разрядность 32 бита, при обращении элементов главной диагонали в ноль возвращается FALSE.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2014, 14:08
Ответы с готовыми решениями:

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

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

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

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

26
Эксперт по математике/физикеЭксперт С++
1989 / 1319 / 379
Регистрация: 16.05.2013
Сообщений: 3,423
Записей в блоге: 6
02.10.2014, 14:22 2
Ну и в чем дело?
0
4201 / 1793 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
02.10.2014, 14:24  [ТС] 3
В том, что я хочу их предложить.
0
Эксперт по математике/физикеЭксперт С++
1989 / 1319 / 379
Регистрация: 16.05.2013
Сообщений: 3,423
Записей в блоге: 6
02.10.2014, 14:30 4
Вот я посмотрел архив и у меня возник вопрос: А вы вообще с основными принципами экспорта функций знакомы?
Было бы кстати неплохо показать хотя бы один пример работы с вашей библиотекой.
0
4201 / 1793 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
02.10.2014, 14:34  [ТС] 5
А что у меня не так с экспортом?
0
Эксперт по математике/физикеЭксперт С++
1989 / 1319 / 379
Регистрация: 16.05.2013
Сообщений: 3,423
Записей в блоге: 6
02.10.2014, 14:35 6
А вот вы попробуйте загрузить свою dll и сами узнаете.
0
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
02.10.2014, 14:37 7
Архивы, да еще и exe - мягко говоря, не самый лучший вариант распространения. Есть гитхаб, где можно и исходники выложить, и документацию представить.
0
4201 / 1793 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
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
Эксперт по математике/физикеЭксперт С++
1989 / 1319 / 379
Регистрация: 16.05.2013
Сообщений: 3,423
Записей в блоге: 6
02.10.2014, 15:01 9
Боюсь, что все экстрасенсы в отпуске
0
4201 / 1793 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
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
4814 / 2274 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
02.10.2014, 20:27 11
Причины, почему например я не буду даже разбираться и тем более применять предложенные библиотеки:

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

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

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

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

Добавлено через 2 минуты
Цитата Сообщение от _Ivana Посмотреть сообщение
Ни разу не сталкивался, но почему-то был уверен что подобных библиотек должно быть в изобилии. Неужели вы первый, кому это пришло в голову и кто это наконец-то реализовал на С++?
Конечно не первый. Быстро найдёте бесплатные?
0
4814 / 2274 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
02.10.2014, 21:11 15
http://www.netlib.org/utk/peop... la-sw.html
http://arxiv.org/abs/1103.3020 - думаю, на первое время должно хватить.
0
4201 / 1793 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
02.10.2014, 21:17  [ТС] 16
Цитата Сообщение от _Ivana Посмотреть сообщение
http://www.netlib.org/utk/people/Jac...rra/la-sw.html
Какой то список чёрт знает чего. Скачал на пробу армадилу и не нашёл в ней вообще ни одного библиотечного файла. Ни lib, ни dll.
0
4814 / 2274 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
02.10.2014, 21:19 17
Действительно ерунда какая-то. Еще хуже Матлаба, тот хоть 4 уравнения решает.
0
920 / 637 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
03.10.2014, 00:08 18
Цитата Сообщение от _Ivana Посмотреть сообщение
и кто это наконец-то реализовал на С++?
Подобных библиотек, действительно, достаточно, и не просто бесплатных, но и свободно распространяемых. Из присутствующих в моем дистрибутиве, т.е. для которых установка и подготовка к работе делается в одну команду или в один клик: blas, lapack, atlas. Но подобных библиотек, реализованных на плюсах, я, честно говоря, не встречал. Везде Фортран и Си, хотя использование в программе на плюсах не является проблемой.
Библиотека от taras atavin, , возможно, тоже кому-нибудь пригодится, учитывая популярность этого форума среди студентов.
Цитата Сообщение от taras atavin
Какой то список чёрт знает чего. Скачал на пробу армадилу и не нашёл в ней вообще ни одного библиотечного файла. Ни lib, ни dll.
Неужели уважаемые авторы библиотек будут подстраивать их под 32-разрядную венду. Эти библиотеки используются на разных платформах и поставляютя, обычно, в исходниках.
0
68 / 56 / 14
Регистрация: 20.12.2013
Сообщений: 551
03.10.2014, 01:31 19
Свои функции для решения слау стоит реализовывать, на мой взгляд, только если:
1. Формат хранения нестандартный - для разреженных матриц особенно актуально.
2. Метод решения не Гаусс, поскольку он не быстрый, а если скорость не важна, то можно решать чем угодно.

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

Добавлено через 3 минуты
p.s. Ну, не для решения слау, для матричных операций, конечно. В частности, для решения слау.
0
Эксперт по математике/физикеЭксперт С++
1989 / 1319 / 379
Регистрация: 16.05.2013
Сообщений: 3,423
Записей в блоге: 6
03.10.2014, 07:50 20
Цитата Сообщение от gng Посмотреть сообщение
Библиотека от taras atavin, , возможно, тоже кому-нибудь пригодится, учитывая популярность этого форума среди студентов.
Нет не пригодиться, так как автор даже не удосужился открыть файл определений, а там его ждут такие сюрпризы...
Библиотека не рабочая.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2014, 07:50
Помогаю со студенческими работами здесь

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

Метод Ньютона для решения систем нелинейных уравнений
Необходимо перевести из паскаля на си шарп! Пожалуйста! const n=2; eps=1e-4; type Tmatr=array...

Метод итераций для решения систем линейных уравнений
Задания I. Напишите программу решения системы линейных уравнений методом итераций с наперед...

Метод Ньютона для решения систем нелинейных уравнений.
Существуют ли алгоритмы, методы выбора начального приближения для метода Ньютона? Задача такая:...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru