Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка по МС

.pdf
Скачиваний:
6
Добавлен:
22.03.2016
Размер:
865.98 Кб
Скачать

Министерство образования Российской Федерации

Государственное образовательное учреждение высшего профессионального образования Ижевский государственный технический университет

Д.А. Негодин

Компьютерное моделирование

физических процессов

Учебное пособие

Ижевск, 2004

УДК 004.9(075.8) Н41

Рецензент: к.п.н. Ю.В. Иванов, доцент кафедры дидактики физики и информационных технологий Глазовского государственного педагогического института им. В.Г. Короленко.

Негодин Д.А. Компьютерное моделирование физических процессов.— Ижевск: Издательство ИжГТУ, 2004 г.— 53 с.

Учебное пособие представляет собой краткий курс лекции по предмету «Компьютерное моделирование физических процессов», примеры программа моделей, задания для самостоятельной работы, краткий справочник по командам языка Pascal. Приведены темы и планы лабораторных работ.

Учебное пособие предназначено для студентов дневного и вечернего отделений ВУЗов.

Пособие утверждено на заседании кафедры «Автоматизированные системы управления» Глазовского филиала ГОУВПО ИжГТУ (протокол № 1 от 09.01.2004 г) и рекомендовано к печати.

Пособие рассмотрено на экспертном совете по учебным изданиям департамента образования 31.01.2004 и рекомендовано к печати, заключение №353/290 от

31.01.2004.

© Д.А. Негодин, 2004

2

Компьютерное моделирование физических процессов

1 Введение

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

Теория подобия — теория, изучающая условия подобия физических явлений. Два явления называются подобными, если все количественные характеристики одного из них получаются из соответствующих количественных характеристик другого путем умножения их на постоянные числа, одинаковые для всех однородных величин.

Модель — физическая система или математическое описание компонентов и функций, отображающие существенные свойства какого-либо объекта, процесса или явления. Создается в исследовательских, познавательных или иных целях. Модель, от латинского modus — копия предмета, предназначенная для его изучения.

По цели использования модели подразделяют на:

Оптимизационные — связанные с нахождением точек минимума или максимума некоторых показателей.

Описательные — описывающие поведение некоторой системы и не предназначенные для целей управления и оптимизации.

По способу оценки классифицируются:

Детерминистские — использующие оценку переменных одним числом при конкретных значениях исходных данных.

Стохастические — оценивающие переменные несколькими параметрами, так как исходные данные заданы вероятностными характеристиками.

По области применения:

Специализированные — предназначены для использования только одной системой.

Универсальные — для использования несколькими системами.

Всистемах принятия решения модели классифицируют:

Стратегические модели — используются на высших уровнях управления для установления целей организации, объемов ресурсов, необходимых для их достижения, а также политики приобретения и использования этих ресурсов. Для стратегических моделей характерны широта охвата, множество переменных, представление данных в сжатой форме. Эти модели обычно детерминистские, описательные, специализированные, для использования в одной определенной задаче.

Тактические модели — используются для распределения и контроля использования ресурсов. Обычно являются детерминистскими, оптимизационными и универсальными.

Оперативные модели — используются на низших уровнях управления для поддержки принятия оперативных решений. Как правило, являются детерминистскими, оптимизационными и универсальными.

Математические модели — состоят из совокупности отдельных блоков, модулей

ипроцедур, реализующих отдельные методы. Сюда могут входить процедуры

3

Рисунок 1.1 — Схема исследования

Компьютерное моделирование физических процессов

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

При исследовании практически любого явления можно использовать следующую схему — рисунок 1.1.

После выделения изучаемого явления строится его физическая модель, которая затем описывается математическими методами. Затем следует решение поставленной математической задачи и интерпретация полученных числовых результатов с параметрами физического явления, а затем сопоставление результатов модели с экспериментальными результатами.

Основные «блоки», из которых строится большинство математических моделей это уравнения механики, электродинамики, квантовой механики, кинетические уравнения. Исключения составляют процессы превращения элементарных частиц, процессы происходящие в высокоинтенсивных полях, на очень больших (превышающих размеры Солнечной системы) или очень малых расстояниях (меньше размеров атомов).

Уравнения классической механики, квантовой механики, электродинамики являются формулировками фундаментальных законов природы. Уравнения кинетики, уравнения Больцмана,

уравнения переноса тепла и излучения в простейших случаях можно вывести из фундаментальных законов на основе ряда дополнительных гипотез. Уравнения механики сплошных сред и газовой динамики можно рассматривать как математическую формулировку законов механики в применении к жидким, упругим или газообразным средам, если только постулировать ряд соотношений типа связи между объемом и давлением, внутренними напряжениями и деформацией и так далее. С другой стороны, эти уравнения можно рассматривать как уравнения, описывающие движения очень большого числа взаимодействующих частиц, и, тогда можно получить уравнения механики сплошных сред и газовой динамики, и дополнительные соотношения типа уравнений состояния.

Все перечисленные основные уравнения являются дифференциальными, поэтому в моделировании преобладают дифференциальные уравнения.

4

Рисунок 2.2

 

 

 

 

 

 

Компьютерное моделирование физических процессов

2 Элементы численных методов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.1 Приближенное решение уравнений

 

 

 

 

 

 

Метод хорд. Пусть требуется отыскать решение

 

 

 

уравнения

f (x) = 0. Для

этого

рассмотрим график

 

 

 

 

 

 

функции

y = f (x) (рисунок 2.1). Известно,

что корень

 

 

 

уравнения лежит на отрезке [a,b], f (a) < 0

и f (b) > 0 .

 

 

 

Точки графика

A(a, f (a))

и

B(b, f (b))

соединим

 

 

 

 

Рисунок 2.1

хордой. За приближенное значение корня можно

 

 

 

 

принять абсциссу

x1 точки пересечения хорды AB с осью Ox . Оно находиться по

формуле

 

 

 

 

(b a) f (a)

 

 

 

 

 

 

 

 

x1 = a

,

 

(2.1)

 

 

 

 

 

 

 

 

 

 

f (b) f (a)

 

 

 

 

где x1 принадлежит отрезку [a,b]. Если, например

f (x1 ) < 0 , то за более узкую об-

ласть локализации корня можно взять отрезок [x1 ,b]. Соединив точки A1 и B полу-

чаем пересечение хорды A1B с осью Ox — второе приближение x2 , которое будет определяться по формуле:

x2

= x1

(b x1 ) f (x1 ) .

(2.2)

 

 

 

f (b) f (x1 )

 

Последовательность чисел a, x1 , x2 ,...стремиться к искомому корню уравнения f (x) = 0. Вычисление приближенных значений следует вести до достижения тре-

буемой точности. Если необходимо вычислить значение корня с точностью до некоторого ε , то вычисления продолжаются до тех пор пока ε < xi xi+1 .

Метод касательных. Пусть действительный корень уравнения f (x) = 0 изолирован на отрезке [a,b] (рисунок 2.2).

Будем предполагать, что все ограничения, сформулированные в предыдущем методе относительно функции f (x) , сохраняют

силу. Выберем на отрезке [a,b] некоторое число x0 , такое, что f (x0 ) и f // (x0 ) имеют одинаковые знаки: f (x0 ) f // (x0 ) > 0 . В

частности за точку x0 может быть взята точка конца отрезка, в которой это условие выполнимо. Проведем в точке M0 (x0 , f (x0 )) касательную к кривой y = f (x) . За

приближенное значение корня примем абсциссу точки пересечения касательной с осью Ox :

x

= x

f (x0 )

.

 

1

0

f / (x

)

 

 

 

0

 

 

Применив этот прием вторично в точке M1 (x1 , f (x1 )) , найдем:

x

= x

f (x1 )

.

 

2

1

f / (x

)

 

 

 

1

 

 

(2.3)

(2.4)

5

Компьютерное моделирование физических процессов

Последовательность x0 , x1 , x2 ,... имеет своим пределом искомый корень.

Метод проб. Интервал изоляции корня на отрезке всегда можно уменьшить путем деления, например, пополам, определяя на границах, какой из частей первоначального интервала функция f (x) меняет знак. Затем полученный интервал делят

на две части и так далее.

2.2 Вычисление определенных интегралов

b

Определенный интеграл f (x)dx интерпретиру-

a

ется как площадь под кривой y = f (x) на отрезке [a,b], в том случае, если функция f (x) — непрерывная и

дифференцируемая достаточное число раз

на

отрезке

 

 

 

Рисунок 2.3

 

 

 

[a,b].

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формулы прямоугольника. Разобьем кривую на

совокупность прямоуголь-

 

ников шириной

h = b a ,

с координатами

x = x +kh ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

k

0

 

 

 

 

 

 

 

 

 

где k = (0..n), а

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

число

разбиений (рисунок 2.3).

 

 

 

 

 

 

 

Тогда площадь под кривой будет примерно равна сумме

 

 

 

 

 

 

 

площадей всех прямоугольников:

 

 

 

 

 

(2.5)

 

 

 

 

 

 

 

 

 

b

 

 

n1

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x)dx hf (xk ) hf (xk ) .

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

k =0

 

 

 

k =1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 2.4

 

 

 

Формула трапеций. Более точно кривая

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

разбивается не на прямоугольник, а на трапеции (рисунок 2.4):

 

 

 

 

 

b

 

 

n1 f (x ) + f (x

)

f (x ) + f (x )

 

n1

 

 

 

 

 

f (x)dx h

 

k

k +1

 

h

 

0

n

 

+

f (xk ) .

(2.6)

 

 

2

 

 

 

2

 

 

 

k

=

0

 

 

 

 

 

 

 

=

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

k 1

 

 

 

 

Формула Симпсона. Еще более точное значение может быть получено по

формуле Симпсона, с числом разбиений 2n :

 

 

 

 

 

 

 

 

 

 

 

 

b

f (x)dx h f

 

 

 

 

 

n

 

 

n1

 

 

 

 

 

 

 

 

(x

) + f (x

 

) + 4

=

f (x

) + 2

 

=

f (x )

 

(2.7)

 

 

 

 

3

0

2k

 

2k 1

 

 

2k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

k 1

 

 

k 1

 

 

 

 

 

 

2.3 Численное интегрирование дифференциальных уравнений

Метод Эйлера. Дифференциальное уравнение y/ = f (x, y) определяет на

плоскости так называемое поле направлений — в каждой точке плоскости, в которой существует функция f (x, y) , задается направление интегральной кривой урав-

нения, проходящей через эту точку.

Пусть требуется решить задачу Коши, то есть найти решение уравнения y/ = f (x, y), удовлетворяющее начальным условиям y(x0 ) = y0 . Рассмотрим отрезок

[x0 , X ] . Для этого разделим уравнение на n равных частей, тогда h = X n x0 — шаг

6

 

 

 

 

 

 

 

 

 

Компьютерное моделирование физических процессов

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

сохра-

няет свое постоянное значение, тогда y1 y0 h f (x0 , y0 ). Или, в общем виде,

 

yk yk1 +h f (xk1 , yk1 ) ,

xk = xk1 +h.

(2.8)

Метод Рунге–Кутта. Пусть функция

y

определяется дифференциальным

уравнением y/ = f (x, y) при начальном условии

y(x ) = y . При численном интег-

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

 

 

0

0

 

x + h

, y + k1

 

 

k = h f (x, y), k

2

= h f

,

 

1

 

 

 

 

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

(2.9)

 

 

h

 

k

 

 

= h f (x +h, y +k3 ).

 

 

2

 

k3 = h f x +

 

, y +

 

 

, k4

 

2

2

 

 

 

 

 

 

 

 

 

 

Если положить, что y(x +h) = y(x) +∆y , то

 

 

 

 

y =

1 (k1 +2k2 +2k3 +k4 ).

 

(2.10)

 

 

 

6

 

 

 

 

 

 

 

 

 

7

Компьютерное моделирование физических процессов

3 Матричный способ описания движения

3.1 Матрицы и операции над ними

Матрица — упорядоченный набор чисел, записанный в виде прямоугольной таблицы. Для обозначения используются скобки (круглые, квадратные или сдвоенные прямые):

a

a

a

 

 

a

a

a

 

 

 

a

a

a

 

 

 

 

 

 

 

 

 

 

 

1,1

2,1

3,1

 

 

1,1

2,1

3,1

 

 

 

1,1

2,1

3,1

 

 

 

 

 

a1,2

a2,2

a3,2

 

,

a1,2

a2,2

a3,2

 

,

 

a1,2

a2,2

a3,2

 

 

 

.

(3.1)

 

a2,3

a3,3

 

 

 

a2,3

a3,3

 

 

 

a1,3

a2,3

a3,3

 

 

 

 

 

a1,3

 

 

a1,3

 

 

 

 

 

 

 

 

Если количество строк и столбцов в матрице одинаково, то матрица называется квадратной. Матрицы, имеющие всего один столбец, называются матрица-

столбец (матрица-вектор).

Из возможных операций, проводимых над матрицами, практический интерес в нашем случае представляют сложение и умножение.

Сложение матриц возможно только в том случае, если матрицы одинаковы:

 

 

 

 

a1,1

a2,1

 

b1,1

b2,1

 

a1,1 +b1,1

a2,1 +b2,1

 

 

 

 

 

 

 

 

 

 

a

a

 

 

+ b

 

b

 

 

= a

+b

 

a

 

+b

.

 

 

 

 

(3.2)

 

 

 

 

1,2

2,2

 

1,2

2,2

 

1,2

 

1,2

2,2

 

2,2

 

 

 

 

 

 

Умножение матриц:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a1,1

a2,1

 

a3,1

 

b1,1

b2,1

 

b3,1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

a

 

a

 

b

b

 

b

=

 

 

 

 

 

 

 

 

 

 

 

 

 

1,2

2,2

 

3,2

 

1,2

 

2,2

 

3,2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a2,3

 

a3,3

 

 

b2,3

 

b3,3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a1,3

 

 

b1,3

 

 

 

 

 

 

 

 

 

(3.3)

a1,1b1,1 +a2,1b1,2 +a3,1b1,3

a1,1b2,1 +a2,1b2,2 +a3,1b2,3

a1,1b3,1 +a2,1b3,2

+a3,1b3,3

 

 

= a b +a b +a b

 

a b +a b +a b

a b +a b +a b

.

 

 

1,2

1,1

2,2

1,2

3,2

1,3

1,2

2,1

 

2,2

2,2

3,2

2,3

 

1,2

3,1

 

2,2

3,2

3,2

3,3

 

 

 

 

 

+a2,3b1,2 +a3,3b1,3

a1,3b2,1 +a2,3b2,2 +a3,3b2,3

a1,3b3,1 +a2,3b3,2

+a3,3b3,3

 

 

a1,3b1,1

 

 

 

 

 

 

a

 

a

 

a

 

b

 

a b

+a b

+a b

 

 

 

 

 

 

 

 

 

 

1,1

 

2,1

3,1

 

1

 

1,1

1

 

2,1 2

 

3,1

3

 

 

 

 

 

 

 

 

 

 

a1,2

a2,2

a3,2

b2 = a1,2b1 +a2,2b2

+a3,2b3 .

 

 

 

 

(3.4)

 

 

 

 

a

a

 

a

 

b

 

a b

+a b

+a b

 

 

 

 

 

 

 

 

 

 

1,3

 

2,3

3,3

 

3

 

1,3

1

 

2,3 2

 

3,3

3

 

 

 

 

 

 

При перемножении матриц выполняются следующие условия:

1.При перемножении матриц число столбцов первого сомножителя должно быть равно числу строк второго сомножителя.

2.При умножении элементов i -ой строки первой матрицы на элемент j -ого столбца второй матрицы, результат записывается в i -ю строку j -ого столбца получаемой матрицы.

3.При перемене множителей местами операция умножения может стать невозможной или результат будет иным.

3.2 Простейшие виды движения

Параллельный перенос. Параллельный перенос на вектор a(ax ,ay ) переносит точку M (x, y) в точку M (x, y) . Формулы преобразования координат:

8

Компьютерное моделирование физических процессов

 

 

x′ = x + ax , y′= y + ay .

 

(3.5)

При параллельном переносе отрезок перемещается

 

 

 

 

 

 

параллельно самому себе, его длина и ориентация не

 

 

 

изменяется (рисунок 3.1).

 

 

 

 

 

 

Вращение. Поворот точки вокруг координатной оси

 

 

 

против часовой стрелки

 

на угол ϕ > 0 (рисунок 3.2)

 

 

 

изменяет координаты точки по формулам:

 

 

 

 

 

 

Рисунок 3.1

 

 

 

x = xcosϕ ysinϕ, y

 

= xsinϕ + y cosϕ .

(3.6)

 

 

 

 

 

 

 

При повороте отрезок не изменяет своей длины, а также не изменяются углы между совместно поворачиваемыми отрезками.

Зеркальное отражение. Зеркальное отражение относительно оси абсцисс (рисунок 3.3) записывается в виде формул:

= x, y

= −y ,

(3.7)

 

 

x

 

 

 

а относительно оси ординат

 

 

 

 

 

 

 

 

 

 

= −x, y

= y .

(3.8)

 

 

x

 

 

 

Согласно утверждениям геометрии любое движение можно

Рисунок 3.2

представить в виде совокупности этих трех преобразований.

 

 

 

 

Кроме движений существует еще и деформация

 

 

 

 

 

 

 

 

 

 

 

 

фигур (сжатие/растяжения, рисунок 3.4), при которой

 

 

 

 

координаты точек фигуры изменяются согласно форму-

 

 

 

 

лам:

 

 

 

 

 

 

 

 

 

 

 

 

y

= β y

,

(3.9)

 

 

 

 

x =αx,

 

 

 

 

 

где α, β — заданные положительные числа.

 

 

 

 

 

 

 

Рисунок 3.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

x

точка на плоскости определяется вектором y , а матрицы

1

преобразований имеют вид:

 

 

 

 

Рисунок 3.4

 

 

 

 

 

 

1

0

a

 

 

 

 

 

Матрица параллельного переноса

T = 0

1

b

 

(3.10)

 

0

0

1

 

 

 

 

 

 

 

 

 

cosϕ

sinϕ 0

 

Матрица поворота

R = sinϕ

cosϕ

0

(3.11)

 

 

0

0

1

 

 

 

 

 

 

 

 

1

0

0

 

 

Матрица отражения

S = 0

1

0

 

(3.12)

 

0

0

1

 

 

 

 

 

 

 

 

9

Компьютерное моделирование физических процессов

 

 

 

α

0

0

 

Матрица сжатия (растяжения) D = 0

β

0

(3.13)

0

0

1

 

 

 

 

 

Использование более громоздкого математического аппарата для преобразования плоскости позволяет сделать его более однообразным, потому что теперь любое преобразование сводится к умножению матрицы преобразований на матрицу исходной точки, например для отыскания точки, после ее поворота на угол ϕ , необ-

ходимо отыскать матрицу-вектор

xy1

x = B y ,1

а для того чтобы повернуть ту же точку вокруг точки, не совпадающей с началом координат, следует выполнить следующие шаги (рисунок 3.5):

1.Перенесем плоскость в начало координат на вектор a , для совмещения точки поворота с началом отсчета: T1 .

2.Повернем плоскость на угол ϕ : R .

3.Перенесем плоскость в первоначальное положение, на вектор a : T2 .

 

 

 

Результирующее

преобразование

будет

иметь вид:

 

 

 

 

 

 

TΣ =T2 R T1 . Теперь

для

отыскания

нового

положения

 

 

 

точки необходимо отыскать результат умножения двух мат-

 

 

 

риц:

x

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=TΣ

 

 

 

 

 

 

 

 

y

y .

 

 

 

Рисунок 3.5

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ощутимое преимущество этого метода можно заметить при выполнении однотипных операций над несколькими точками, то есть если поворачивать не точку, а тело то тогда умножение матрицы точки на матрицу результирующего преобразования TΣ позволит значительно ускорить вычисления и сократить код программы.

10