![]() |
|
Модераторы: bsa |
![]()
|
|
| PandaRus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 27.12.2006 Репутация: нет Всего: нет |
Суть программы - решение большой СЛАУ. Первоначально использовал метод Гаусса, но при увеличении размерности СЛАУ (у меня она определяется матрицей G и B) в квадратичной зависимости рос размер памяти под переменные.
Т.к. матрица G сильно разреженная, начал использовать компактное хранение матрицы G и итерационный метод решения СЛАУ методом Гаусса-Зейделя. Реализацию данного метода взял из книжки, переведя с языка Фортран. Но вот он то и дает сбой (в коде он начинается с комментария "Решение СЛАУ итерационным методом"). В начале программы я задаю параметры моделирования: h, s и r. Размерность СЛАУ = n, где n=h*s*r. Если введу, например, h=5, s=5, r=5 - программа считает правильно, h=8, s=9, r=5 - программа выводит значения всех переменных, равным -1.#I0 h=10, s=9, r=9 - программа вылетает. То есть при превышении какого-то порога n происходит сбой.
|
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
Вообще-то численные методы решения уравнений сильно зависят от числа обусловленности матрицы системы ( cond ). А в его рассчете есть как раз размер...
+ Еще нужно, чтобы было диагональное преобладание Я сам на лабах обжигался в свое время. В общем, советую посмотеть теорию для начала (гуд - самарский ) Добавлено через 1 минуту и 1 секунду можешь еще поставить long double Скорее всего размерность считаемая увеличится, но тоже будет пороговое значение -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |