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

Решение системы уравнений с N>=10000 переменными - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск в очереди http://www.cyberforum.ru/cpp-beginners/thread1152381.html
Ребята, выручайте очень нужен пример кода поиска в очереди. Добавлено через 1 минуту Без использования стандартной библиотеки очереди
C++ Рандомное поле с роботом Задача смоделировать поведение робота на прямоугольном поле NxM (где N и M задается пользователем). Робот может перемещаться на свободные клетки в четыре стороны (вверх, вниз, вправо, влево) и... http://www.cyberforum.ru/cpp-beginners/thread1152358.html
Как правильно вставлять диррективу .386 в ассемблерной вставке C++
привет)подскажите пожалуйста как правильно вставлять диррективу .386 в ассемблерной вставке?вот я пытался таким образом но не выходит asm{ .386 ...... ...... }
Определить количество интересных элементов в массиве C++
задание Дан массив, элементами которого являются целые числа. Интересными называются те элементы массива, которые являются нечётными и расположены до минимального элемента. Если массив содержит...
C++ Оценочная функция для шашек http://www.cyberforum.ru/cpp-beginners/thread1152332.html
Подскажите пожалуйста, как организовать функцию оценки игры, которая будет возвращать цену игры для данной игровой ситуации. Расскажите конкретнее, что и как можно включить в эту оценку, помимо...
C++ Удалить из текста, находящегося в файле, каждое четное предложение Help подробнее

Показать сообщение отдельно
kiborgdelto
71 / 73 / 27
Регистрация: 23.03.2011
Сообщений: 141

Решение системы уравнений с N>=10000 переменными - C++

20.04.2014, 17:25. Просмотров 404. Ответов 4
Метки (Все метки)

Здравствуйте
есть такая проблема: необходимо решить систему линейных алгеброических уравнений, проблема состоит в том что число уравнений и переменных в этой системе от 10000, а т.к. решить нужно не менее 10 подобных систем (а вообще то желательно не менее 100), то для решения требуется довольно много времени
можно ли как то сократить время решения системы?
используется метод Гаусса-Жордана
вот код самого метода (матрица А это матрица коэфицентов с присоединёным к ней вектором правой части)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void gauss_jordan(double **A, int N, double *reshenie)
{
    
for(int q2=0;q2<N;q2++)
    {
int m=0;
double max=0,p;
    
    // делим строку на элемент стоящий на главной диагонали при условии что этот элемент не равен 1
    if(A[q2][q2]!=1)    for(int i=N;i>q2-1;i--)A[q2][i]=A[q2][i]/A[q2][q2];
 
// вычитаем строку с которой работаем из остальных строк( вычитаем с конца, для того чтобы не обнулять элементы под и над элементом стоящим на главной диагонали)
    for (int i=0;i<N;i++)
            if (i!=q2&&A[i][q2]!=0)for(int j=N;j>q2-1;j--)A[i][j]=A[i][j]-A[q2][j]*A[i][q2];
}
for (int i=0;i<N;i++) reshenie1[i][s1]=A[i][N];
}
матрица коэфицентов выглядит так (N=16)
[]http://pixs.ru/showimage/Bezimyanni_6833920_11776237.jpg[/]

большая часть матрицы нули, в каждой строке не больше 4-х коэфицентов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.