IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Расчет поля температур С++.
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


В общем,я как всегда радую всех,новыми веселыми задачами.Сегодня на повеске дня следующая.
Рассчитать стационарное поле температур в пластине заданной формы. Предусмотреть возможность задания произвольных граничных условий (первого рода) и произвольной правой части (в коде программы).
ПОРЯДОК РЕШЕНИЯ ЗАДАЧИ:
1. Составить разностную схему “крест” для уравнения Пуассона в области заданной формы.
2. Проанализировать структуру получившейся системы линейных алгебраических уравнений и составить алгоритм расчета температурного поля.
3. Выписать расчетные формулы метода Зейделя и выбрать начальное приближение на основе задания граничного условия.
4. В качестве критерия окончания использовать условие . Предусмотреть подсчет числа итераций, потребовавшихся для достижения точности .
5. Решить задачу методом Зейделя.
6. Решить задачу методом релаксации. Параметр релаксации подобрать экспериментально.

Все фигуры составлены из квадратов с единичной стороной (т.о. вся фигура вписывается в квадрат 3х3). Начало координат выбирается в любом удобном для заданной фигуры месте.

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

К написанию кода я еще не приступил,нужна помощ в выборе реализации,а именно:
1)Как лучше реализовать хранение данных?одним массивом или как 7 массивов,которые с последствии будут склеиваться,чтоб выполнить пункт 1 задания,в общем,на данный момент я не совсем понимаю как лучше реализовать хранение данных,чтобы ими было удобно в последствии оперировать.

Буду рад любым идеям.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Собственно пришлось вернуться к этой задаче.Нужна помощ в оптимизации,потому что при N=25 (76х76 матрица) время выполнения порядка 20 секунд,а если учесть что оно должно считаться для N=100,я даже боюсь запускать.Файл с кодом прилагается,скажу только то, что все те функции что отдельно описаны для каждой граници и само f должны задаваться отдельно внутри программы.Собственно
Цитата
Предусмотреть возможность задания произвольных граничных условий (первого рода) и произвольной правой части (в коде программы).


Сообщение отредактировано: Krjuger -


Прикрепленные файлы
Прикрепленный файл  ChMet_Laba_4.cpp ( 4.51 килобайт ) Кол-во скачиваний: 425
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.05.2024 5:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name