Пакет программ, библиотек и документации для выполнения

advertisement
Пакет программ, библиотек и документации для выполнения
лабораторной работы № 2
Каждый студент получает следующий пакет материалов, необходимых для выполнения лабораторной работы, который включает в себя:
1. теоретические материалы – статьи А.С. Холодова «О построении схем с положительной аппроксимацией для уравнений параболического типа» и М.О. Васильева
«Схемы для нелинейного уравнения теплопроводности», книга К.М. Магомедова, А.С.
Холодова «Сеточно-разностные характеристические методы», пособие «MATLAB.
Язык технических вычислений» (все можно скачать со страницы кафедры
http://crec.mipt.ru/study/materials/nvp/guides/);
2. задание к работе (файл Laba_2_task.pdf), описание пакета программ для выполнения работы (Laba_2_manual.pdf), краткую теорию к работе (файл
Laba_2_theory.pdf) и файл с примером выполнения работы Laba_2_example.pdf (все
можно скачать со страницы кафедры http://crec.mipt.ru/study/materials/nvp/labs/2/);
3. с той же страницы можно скачать архив, содержащий 2 папки, содержащие
файлы, относящиеся к линейному и нелинейному случаю соответственно (некоторые есть
там и там):
3.1. файл laba_2.m, в котором проводятся предварительные вычисления, вызовы функций интерфейса и расчетной функции, а также визуализация полученных результатов (линейный случай);
3.2. файл get_ex_sol.m, в котором содержится функция расчета точного аналитического решения для предлагаемых задач (линейный случай);
3.3. файл solver.m, который содержит функцию расчета задачи (собственно
реализацию разностной схемы) для линейного случая;
3.4. файл laba_2n.m, в котором проводятся предварительные вычисления, вызовы функций интерфейса и расчетной функции, а также визуализация полученных результатов для нелинейного случая;
3.5. библиотеку calc2nlin.mexw32, содержащая расчетную функцию для нелинейного случая;
3.6. файл get_ex_sol_nlin.m, в котором содержится функция расчета точного
аналитического решения для предлагаемых задач (нелинейный случай);
3.7. файл Pat0.dat, содержащий описание шаблона;
3.8. файлы But1Click.m, choise1.m, List0Sel.m, List1Sel.m, которые содержат
функции, управляющие интерфейсом программы. Сhoise1.m создает интерфейс, остальные содержат функции, связанные с различными элементами интерфейса:
List0Sel.m: описание действий, совершаемых при изменении выделенной строки в списке с порядками аппроксимации схемы.
List1Sel.m: описание действий, совершаемых при изменении выделенной строки в списке выбора первого базисного коэффициента (при этом список
для второго коэффициента, если он есть, меняется так, чтобы нельзя было выбрать одинаковые базисные коэффициенты).
But1Click.m: здесь содержатся основные вычисления, то есть они исполняются при нажатии кнопки ОК. Здесь строится и решается соответствующая система уравнений и происходит подстановка заданных пользователем
значений базисных коэффициентов.
Выполнение лабораторной работы № 2
1. Все предварительные процедуры по запуску и подготовке к работе системы
Matlab совпадают с описанием в аналогичном файле к лабораторной работе № 1. Рассмотрение проводится на примере базового шаблона, изображенного на Рис. 1 в файле
1
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
Laba_1_task.pdf с заданием. Matlab-код для нахождения коэффициентов некоторых «характерных» схем на базовом шаблоне содержится в файле coeff_parab.m. Однако выбор
схемы производится пользователем путем непосредственного задания коэффициентов через имеющийся интерфейс.
2. Прежде всего, необходимо задать значения полей массива config. Это делается
в начале файла laba_2.m или laba_2n.m. Он определяет параметры расчетной сетки, число
Куранта (для нелинейного случая это значение используется для вычисления шага по времени), коэффициент теплопроводности, число шагов по времени, количество записей, и
для нелинейного случая – номер решаемой задачи (конкретные начальные и граничные
условия) и параметр скорости для некоторых задач.
3. Далее, при запуске прогрммы вы увидите интерфейс для задания
коэффициентов схемы. Предварительно определитесь, какой точке будет соответствовать
каждый из коэффициентов a1–4. Поскольку для параболического уравнения шаблон предполагается симметричным, рассматривается только одна половина шаблона
(правая), и рассмотрение производится в терминах
коэффициентов   (см. Laba_2_theory.pdf). Все
вышесказанное проиллюстрировано на Рис. 1.
4. Заполнив соответствующие поля интерфейса и
нажав клавишу ОК, вы запустите процедуру вычисления
коэффициентов схемы. Будет построена соответствующая выбранному порядку аппроксимации система уравнений, затем решена относительно выбранных базисных
коэффициентов (в качестве них взяты коэффициенты,
чьи значения заданы пользователем). Введенные значения этих коэффициентов будут подставлены в решение. Затем по построенной разностной схеме будет произведен расчет.
Теперь можно приступать к выполнению пунктов задания.
Все вычисления, связанные с линейной частью задания, производятся в файле laba_2.m, с
нелинейной частью – в файле laba_2n.m.
5.
Процесс выполнения пунктов задания 2.1 – 2.9 аналогичен таковому в лабораторной работе № 1. Эта часть кода содержится в файле coeff_parab.m. Для выполнения
этой части задания раскомментируйте строку с вызовом функции coeff_parab в файле
laba_2.m. Перед каждым куском программы, решающим один из пунктов, стоит соответствующий комментарий. Для отладки одного из пунктов можно закомментировать остальную часть Вашего файла, чтобы трансляция кода происходила без ошибок (после выделения куска кода с помощью мыши щелкнуть правой кнопкой и выбрать Comment, для
удаления группы комментариев - Uncomment). При вычислении некоторых пунктов задания на некоторых шаблонах может возвращаться ошибка. Скорее всего, она связана с вырожденностью соответствующей системы уравнений или с возвращением бесконечного
значения переменной. Пропустите этот пункт (закомментируйте соответствующую часть
кода). После выполнения этой части задания рекомендуется снова закомментировать
строку с вызовом функции coeff_parab.
6.
Для выполнения пунктов 3.1 – 3.5 необходимо вручную вычислить соответствующие коэффициенты и задать соответствующую схему через доступный интерфейс,
который появится после проведения расчетов из пункта 2, если строка с вызовом функции
coeff_parab не закомментирована. Здесь нет возможности, как в лабораторной работе № 1
выбрать комбинацию из нескольких схем. Для задания вашей расчетной схемы следует
выбрать порядок аппроксимации. Затем задать значения для коэффициентов-параметров,
если они есть.
Рис. 1. Обозначения для базового
шаблона.
2
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
После заполнения всех полей нажмите кнопку ОК. Произойдет вычисление остальных коэффициентов схемы. Непосредственно при проведении расчетов используется
функция, описанная в файле solver.m, который должна находиться в той же директории,
что и основной Matlab-файл.
7.
Нелинейные задачи вычисляются аналогично, за исключением того, что для
выбора конкретной задачи необходимо менять соответствующее (первое) поле вектора
config в самой программе. Кроме того, в связи с вынужденным комбинированием Matlab
и
C программа работает не вполне стабильно. Возможно возвращение ошибки
Segmentation Violation. В этом случае перезапустите Matlab и продолжайте работу с того
этапа, на котором произошел сбой. Для некоторых шаблонов может быть несовместна
система уравнений для нахождения коэффициентов схемы в символьном представлении.
В этом случае Matlab возвращает ошибку о невозможности выполнить обращение к ним,
а перед ошибкой выводится значение S_m = [ empty sym ]. В этом случае данная схема не
может быть реализована на данном шаблоне. Прервите выполнение программы нажатием
Ctrl+C. Пропустите схему и исследуйте остальные.
8.
Итогом выполнения лабораторной работы должен быть отчет, выполненный
в виде отдельного документа, содержащий результаты по каждому из пунктов задания.
9.
Задавать вопросы по поводу особенностей выполнения лабораторной работы, а также сообщать о найденных неточностях и ошибках Вы можете на форуме
http://crec.mipt.ru/NVP_Forum/Laba_2.html.
3
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
Download