
- •Новые информационные технологии
- •Часть 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. Особенности применения программных модулей
- •Методические указания
- •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. Практика математического моделирования 121
1.6.2. Построение графиков функций одной переменной
Часто возникает необходимость в построении графиков некоторых функциональных зависимостей y=f(x). Пока остановимся на графиках функций одной переменной, напримерx. Пустьexpr- некоторое выражение, зависящее отx, напримерx2— квадратичная зависимость, sin(x) — синусоидальная зависимость и т. д.
Пример 1.6.Построить график функцииf(x):=sin(x)3, задав изменениеxот -10 до 10 с шагом 0,1. Для этого:
введите функцию пользователя, набрав выражение f(x):=sin(x)^3;
введите ранжированную переменную x:=-10, -9.9 .. 10;
в панели математических знаков щелкните на кнопке с изображением графика — на экране появится палитра графиков;
в палитре графиков щелкните на кнопке с изображением двумерного графика — на экране появится шаблон графика с уже введенной по оси Y функцией;
введите в место ввода у оси x имя независимого аргумента — x;
щелкните вне пределов графика левой кнопкой мыши — график будет построен;
введите в область графика курсор мыши и дважды щелкните левой клавишей мыши. В появившейся панели форматирования графика задайте его параметры (тип осей, цвет линии и ее тип) так, чтобы получить график, представленный на рис. 1.8.
Рис.
1.8. График функции одной переменной и
панель его форматирования
Заметьте, что вы можете «ухватиться» курсором мыши за рамку выделенного графика и перенести его в любое удобное место в окне документа. Вы можете также растягивать график по вертикали, горизонтали и диагонали, «цепляясь» курсором мыши за соответствующие темные прямоугольники на линиях выделения графика.
Обратите внимание: когда график находится в рамке, на нем в характерных черных уголках появляются числа, идентифицирующие масштаб графика по оси Y и по оси X. По умолчанию по оси X график строится на отрезке изменения аргумента xот –10 до +10. Масштаб по оси Y Mathcad устанавливает по умолчанию автоматически. Изменив эти числа, можно задать свой масштаб графика.
Пример
1.7.Построить на одном рисунке графики
двух функций:sin(x)2,
sin(x)/x
иcos(x).
Для этого их надо просто перечислить
после первой функции в месте ввода возле
оси Y, отделяя выражения для функций
запятыми. Полученный график представлен
на рис. 1.9.
Рис. 1.9.Двумерный график с тремя кривыми
Обратите внимание на то, что Mathcad автоматически отображает каждую кривую своим стилем и своим цветом. И делает это весьма недурно — редко кто из пользователей вмешивается в решение системы. Но форматированием графиков их вид можно менять, например, для изменения стиля и цвета линий, нанесения на график масштабной сетки, изменения фона, нанесения у координатных осей надписей и так далее.
1.6.3. Построение графиков поверхностей
Построение графиков поверхностей (их называют также трехмерными или 3D-графиками) – сложная задача. Связано это с тем, что такие графики даже в простейшем случае требуют создания матрицы точек (аппликат) зависимости z(x,y), то есть функции двух переменных. Создание такой матрицы – нетривиальная задача, что приводило не только к усложнению построений, но и к потере их наглядности.
Однако в новейших версиях Mathcad 2000/2001/2001i/11 эта трудность блестяще преодолена. Теперь трехмерный график построить даже проще, чем двумерный (см. пример ниже).
Пример 1.8. Построить график параболической поверхности (x2 + y2). Для этого надо выполнить представленные ниже действия.
Определите функцию z(x,y) двух переменных x и y. В качестве примера рассмотрим график функции суммы квадратов(x2 + y2). Тогда определение функции будет выглядеть следующим образом:
z(x,y) := x2 + y2.
Используя палитру графики, введите шаблон трехмерного графика.
На единственное место ввода под шаблоном введите имя функции — z.
Выведите указатель мыши за пределы графика и щелкните левой кнопкой мыши — будет построен график в виде «проволочного каркаса».
Растяните (или сожмите) график и поместите его в нужное место экрана (рис. 1.10).
Поместив в окно графика курсор мыши и нажав и удерживая левую клавишу мыши, попробуйте вращать график перемещением мыши. Тем самым вы можете менять углы обзора графика и даже заставить график вращаться в заданном направлении автоматически.
Рис.
1.10. График
поверхности в виде «проволочного
каркаса»
Обратите внимание на то, что в этом примере мы впервые задали функцию пользователя как функцию двух переменных x и y. Наша функция пользователя имеет простое имя z и список параметров (x, y), т. е. переменных x и y, от которых зависят значения z. С помощью функций пользователя мы можем пополнять набор функций, встроенных в систему.
График в виде «проволочного каркаса» не слишком эстетичен, хотя иногда и полезен, поскольку сквозь каркас видны обычно невидимые детали. Для изменения вида графиков трехмерных поверхностей используется их форматирование. Окно форматирования имеет множество возможностей, включая изменение типа графиков.
Пример
1.9.Отформатировать представленный
в предыдущем примере график с тем, что
бы он представлял поверхность в виде
контурных линий (рис. 1.11). Такие линии
образуются при пересечении поверхности
рядом параллельных плоскостей,
расположенных на одинаковом расстоянии
друг от друга.
Рис. 1.11. Контурный график поверхности с функциональной окраской и оцифровкой контурных линий
Новые версии Mathcad дают возможность построения на одном графике ряда поверхностей. Это делается предельно просто: определите ряд функций двух переменных, описывающих поверхности, и введите через запятую имена этих функций в месте ввода шаблона трехмерного графика.
Пример 1.10.Построить две объемные параболы, пересекающиеся в пространстве, и отформатировать их для придания наглядности рисунку. Зададим уравнения парабол функциями пользователя:
z1(x,y) := x2 + y2 - 20 z2(x,y) := -(x2 + y2) + 20
Укажем их имена в шаблоне поверхности и, используя окно форматирования, выберем построение поверхностей с функциональной окраской. Заметим, что каждая поверхность может форматироваться отдельно. Полученный рисунок представлен на рис. 1.12.
Рис.
1.12. Построение
двух пересекающихся в пространстве
объемных парабол (вращая график мышью,
можно рассмотреть его с разных сторон),
а в окне форматирования графика выбрать
разные схемы освещения
Окно форматирования трехмерной графики позволяет строить графики в нескольких системах координат, например, в сферической и цилиндрической системах координат. Сферическая система координат применяется в картографии, например, при построении карт на шаре - глобусе. Вид трехмерных графиков очень сильно зависит от того, в каких координатах строится график.
Для более детального знакомства с обширными возможностями визуализации геометрических понятий и результатов математических вычислений рекомендуется ознакомиться с литературой [5, 7] и примерами из справки по системе Mathcad.