|
Консольное приложение медленно считает. Почему?
|
|||
---|---|---|---|
#18+
Похоже, я всё веселье пропустил, но вот это if( m[]!=0 ЖЕСТЬ! Заменил бы хотя бы на m[] < epsilon что-ли (при работе с числами с плавающей точкой нужно помнить о машинной точности представления числа) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2013, 11:12 |
|
Консольное приложение медленно считает. Почему?
|
|||
---|---|---|---|
#18+
сравнивать, разумеется, модуль ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2013, 11:14 |
|
Консольное приложение медленно считает. Почему?
|
|||
---|---|---|---|
#18+
была когда-то подобная задача - динамика правда,не статика - надо было решить систему с 900 неизвестными около 200000 раз. Матрица была довольно разряженная - 3% заполнения. Оценочное время выполнения используя массив и метод Гауса получилось 270 суток. Поэтому вместо массива использовал ссылочную структуру - каждый элемент имел 5 ссылок - по 4 направлениям и на свободный член. В этой реализации время расчета составило 9 часов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2013, 11:34 |
|
Консольное приложение медленно считает. Почему?
|
|||
---|---|---|---|
#18+
SS19, скиньте синтаксис построения и использования ссылочной структуры, C# язык знаю крайне поверхностно ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2013, 12:01 |
|
Консольное приложение медленно считает. Почему?
|
|||
---|---|---|---|
#18+
Вы используете двумерный массив и для навигации по нему используете "координаты" элемента [i,j] - в ссылочной структуре используются ссылки на элементы: объявляете класс "Элемент_матрицы", в котором, кроме значения элемента, координат и ... т.д, будет еще 4 ссылки: object p_up, p_down, p_left, p_right. При "заполнении" матрицы создаете только ненулевые элементы и связываете их (получаете связный список) . При обходе матрицы при решении методом Гауса используя навигацию по ссылкам Вы не будете обрабатывать нулевые элементы - в этом и состоит ускорение в расчете Тут есть одна "пакость" - у меня была динамика (т.е. данная матрица рассчитывалась очень много раз - струкрура не менялась, менялись значения элементов) - поэтому я один раз решал определял дополнительные ненулевые элементы, которые вознакают во время решения методом Гауса - и использовал эту "расширенную" матрицу при расчетах. Если Вы считаете МКЭ - то, скорее всего, Вы делаете несколько (десятков, сотен) расчетов, для того, чтобы определить критичные точки и нагрузки для какой-то конструкции - если это так: сохраните структуру "расширенной" матрицы (на диск,в БД) и используйте ее как шаблон Я это делал в далеком 95 году - писал на паскале ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2013, 13:07 |
|
|
start [/forum/topic.php?fid=20&msg=38115012&tid=1405335]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 171ms |
0 / 0 |