Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по курсу Компьютерное модел...doc
Скачиваний:
16
Добавлен:
21.09.2019
Размер:
475.65 Кб
Скачать

Лабораторные работы по курсу «Компьютерное моделирование» введение

Основными целями лабораторного практикума по курсу «Компьютерное моделирование» являются:

  • выработка и закрепление практических навыков в освоении методологии компьютерного математического моделирования;

  • практическая реализация межпредметных связей;

  • освоение элементов самостоятельной научно-исследовательской работы;

  • укрепление навыков программирования при реализации практически значимых задач;

  • освоение специальных приемов программирования, связанных с моделированием.

Требования к оформлению лабораторных работ.

Лабораторные работы оформляются в тетради в виде отчета, который должен содержать:

1. название работы, исполнитель, группа и т.д.;

2. постановку задачи и описание модели;

3. результаты

4. результаты, полученные в ходе выполнения задания (в различных формах);

5. качественный анализ результатов.

Лабораторная работа №1 Тема: Численное решение уравнений в частных производных

Рассмотрим смешанную задачу для уравнения теплопроводности, а именно, найти функцию , удовлетворяющую уравнению

(1)

начальному условию

, (2)

и краевым условиям

, . (3)

Задачу будем решать методом сеток (конечных разностей). В основе метода лежит идея замены производных конечно-разностными отношениями. Ограничимся случаем двух независимых переменных. Пусть в плоскости хОу имеется некоторая область с границей (рис. 1).

Рис 1

Построим на плоскости два семейства параллельных прямых:

, , i=0,1,2,…, k=0,1,2,…

Точки пересечения этих прямых назовем узлами. Два узла называются соседними, если они удалены друг от друга в направлении оси Ох или Оу на расстояние, равное шагу сетки h или l соответственно. Выделим узлы, принадлежащие области G, а также некоторые узлы, не принадлежащие этой области, но расположенные на расстоянии, меньшем чем шаг, от границы Г. Те узлы, у которых все четыре соседних узла принадлежат выделенному множеству узлов, называются внутренними (узел А, рис. 1). Оставшиеся из выделенных узлов называются граничными (узлы В, С). Обозначим

Значения искомой функции и=и(х,у) в узлах сетки будем обозначать через В каждом внутреннем узле заменим частные производные разностными отношениями:

В граничных точках воспользуемся формулами вида

, .

Аналогично заменяются частные производные второго порядка

Сделаем переход от уравнения вида к разностному уравнению

- =0.

После замены и преобразований получаем уравнение для вычисления внутренних узлов

(4)

При разностное уравнение (4) устойчиво. Наиболее простой вид уравнение имеет при В этом случае уравнение (2) запишется в виде

(5)

Пусть (x,t) – точное решение задачи (1)-(3), – отклонение точного значения от вычисленного по методу сеток. Тогда погрешность вычислений может быть вычислена по формуле

, (6)

где = , где

Задание 1

Используя метод сеток, найти приближенное решение уравнения (1)-(3), удовлетворяющее условиям , для , и h=0.1, l=0.005.

Решение должно быть оформлено в виде таблицы 1 подсчитанной вручную. Исходные данные заданы в таблице 2. Оценить погрешность вычислений по формуле (6).

Комментарий. Значения находим, подставляя значение хо в . Например, при равна 0. Значения и определяются краевыми условиями (в нашем случае нулевые). Далее значение, например, находим, используя формулу (5), т.е. и т.д.

Таблица 1.

j

0

0

1

0.005

2

0.010

3

0.015

4

0.020

5

0.025

6

0.03

Таблица 2

№ варианта

1

0.1

0.6

2

0

0.5

3

0.2

0.7

4

0

0.5

5

0.1

0.6

6

0.2

0.7

7

0

0.5

8

0.2

0.7

9

0

0.5

10

0.1

0.6

11

0

0.5

12

0.2

0.7

13

0.1

0.6

14

0

0.5

15

0.2

0.7

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. В чем суть метода сеток?

2. Какие точки называются узлами?

3. Что такое шаг сетки?

4. Какие узлы называются внутренними и какие граничными?

5. Как перейти от дифференциального уравнения к разностному (на примере уравнения теплопроводности)?

6. Какое уравнение используется для вычисление текущего слоя?

7. Как вычислить отклонение значений точного решения от приближенного по методу сеток?

Решение уравнения теплопроводности в Maple

> restart;

> eq:=diff(u(x,t),t)=2*diff(u(x,t),x,x);

> sol:=pdsolve(eq,HINT=X(x)*T(t),build);

> i:={_c[1]=3,_C1=-1/2,_C2=1,_C3=-1/2}:

> R:=simplify(eval(rhs(sol),i));

Лабораторный практикум по пакету MatLab

Практикум имеет следующую структуру:

  • лабораторные работы по разделам курса, включающие последовательное описание их выполнения;

  • варианты, предлагаемые студентам для самостоятельного выполнения.

ЛАБОРАТОРНАЯ РАБОТА № 2

МАТЕМАТИЧЕСКАЯ СИСТЕМА MATLAB

ЦЕЛЬ РАБОТЫ

Сформировать у студентов знания, умения и навыки работы с математическим пакетом MATLAB.

Окна системы MATLAB

MATLAB (MATrix LABoratory) – интерактивный матрично-ориентированный пакет, предназначенный для выполнения научных и инженерных расчетов.

По умолчанию после запуска пакета MATLAB на экране появляется комбинированное окно, включающее четыре наиболее важные панели:

Command Window (Окно команд) – самая используемая панель. В ней набирают команды пользователя, подлежащие немедленному исполнению. Здесь же выдаются результаты выполненных команд.

  • Command History (История команд) хранит все команды, набираемые пользователем, однако в отличие от содержимого Command Window (Окно команд) сюда не попадают сообщения системы и результаты вычислений.

  • Workspace (Рабочее пространство) отображает текущий набор переменных, заведенных пользователем в командном окне.

  • Current Directory (Текущий каталог) является аналогом известной программы Проводник, но имеет для MATLAB свое особое предназначение. Дело в том, что, кроме работы с математическими выражениями из командного окна, пользователь также может работать с файлами.

Функцию пользователя можно создать следующим образом:

  1. Вызов окна редактора m-файлов путем нажатия кнопки New M-File (Создать m-файл).

  2. Ввод строки

function z=expxp(x)

Ключевое слово function объявляет новую функцию, имя которой expxp, а ее параметр – х. Символ Z определяет значение функции при аргументе x.

  1. Задание новой функции (функции пользователя). Пусть

z=exp(x)/x

  1. Сохранение функции пользователя на диске. Для этого достаточно щелкнуть мышью по кнопке Save (Сохранить).

  2. Закрытие окна редактора m-файлов.

Функция пользователя z=exp(x)/x создана.

Для вычисления функции при данном аргументе х достаточно набрать имя функции и значение аргумента в круглых скобках: z=expxp(1). На экране получим значение функции z = 2.7183.

Визуализация вычислений

Основными функциями двухмерной графики являются:

plot(x, y)

plot(x, y, s)

plot(x1, y1, s1, x2, y2, s2, …, xn, yn, sn)

где:

  • х – аргумент функции, задаваемой в виде вектора;

  • у – функция, представленная в аналитическом виде или в виде вектора или матрицы;

  • s – вектор стилей графика; константа, определяющая цвет линий графика, тип точек и тип линий;

  • х1, х2, …, хn – аргументы n функций, изображаемых на одном графике;

  • у1, у2, …, уn – функции, изображаемые на одном графике.

В таблице 1.1 приведены стили графиков системы MATLAB.

Таблица 1.1. Стили графиков

Тип точки

Цвет линии

Тип линии

.

Точка

Y

Желтый

-

Сплошная

О

Окружность

M

Фиолетовый

:

Двойной пунктир

Крест

C

Голубой

-.

Штрих-пунктир

+

Плюс

R

Красный

--

Штриховая

*

Восьмиконечная снежинка

G

Зеленый

S

Квадрат

B

Синий

D

Ромб

W

Белый

V, ^, <, >

Треугольник вверх, вниз, влево, вправо

K

Черный

P

Пятиконечная звезда

H

Шестиконечная звезда

Рассмотрим пример построения графика функции у=sin xe-x.

В окне Command Window задается программа:

>> x=-5:0.5:5; % задание промежутка [-5;5] с шагом 0,5

>> plot(x,expxp(x),['R','*','-.']) % выведение графика функции expxp(x) красного цвета (R), точки графика в виде снежинок (*), линии штрихпунктирные (-.)

>> grid on % задание сетки

Для блокировки вывода результата вычисления некоторого выражения в командное окно после него надо установить знак ;

График функции приведен на рис. 1.3.

Рис.1.3. График функции у=sin xe-x.

ЗАДАНИЕ

Создать функцию пользователя y=f(x), вычислить ее значение в точке х0 и простроить график.

Варианты заданий.

№ варианта

Функция

х0

1

5,5

2

2,75

3

3,1

4

4,21

5

6,32

6

4,75

7

2,35

8

8,29

9

4,56

10

1,23

11

7,55

12

3,64

со списком элементарных функций можно ознакомиться, набрав команду

>> help elfun

со списком операторов -

>> help ops

Чтобы очистить командное окно, необходимо из меню Edit задать команду Clear Command Window

Чтобы очистить историю команд, необходимо из меню Edit задать команду Clear Command History

Целая часть числа от дробной отделяется точкой.