- •Новые информационные технологии
- •Часть 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
2.7.5. Примеры преобразований Фурье()
Пример 2.34. Для проверки преобразований Фурье зададим некоторый вектор X из 23 = 8 комплексных элементов и, проведя прямое преобразование с помощью функции cfft, получим новый вектор Y:
.
Пример 2.35. Проведем над полученным вектором Y обратное преобразование, используя функцию icfft:
.
Нетрудно заметить, что полученный таким двукратным преобразованием вектор XI полностью совпадает с исходным вектором X.
Прямое преобразование Фурье по существу означает перевод временной зависимости в ее частотный спектр. А обратное преобразование Фурье переводит частотный спектр вновь во временную зависимость. Между этими преобразованиями можно задать изменение спектра с помощью искажающих блоков - например, электрических цепей или фильтров при преобразовании электрических сигналов. В результате можно легко промоделировать прохождение сигналов через такие цепи (усилители, фильтры и т.д.).
Пример 2.36. Сформировать сложный сигнал, содержащий треугольный и прямоугольные импульсы, разложить его на гармоники прямым преобразованием Фурье и синтезировать по k=20 гармоникам новый сигнал. Такой синтез означает прохождение сигнала через идеальный фильтр нижних частот, отсеивающий все гармоники с номерами выше 20.
П ример решения этой задачи представлен на рис. 2.8. Здесь исходный вектор задан элементами действительного типа, поэтому используются функции fft и ifft. Внизу документа представлены графики исходного сигнала и синтезированного по 20 его гармоникам нового сигнала.
Рис. 2.8. Применение БПФ для спектрального разложения и синтеза сложного сигнала
БПФ широко применяется при решении задач фильтрации сигналов или аппроксимации функций. При ограниченном числе гармоник приближение функции тригонометрическим рядом Фурье обеспечивает наименьшую среднеквадратичную погрешность, если при этом используется БПФ.
2.7.6. Альтернативные преобразования Фурье()
Рассмотренные выше функции основаны на обычных формулах преобразований Фурье. Однако существуют и альтернативные формы такого преобразования, две из которых показаны ниже:
.
Вместо множителя перед обоими выражениями перед первым выражением стоит множитель 1/n, а перед вторым — 1. Знак «минус» перед показателем степени имеется только в первой формуле (его нет во второй). Альтернативные формулы преобразований Фурье используются в функциях FFT(v), IFFT(v), CFFT(v) и ICFFT(v).
2.8. Табличная интерполяция и аппроксимация
2.8.1. Теоретические основы интерполяции и экстраполяции
Пусть некоторая функция f(x) определена рядом своих узловых точек (xi, yi) на некотором отрезке [a, b]. Под интерполяцией мы будем подразумевать вычисление значений f(x) в любом промежутке [xi, xi+1] в пределах отрезка [a, b]. Соответственно любое вычисление f(x) вне отрезка [a, b] является экстраполяцией. Замена f(x) другой более удобной или простой функцией называется аппроксимацией.
Полиномиальная интерполяция (и аппроксимация) заключается в вычислении f(x) и вычисляется с помощью аппроксимирующего полинома:
fa(x)=anxn + an-1xn-1 + ... aixi + ... + a2x2 + a1x + a0.
Широко известные линейная и квадратичная интерполяции являются частными случаями полиномиальной интерполяции и выражаются соответственно формулами
f(x)лин = a1x + a0 и f(x)кв = a2x2 + a1x + a0.
Для узловых точек данных f(xi) можно составить систему линейных относительно an, an-1,...,a1, a0 уравнений вида, представляющего fa(x), так что в каждом уравнении x=xi и f(xi)=fa(xi). Из решения такой системы можно получить требуемые коэффициенты an, an-1,...,a1, a0 степенного многочлена (полинома). При этом значения полинома в узловых точках точно совпадают со значениями ординат в этих точках, а степень полинома на 1 меньше числа узловых точек.
Найденный полином является единственным и глобально аппроксимирует данные. Есть и более эффективные и особые способы полиномиальной аппроксимации и ряд форм полинома - в частности форма, известная как формула интерполяции по Лагранжу. Ее удобство в том, что в ней фигурируют лишь координаты узловых точек.
Широкое распространение получила сплайновая интерполяция, в которой используются отрезки полиномов третьей степени - кубические сплайны. Требуется, чтобы кубические сплайны проходили через смежные три ближайшие узловые точки и, кроме того, на граничных точках должны совпадать не только значения сплайнов и функции, но и значения их первых и даже вторых производных. Это означает высокую плавность линий интерполяции (аппроксимации). Такую плавность обеспечивает гибкая линейка, как бы закрепленная в узловых точках. Разумеется, сплайны могут быть не только кубическими. Обычная линейная интерполяция является в сущности сплайновой при сплайнах первого порядка. Достаточно практична аппроксимация сплайнами второго порядка, но основной все же является кубическая сплайн-аппроксимация с возможностью экстраполяции.