Основные этапы математического и инфологического моделирования

1. Постановка задачи.

1.1. Формулировка.

1.2. Определение цели моделирования и их приоритетов.

1.3. Сбор информации о системе, объекте моделирования.

1.4. Описание данных (их структуры, диапазон источника и т. д.).

2. Предмодельный анализ.

2.1. Анализ существующих аналогов и подсистем.

2.2. Анализ технических средств моделирования (ЭВМ и др.).

2.3. Анализ программного обеспечения (языки программирования, инструментальные среды, пакеты программ)

2.4. Анализ математического обеспечения (модели, методы, алгоритмы).

3. Анализ задачи (модели).

3.1. Разработка структур данных.

3.2. Разработка входных и выходных спецификаций, форм и представлений данных.

3.3. Проектирование структуры и состава модели (подмодели).

4. Исследование модели.

4.1. Выбор методов исследования подмодели.

4.2. Выбор, адаптация или разработка алгоритма.

4.3. Сборка модели в целом из подмоделей.

4.4. Идентификация модели если в этом есть необходимость.

4.5. Формулировка используемых критериев адекватности моделируемой системы устойчивости и чувствительности.

5. Программирование (проектирование программы).

5.1. Выбор метода тестирования и теста (контрольные примеры).

5.2. Кодирование на языке программирования.

5.3 Комментирование программы.

6. Тестирование и отладка.

6.1. Синтаксическая отладка.

6.2. Семантическая отладка (отладка логической структуры).

6.3 Тестовые расчёты, анализ результатов тестирования.

6.4. Оптимизация программы.

7. Оценка моделирования.

7.1. Оценка средств моделирования.

7.2. Оценка адекватности моделируемой системы.

7.3. Оценка чувствительности модели.

7.4. оценка устойчивости модели.

8. Документирование.

8.1. Описание задач и цели.

8.2. Описание метода, алгоритма.

8.3 Описание среды реализации.

8.4. Описание возможностей и ограничений.

8.5. Описаний входных и выходных форматов, спецификаций.

8.6. Описание тестирования.

8.7.Описание инструкции пользователя.

9. Сопровождение.

9.1. Анализ использования, периодичность использования возможность количества пользователей, анализ отказов.

9.2. Обслуживание модели алгоритма программы и их эксплуатация.

9.3. Расширение возможностей: включение новых функций или изменение режимов моделирования.

9.4. Нахождение , исправление скрытых ошибок в программе, если они найдутся.

10. Использование модели.

Решение краевых задач.

Опр. Краевой задачей называется задача, в которой определённым образом задано условие на краях исследуемой области. Условия определяют поведение искомой функции.

Опр. ( постановка краевых задач).

Решить дифференциальное уравнение y"=f(x,y,y'), при чём обязательно заданы граничные условия. Найти значения y в каждой точке фиксированной x.

Краевые задачи делятся на разные виды в зависимости от начальных условий:

1. Если граничные условия имеют вид: y(a)=A, y(b)=B. Где А и В либо константы, либо функция, то это краевые условия первого рода.

2. Если граничные условия имеют вид: y'(a)=A, y'(b)=B, то это краевая задача второго рода.

3. Если известны комбинации: α1·y'(a)+β1·y(a)=γ1 и

α2·y'(a)+β2·y(a)=γ2 то это краевая задача третьего рода.

Для задач первого рода известна функция, т.е. например, известно значение температуры на краях стержня.

Для задач второго рода на границах сама функция неизвестна, а известна её производная.

Для задач третьего рода неизвестно значение функции, неизвестна производная, а известна их комбинация.

Краевые задачи делятся на три основных типа:

1. Параболического типа (пример: уравнения теплопроводности).

2. Гиперболического типа (уравнение описывающее колебание струны).

3. Эллиптического типа.

Рассмотрим краевую задачу 2-го рода параболического типа.

Задача: (моделирует процессы теплопереноса).

Основные этапы математического и инфологического моделирования - student2.ru

Основные этапы математического и инфологического моделирования - student2.ru - коэффициент.

f – функция внутренних тепловых источников.

U – температура.

Начальные условия:

U(x,0)=φ(x)

Основные этапы математического и инфологического моделирования - student2.ru Основные этапы математического и инфологического моделирования - student2.ru x=a = f(t) - левое граничное условие

U(b)=q(t) - правое граничное условие

Для её решения использую метод сеток.

Решение:

Основные этапы математического и инфологического моделирования - student2.ru Изобразим декартовую систему координат, где отложим х (точка стержня) и у (момент времени).

Рассмотрим стержень.

Основные этапы математического и инфологического моделирования - student2.ru Разобьем участок стержня на n равных частей и рассмотрим шаг h=(b-a)/n (см. рисунок).

Для выбора шага по времени используем условие устойчивости: Основные этапы математического и инфологического моделирования - student2.ru это условие применяется для явной сетки, когда последующий слой считается через предыдущий. Если это условие будет не соблюдаться, то в программе могут возникать неадекватные результаты: очень большие числа или числа разных знаков. Обычно Основные этапы математического и инфологического моделирования - student2.ru t приходится выбирать очень маленьким, например 0,001, 0,0001, что затрудняет процесс счёта на компьютере. Например реальный процесс, который происходит 2 секунды моделируется на компьютере 2 часа.

Основные этапы математического и инфологического моделирования - student2.ru Используя условие U(x,0)=φ(x) мы можем найти значение температуры в каждой точке стержня в начальный момент времени, т.е. посчитать значение в следующих узлах сетки:

Основные этапы математического и инфологического моделирования - student2.ru Используя, правое граничное условие, мы найдём значение температуры на правом краю стержня во все моменты времени. На сетке эти точки будут расположены следующим образом:

(см. рисунок).

Основные этапы математического и инфологического моделирования - student2.ru

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

Основные этапы математического и инфологического моделирования - student2.ru И наконец распишем производную на левой границе: Основные этапы математического и инфологического моделирования - student2.ru Найдём значение в точке U0,I:

U0,i= Основные этапы математического и инфологического моделирования - student2.ru U1,i- Основные этапы математического и инфологического моделирования - student2.ru

Значение в данной точке будет соответствовать следующему узлу сетки (см рисунок).

Основные этапы математического и инфологического моделирования - student2.ru Таким образом мы посчитаем значения температуры в следующих узлах (см. рисунок)

Таким образом мы можем посчитать температуру во всей сетке (во всех узлах) и будем знать температуру стержня в каждой точке стержня в каждый момент времени.(Для получения более подробных сведений обращаётесь в раздел численных методов – решение краевых задач.)

Алгоритм программы.

В программе можно использовать два одномерных массива, либо один двумерный массив.

Одномерный массив описывается следующим образом:

U0[0..n] – используется для хранения данных предыдущего слоя,

U1[0..n] – используется для хранения данных последующего слоя.

Задаём начальные условия в цикле, т.е. для каждой точки стержня задаём значение температуры в нулевой момент времени:

For i:=0 to nx do { n - количество разбиений стержня}

Begin

U0[i]=φ(x) {в качестве φ(x) ,берётся функция из граничного условия}

x:=i*dx {dx –шаг, который задаётся в начале программы самостоятельно}

Затем открываем цикл по времени:

For j:=1 to T do {T – конечный момент времени}

Begin

U1[n]:=q(t1) { в качестве q(t1) ,берётся функция из правого граничного условия }

t1:=dt*j { dt –шаг, который задаётся в начале программы исходя из условия устойчивости – тоже самое что и Основные этапы математического и инфологического моделирования - student2.ru }

Затем решаем основное уравнение теплопроводности. Предварительно расписав его в разностном виде:

Основные этапы математического и инфологического моделирования - student2.ru

Где Ui,j+1 - это U[i]

Ui,j - это U0[i]

Ui+1,j - это U0[i+1]

Ui-1,j - это U0[i-1]

Выражаем последующий слой через предыдущий:

Основные этапы математического и инфологического моделирования - student2.ru

т.е. for i:=1 to n-1 do

U1[i]:=dt*(k*(U0[i+1]-2*U0[i]+U0[i-1])/(dx*dx)+f(i))+U0[i]

Т.о. мы посчитаем температуру на следующем слое , в точках соответствующих индексам от 1 до n-1.

Используя левое граничное условие найдём: U0,i= Основные этапы математического и инфологического моделирования - student2.ru U1,i- Основные этапы математического и инфологического моделирования - student2.ru т.е.

U1[0]:=U1[1]-dx*f(t) {где f(t) функция т левого граничного условия}

Затем выводим слой (результат) на экран:

For i:=0 to 1 do

Write(u1[i]);

Writeln;

Переприсваиваем слои:

U0:=U1 ;

Заканчиваем цикл по времени. Заканчиваем программу.

Наши рекомендации