- •Новые информационные технологии
- •Часть 3. Основы математики и математическое моделирование Учебное пособие
- •Введение
- •Глава 1. Основы компьютерной математики
- •1.1. Математика и ее средства
- •1.1.1. Аксиоматический метод и структуры математики
- •1.1.2. Компьютерная математика как часть математики
- •1.1.3. Классификация средств компьютерной математики
- •1.1.4. Структура систем компьютерной математики
- •1.1.5. Обзор систем компьютерной математики
- •1.2. Система компьютерной математики Mathcad
- •1.2.1. Состав системы Mathcad и ее запуск
- •1.2.2. Основы работы с системой Mathcad 2001
- •1.2.3. Работа с текстовым редактором
- •1.2.4. Работа с формульным редактором
- •1.2.5. Операции вывода и присваивания
- •1.2.6. Шаблоны математических операторов и символов
- •1.2.7. Ошибки и прерывание вычислений
- •1.3. Простые типы данных
- •1.3.1. Числовые данные
- •1.3.2. Вещественные числа и их форматы
- •1.3.3. Комплексные числа
- •1.3.4. Строковые данные
- •1.3.5. Символьные данные и выражения
- •1.4. Сложные типы данных
- •1.4.1. Множества и подмножества
- •1.4.2. Массивы
- •1.4.3. Векторы и матрицы
- •1.5. Константы, переменные, операторы и функции
- •1.5.1. Числовые константы
- •1.5.2. Строковые константы
- •1.5.3. Переменные
- •1.5.4. Операторы
- •1.5.5. Выражения и функции
- •1.6. Основы графической визуализации вычислений
- •1.6.1. Понятия об основных геометрических объектах
- •1.6.2. Построение графиков функций одной переменной
- •1.6.3. Построение графиков поверхностей
- •1.7. Средства программирования в системе Mathcad
- •1.7.1. Задание операторов пользователя
- •1.7.2. Задание программных модулей
- •1.7.3. Особенности применения программных модулей
- •Методические указания
- •10 Главных вопросов
- •Глава 2. Основы математических вычислений
- •2.1. Вычисление сумм и произведений
- •2.1.1. Вычисление сумм
- •2.1.2. Вычисление произведений
- •2.1.3. Вычисление пределов
- •2.3. Вычисление производных и интегралов
- •2.3.1. Определение производной и полного дифференциала
- •2.3.2. Вычисление производных
- •2.3.3. Определение интегралов
- •2.3.4. Вычисление интегралов
- •2.4. Решение уравнений и систем уравнений
- •2.4.1. Простое линейное уравнение и его решение
- •2.4.2. Решение систем линейных уравнений
- •2.4.5. Поиск всех корней степенного многочлена()
- •2.4.6. Решение систем нелинейных уравнений()
- •2.4.7. Реализация итерационных вычислений
- •2.5. Решение дифференциальных уравнений()
- •2.5.1. Основные понятия о дифференциальных уравнениях()
- •2.5.2. Решение систем оду()
- •2.5.3. Решение оду с помощью функции odesolve()
- •2.5.4. Решение жестких систем оду()
- •2.6. Решение задач оптимизации и линейного программирования
- •2.6.1. Основные понятия оптимизации
- •2.6.2. Пример оптимизации раскроя железного листа
- •2.6.3. Поиск минимума тестовой функции Розенброка
- •2.6.4. Функции maximize и minimize системы Mathcad
- •2.7. Разложение функций в ряды
- •2.7.1. Определение рядов Тейлора и Маклорена
- •2.7.2. Разложение в ряд Тейлора в системе Mathcad
- •2.7.3. Ряды Фурье()
- •2.7.4. Быстрые прямое и обратное преобразования Фурье()
- •2.7.5. Примеры преобразований Фурье()
- •2.7.6. Альтернативные преобразования Фурье()
- •2.8. Табличная интерполяция и аппроксимация
- •2.8.1. Теоретические основы интерполяции и экстраполяции
- •2.8.2. Интерполяция и аппроксимация по общей формуле Лагранжа
- •2.8.3. Полиномиальная интерполяция и аппроксимация
- •2.8.4. Кусочно-линейная и сплайновая аппроксимации в Mathcad
- •2.9. Статистическая обработка данных
- •2.9.1. Эксперименты, события и другие понятия статистики
- •2.9.2. Решение задач комбинаторики
- •2.9.3. Дискретные и непрерывные случайные величины
- •2.9.4. Законы распределения и статистические функции Mathcad
- •2.9.5. Регрессия и метод наименьших квадратов
- •2.9.6. Выполнение линейной регрессии в среде Mathcad
- •2.9.7. Полиномиальная регрессия в Mathcad
- •2.9.8. Проведение нелинейной регрессии()
- •2.9.9. Экстраполяция и предсказание
- •2.9.10. Сглаживание данных
- •Методические указания
- •10 Главных вопросов
- •Глава 3. Основы математического моделирования
- •3.1. Основные понятия моделирования
- •3.2. Основные виды моделей и их свойства
- •3.2.1. Основные виды моделей
- •3.2.2. Основные свойства моделей
- •3.3. Цели, принципы и технология моделирования
- •3.3.1. Цели моделирования
- •3.3.2. Основные принципы моделирования
- •3.3.3. Технология моделирования
- •3.3.4. Основные методы решения задач моделирования
- •Оценка обусловленности вычислительной задачи – еще одно обязательное требование при выборе метода решения и построении математической модели.
- •3.3.5. Контроль правильности модели
- •3.4. Задачи моделирования полета камня
- •3.4.1. Постановка задачи моделирования
- •3.4.2. Концептуальная формулировка задачи
- •3.4.3. Построение математической модели
- •3.4.4. Выбор метода решения
- •3.4.5. Программная реализация модели на эвм
- •3.4.6. Проверка адекватности модели
- •3.4.7. Анализ результатов моделирования
- •Методические указания
- •10 Главных вопросов
- •Глава 4. Практика математического моделирования
- •4.1. Моделирование процессов на основе известных формул
- •4.1.1. Моделирование изменения параметров атмосферы
- •4.1.2. Моделирование закона Мура
- •4.1.3. Моделирование преодоления самолетом звукового барьера
- •4.2. Моделирование на основе конечно-разностных методов
- •4.2.1. Моделирование Броуновского движения частиц
- •4.2.2. Моделирование диффузии
- •4.2.3. Моделирование торможения автомобиля()
- •4.2.4. Моделирование падения парашютиста()
- •4.2.5. Моделирование генератора на туннельном диоде()
- •4.2.6. Моделирование развития и угасания эпидемии
- •4.3. Моделирование колебательных систем
- •4.3.1. Анализ линейной колебательной системы
- •4.3.2. Анализ нелинейной колебательной системы Ван дер Поля
- •4.3.3. Моделирование системы Дафинга с внешним воздействием
- •4.3.4. Хаос и моделирование аттрактора Лоренца()
- •4.4. Моделирование рассеивания альфа-частиц()
- •4.5. Моделирование биологических и экономических систем
- •4.5.1. Модель системы «хищник-жертва» Лотки-Вольтерра
- •4.5.2. Модель системы «хищник-жертва» с логистической поправкой
- •4.5.3. Модель системы «хищник-жертва» Холлинга-Тэннера
- •4.5.4. Моделирование замкнутой экономической системы
- •4.6. Моделирование на основе линейного программирования
- •4.6.1.Оптимальные экономико-математические модели
- •4.6.2. Решение задач максимизации объема продукции
- •4.6.3. Решение задач минимизации ресурсов
- •4.6.4. Решение транспортной задачи
- •4.6.5. Задачи целочисленного программирования с булевыми переменными
- •4.7. Сетевые модели в оптимизации управленческих решений
- •4.7.1. Задача поиска кратчайшего пути
- •4.7.2. Задача о распределении потоков в сетях
- •4.8. Обработка и моделирование сигналов и изображений
- •4.8.1. Основы спектрального метода моделирования сигналов
- •4.8.2. Спектральное моделирование на основе точных формул интегрирования()
- •4.8.3. Улучшенное спектральное моделирование дискретных сигналов()
- •4.8.4. Вейвлеты - новый базис представления сигналов()
- •4.8.5. Вейвлет-преобразования()
- •4.8.6. Примеры вейвлет-обработки сигнала - временного ряда()
- •4.8.7. Анализ сигналов по вейвлет-спектрограммам
- •4.9. Обработка изображений
- •4.9.1. Средства обработки изображений
- •4.9.2. Обработка монохромных изображений
- •4.9.3. Обработка цветных изображений
- •4.9.4. Функции для работы с файлами и матрицами рисунков
- •4.9.5. Вейвлет-компрессия рисунков в пакете Wavelet Extension Pack
- •4.10.1. Подготовка к работе с матричной лабораторией matlab
- •4.10.2. Имитационное моделирование и расширение Simulink
- •Методические указания
- •10 Главных вопросов
- •Список литературы
- •Глава 1. Основы компьютерной математики 4
- •Глава 2. Основы математических вычислений 50
- •Глава 3. Основы математического моделирования 105
- •Глава 4. Практика математического моделирования 122
1.4.2. Массивы
Массивы – это имеющие уникальные имена наборы числовых, строковых или комбинированных значений. Здесь важно отметить, что понятие набор отличается от понятия множества тем, что наборы могут содержать идентичные элементы. Например, могут быть наборы из одного числа 0 или 1. Вообще говоря, массивы могут быть числовыми, строковыми или символьными и т. д.
Например, числовой массив может представлять только данные о числе выпущенных (например, по месяцам) автомобилей каким-то заводом. В этом случае говорят об одномерном массиве. А данные о числе книг в нескольких библиотеках (имеющих полки, шкафы с книгами и разные комнаты) можно представить, используя многомерные массивы - число их размерностей равно или больше двух. Массивы часто задают в парных квадратных скобках - в одинарных или многих для многоразмерных массивов.
Массивы можно характеризовать размерностью и размером. Так, вектор имеет размерность 1, матрица - размерность 2, куб с пронумерованными «кирпичами» - размерность 3 и так далее. Число элементов по каждой размерности характеризует ее размер, а произведение размеров по каждой размерности характеризует общий размер (число элементов) массива. Так, размер матрицы mn определяется произведением числа элементов в строке m на число элементов в столбце n.
1.4.3. Векторы и матрицы
Самые распространенные одномерные и двухмерные массивы называются векторами и матрицами. Массивы могут содержать как числовые, так и символьные данные. Например, в системе Mathcad:
2
4 - вектор - столбец с числовыми данными;
8
(a b+c d) - вектор - строка с символьными данными;
sin(1) 1 "string"
1 a + b 1 - матрица с элементами различного типа.
0 1 cos(1)
Как видно из этих примеров, в общем случае элементами массивов могут быть числовые (и строковые) константы, переменные и математические выражения. В Mathcad предусмотрен удобный способ задания массивов с помощью их шаблонов, имеющихся в палитре математических спецзнаков. Для перехода от вектора строки к вектору столбцу (и наоборот), а также для транспонирования векторов и матриц надо использовать оператор MT в палитре матричных операций. Оператор M<i> используется для выделения i-го столбца.
Во всех математических системах массив задается именем - идентификатором, как и любая переменная. Однако массив имеет ряд элементов с определенным порядком расположения. Порядковый номер элемента задается его индексом для вектора или двумя индексами для матрицы. Обычно существуют специальные системные переменные, задающие начальное значение индексов. Например, в системе Mathcad это переменная переменной ORIGIN, которая может принимать значение 0 (по умолчанию) или 1. Если, к примеру, записать ORIGIN := 1, то индексация будет начинаться с единицы.
Таким образом, элементы массива являются индексированными переменными. Это значит, что помимо имени такие переменные имеют подстрочный индекс. Наиболее естественно он вводится в системах класса Mathcad, в которых i-ый элемент вектора V задается как Vi. В этих системах индексы указываются как подстрочные, что принято и в обычной математической литературе.
Элементы матриц также являются индексированными переменными, имена которых совпадают с именами матриц, например:
a 1 0
M:= 1 a+b 1
0 1 b
Но в этом случае для каждой индексированной переменной указывают два индекса - один для номера строки, другой для номера столбца. Например, для указанной матрицы M средний элемент обозначается как M1,1, а последний как M2,2.
В системах Mathcad индекс вводится вводом знака [. При этом вводится не сам знак, а шаблон ввода индекса. В этих системах опасно путать индексированные переменные - элементы векторов и матриц со скалярными переменными с индексом в имени переменной. Подобные индексы вводятся вводом знака точки, причем синий уголок маркера ввода при этом охватывает все имя.
Матрицу можно представить как таблицу, имеющую m строк (rows) и n столбцов (columns). Если m = n, то матрицу именуют квадратной. Число элементов или размер матрицы есть m ´ n. Вектор с длиной m рассматривается как одномерная матрица размера m ´ 1. Для операций с матрицами, включая их ввод, служит палитра матричных операций Matrix (Матрицы). В ней, в частности, имеется шаблон для ввода матриц — он имеет вид удлиненных скругленных скобок с местами для ввода элементов матриц. При вводе шаблона появляется небольшое окно, запрашивающее число строк и столбцов матрицы. Рис. 1.5 иллюстрирует процедуру ввода матрицы и использование простейших векторных и матричных операций.
Р ис. 1.5. Примеры простейших числовых операций с матрицами
Матрицы одного размера с числовыми элементами можно складывать и вычитать, транспонировать (менять столбцы со строками), обращать, вычислять их детерминант и собственные числа и так далее. Другие важные матричные операции, например обращение матрицы и решение матричных уравнений, мы рассмотрим позже.