powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Консольное приложение медленно считает. Почему?
5 сообщений из 55, страница 3 из 3
Консольное приложение медленно считает. Почему?
    #38114978
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, я всё веселье пропустил, но
вот это

if( m[]!=0

ЖЕСТЬ! Заменил бы хотя бы на m[] < epsilon что-ли (при работе с числами с плавающей точкой нужно помнить о машинной точности представления числа)
...
Рейтинг: 0 / 0
Консольное приложение медленно считает. Почему?
    #38114980
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сравнивать, разумеется, модуль
...
Рейтинг: 0 / 0
Консольное приложение медленно считает. Почему?
    #38115012
SS19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
была когда-то подобная задача - динамика правда,не статика - надо было решить систему с 900 неизвестными около 200000 раз. Матрица была довольно разряженная - 3% заполнения. Оценочное время выполнения используя массив и метод Гауса получилось 270 суток. Поэтому вместо массива использовал ссылочную структуру - каждый элемент имел 5 ссылок - по 4 направлениям и на свободный член. В этой реализации время расчета составило 9 часов.
...
Рейтинг: 0 / 0
Консольное приложение медленно считает. Почему?
    #38115076
SS19,

скиньте синтаксис построения и использования ссылочной структуры, C# язык знаю крайне поверхностно
...
Рейтинг: 0 / 0
Консольное приложение медленно считает. Почему?
    #38115218
SS19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы используете двумерный массив и для навигации по нему используете "координаты" элемента [i,j] - в ссылочной структуре используются ссылки на элементы: объявляете класс "Элемент_матрицы", в котором, кроме значения элемента, координат и ... т.д, будет еще 4 ссылки: object p_up, p_down, p_left, p_right.
При "заполнении" матрицы создаете только ненулевые элементы и связываете их (получаете связный список) . При обходе матрицы при решении методом Гауса используя навигацию по ссылкам Вы не будете обрабатывать нулевые элементы - в этом и состоит ускорение в расчете
Тут есть одна "пакость" - у меня была динамика (т.е. данная матрица рассчитывалась очень много раз - струкрура не менялась, менялись значения элементов) - поэтому я один раз решал определял дополнительные ненулевые элементы, которые вознакают во время решения методом Гауса - и использовал эту "расширенную" матрицу при расчетах.
Если Вы считаете МКЭ - то, скорее всего, Вы делаете несколько (десятков, сотен) расчетов, для того, чтобы определить критичные точки и нагрузки для какой-то конструкции - если это так: сохраните структуру "расширенной" матрицы (на диск,в БД) и используйте ее как шаблон

Я это делал в далеком 95 году - писал на паскале
...
Рейтинг: 0 / 0
5 сообщений из 55, страница 3 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Консольное приложение медленно считает. Почему?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]