- •Содержание
- •Знакомство с Mathcad
- •1.3. Интерфейс пользователя
- •1.3.1. Меню
- •1.3.2. Панели инструментов
- •1.3.3. Настройка панели инструментов
- •1.3.4. Рабочая область
- •1.3.5. Строка состояния
- •1.4. Справочная информация
- •2. Редактирование документов
- •2.1. Работа с документами
- •2.1.1. Управление документами
- •2.1.2. Создание документа на основе шаблона
- •2.1.3. Сохранение документа
- •2.1.4. Открытие существующего документа
- •2.1.5. Закрытие документа
- •2.2. Ввод и редактирование формул
- •2.2.1. Элементы интерфейса
- •2.2.2. Ввод формул
- •2.2.3. Перемещение линий ввода внутри формул
- •2.2.4. Изменение формул
- •2.2.5. Ввод символов, операторов и функций
- •2.2.6. Управление отображением некоторых операторов
- •2.3. Ввод и редактирование текста
- •2.3.1. Ввод текста
- •2.3.2. Редактирование текста
- •2.3.3. Импорт текста
- •2.3.4. Математические символы внутри текста
- •2.3.5. Гиперссылки
- •2.4. Правка документа
- •2.5. Печать документа
- •2.6. Посылка документа по электронной почте
- •Лекция 2. Автоматизация вычислений в MathCad. Типы данных
- •3.1. Переменные и функции
- •3.1.1. Определение переменных
- •3.1.3. Функции
- •3.1.4. Определение функции пользователя
- •3.1.5. Вывод значений переменных и функций
- •3.1.6. Символьный вывод
- •3.1.7. Допустимые имена переменных и функций
- •3.2. Операторы
- •3.2.1. Арифметические операторы
- •3.2.2. Вычислительные операторы
- •3.2.3. Логические операторы
- •3.2.4. Матричные операторы
- •3.2.5. Операторы выражения
- •3.2.6. Создание оператора пользователя
- •3.3. Управление вычислениями
- •3.3.1. Режимы вычислений
- •3.3.2. Прерывание вычислений
- •3.3.3. Вычисления в ручном режиме
- •3.3.4. Отключение вычисления отдельных формул
- •3.3.5. Оптимизация вычислений
- •3.3.6. Диалоговое окно Worksheet Options
- •3.4. Сообщения об ошибках
- •4. Типы данных
- •4.1. Типы данных
- •4.1.1. Действительные числа
- •4.1.2. Комплексные числа
- •4.1.3. Встроенные константы
- •4.1.4. Строковые выражения
- •4.2. Размерные переменные
- •4.2.1. Создание размерной переменной
- •4.2.2. Работа с размерными переменными
- •4.2.3. Выбор системы единиц
- •4.2.4. Определение новой размерности
- •4.3. Массивы
- •4.3.1. Доступ к элементам массива
- •4.3.2. Ранжированные переменные
- •4.3.3. Создание массивов
- •4.3.4. Отображение вывода векторов и матриц
- •4.4. Формат вывода числовых данных
- •4.4.1. Формат результата
- •4.4.2. Округление малых чисел до нуля
- •4.4.3. Вывод чисел в других системах счисления
- •4.5. Элементы управления (controls)
- •Лекция 3. Символьные вычисления. Интегрирование и дифференцирование. Алгебраические уравнения и оптимизация.
- •5. Символьные вычисления
- •5.1. Способы символьных вычислений
- •5.2. Символьная алгебра
- •5.2.1. Упрощение выражений (Simplify)
- •5.2.2. Разложение выражений (Expand)
- •5.2.3. Разложение на множители (Factor)
- •5.2.4. Приведение подобных слагаемых (Collect)
- •5.2.5. Коэффициенты полинома (Polynomial Coefficients)
- •5.2.6. Ряды и произведения
- •5.2.7. Разложение на элементарные дроби (Convert to Partial Fractions)
- •5.2.8. Подстановка переменной (Substitute)
- •5.2.9. Матричная алгебра
- •5.3. Математический анализ
- •5.3.1. Дифференцирование (Differentiate)
- •5.3.2. Интегрирование (Integrate)
- •5.3.3. Разложение в ряд (Expand to Series)
- •5.3.4. Решение уравнений (Solve)
- •5.4. Интегральные преобразования
- •5.4.1. Преобразование Фурье (Fourier)
- •5.4.2. Преобразование Лапласа (Laplace)
- •5.5. Дополнительные возможности символьного процессора
- •5.5.1. Применение функций пользователя
- •5.5.2. Получение численного значения выражения
- •5.5.3. Последовательности символьных команд
- •7. Интегрирование и дифференцирование
- •7.1. Интегрирование
- •7.1.1. Операторы интегрирования
- •7.1.2. Об алгоритмах интегрирования
- •7.1.3. 0 Расходящихся интегралах
- •7.1.4. Кратные интегралы
- •7.2. Дифференцирование
- •7.2.1. Первая производная
- •7.2.2. Производные высших порядков
- •7.2.3. Частные производные
- •8. Алгебраические уравнения и оптимизация
- •8.1. Одно уравнение с одним неизвестным
- •8.2. Корни полинома
- •8.3. Системы уравнений
- •8.4. О численных методах решения систем уравнений
- •8.5. Приближенное решение уравнений
- •8.6. Поиск экстремума функции
- •8.6.1. Экстремум функции одной переменной
- •8.6.2. Условный экстремум
- •8.6.3. Экстремум функции многих переменных
- •8.6.4. Линейное программирование
- •8.7. Символьное решение уравнений
- •Лекция 4. Матричные вычисления. Математическая статистика. Обработка данных.
- •9. Матричные вычисления
- •9.1. Простейшие операции с матрицами
- •9.1.1. Транспортирование
- •9.1.2. Сложение
- •9.1.3. Умножение
- •9.1.4. Определитель квадратной матрицы
- •9.1.5. Модуль вектора
- •9.1.6. Скалярное произведение векторов
- •9.1.7. Векторное произведение
- •9.1.8. Сумма элементов вектора и след матрицы
- •9.1.9. Обратная матрица
- •9.1.10. Возведение матрицы в степень
- •9.1.11. Векторизация массивов
- •9.1.12. Символьные операции с матрицами
- •9.2. Матричные функции
- •9.2.1. Функции создания матриц
- •9.2.2. Слияние и разбиение матриц
- •9.2.3. Вывод размера матриц
- •9.2.4. Сортировка матриц
- •9.2.7. Ранг матрицы
- •9.3. Системы линейных алгебраических уравнений
- •14. Математическая статистика
- •14.1. Случайные величины
- •14.1.1. Нормальное (Гауссово) распределение
- •14.1.2. Равномерное распределение
- •14.1.3. Биномиальное распределение
- •14.1.4. Другие статистические распределения
- •14.2. Статистические характеристики
- •14.2.1. Построение гистограмм
- •14.2.3. Генерация коррелированных случайных чисел
- •14.2.4. Ковариация и корреляция
- •14.2.5. Коэффициенты асимметрии и эксцесса
- •14.2.6. Другие статистические характеристики
- •14.2.7. Действие статистических функций на матрицы
- •14.3. Случайные процессы
- •14.4. Некоторые примеры
- •14.4.1. Интервальная оценка дисперсии
- •14.4.2. Проверка статистических гипотез
- •15. Обработка данных
- •15.1. Интерполяция
- •15.1.1. Линейная интерполяция
- •15.1.2. Кубическая сплайн-интерполяция
- •15.1.3. Полиномиальная сплайн-интерполяция
- •15.1.4. Экстраполяция функцией предсказания
- •15.1.5. Многомерная интерполяция
- •15.2. Регрессия
- •15.2.1. Линейная регрессия
- •15.2.2. Полиномиальная регрессия
- •15.2.3. Регрессия специального вида
- •15.2.4. Регрессия общего вида
- •15.3. Сглаживание и фильтрация
- •15.3.1. Встроенные функции для сглаживания
- •15.3.2. Скользящее усреднение
- •15.3.3. Устранение тренда
- •15.3.4. Полосовая фильтрация
- •Лекция 5. Числовой ввод-вывод данных. Создание двух- и трехмерных графиков.
- •16.1. Числовой ввод-вывод
- •16.2. Создание графиков
- •16.3. Двумерные графики
- •16.3.4. Полярный график
- •16.3.5. Построение нескольких рядов данных
- •16.3.6. Форматирование осей
- •16.3.7. Форматирование рядов данных
- •16.3.9. Изменение размера и положения графиков
- •16.3.10. Трассировка и увеличение графиков
- •16.4. Трехмерные графики
- •16.4.2. Форматирование трехмерных графиков
- •16.5. Создание анимации
- •16.6. Ввод-вывод во внешние файлы
- •16.6.1. Текстовые файлы
- •16.6.2. Графические файлы
- •16.6.3. Звуковые файлы
- •Литература:
8.6.2. Условный экстремум
В задачах на условный экстремум функции минимизации и максимизации должны быть включены в вычислительный блок, т. е. им должно предшествовать ключевое слово Given. В промежутке между Given и функцией поиска экстремума с помощью булевых операторов записываются логические выражения (неравенства, уравнения), задающие ограничения на значения аргументов минимизируемой функции. В листинге 8.13 показаны примеры поиска условного экстремума на различных интервалах, определенных неравенствами. Сравните результаты работы этого листинга с двумя предыдущими.
Листинг 8.13. Три примера поиска условного экстремума функции
Не забывайте о важности выбора правильного начального приближения и в случае задач на условный экстремум. Например, если вместо условия - 3<х<0 в последнем примере листинга задать -5<х<0, то при том же самом начальном х=-10 будет найден максимум Maximize(f,x) =-0.944, что неверно, поскольку максимальное значение достигается функцией f (х) на левой границе интервала при х=-5. Выбор начального приближения х=-4 решает задачу правильно, выдавая в качестве результата Maximize (f ,x) =-5.
8.6.3. Экстремум функции многих переменных
Вычисление экстремума функции многих переменных не несет принципиальных особенностей по сравнению с функциями одной переменной. Поэтому ограничимся примером (листинг 8.14) нахождения максимума и минимума функции, показанной в виде графиков трехмерной поверхности и линий уровня на рис. 8.9. Привлечем внимание читателя только к тому, как с помощью неравенств, введенных логическими операторами, задается область на плоскости (х,y) .
Листинг 8.14. Экстремум функции двух переменных
Рис. 8.9. График функции f (х, у) и отрезок прямой х+у=10
Дополнительные условия могут быть заданы и равенствами. Например, определение после ключевого слова Given уравнения х+у=10 приводит к такому решению задачи на условный экстремум.
Как нетрудно сообразить, еще одно дополнительное условие привело к тому, что численный метод ищет минимальное значение функции f(x,y) вдоль отрезка прямой, показанного на рис. 8.9.
Поиск минимума можно организовать и с помощью функции Minerr. Для этого в листинге 8.14 надо поменять имя функции Minimize на Minerr, а после ключевого слова Given добавить выражение, приравнивающее функции f (х,у) значение, заведомо меньшее минимального, например f (х,у) =0.
8.6.4. Линейное программирование
Задачи поиска условного экстремума функции многих переменных часто встречаются в экономических расчетах для минимизации издержек, финансовых рисков, максимизации прибыли и т. п. Целый класс экономических задач оптимизации описывается системами линейных уравнений и неравенств. Они называются задачами линейного программирования. Приведем характерный пример т. н. транспортной задачи, которая решает одну из проблем оптимальной организации доставки товара потребителям с точки зрения экономии транспортных средств (листинг 8.15).
Листинг 8.15. Решение задачи линейного программирования
Модель типичной транспортной задачи следующая. Пусть имеется N предприятий-производителей, выпустивших продукцию в количестве b0,... ,bn-1, тонн. Эту продукцию требуется доставить м потребителям в количестве a0,... ,aм-1 тонн каждому. Численное определение векторов а и b находится в первой строке листинга. Сумма всех заказов потребителей ai равна сумме произведенной продукции, т. е. всех bi (проверка равенства во второй строке). Если известна стоимость перевозки тонны продукции от 1-го производителя к j-му потребителю cij то решение задачи задает оптимальное распределение соответствующего товаропотока xij с точки зрения минимизации суммы транспортных расходов. Матрица с и минимизируемая функция f (х) матричного аргумента х находятся в середине листинга 8.15.
Условия, выражающие неотрицательность товаропотока, и равенства, задающие сумму произведенной каждым предприятием продукции и сумму заказов каждого потребителя, находятся после ключевого слова Given. Решение, присвоенное матричной переменной sol, выведено в последней строке листинга вместе с соответствующей суммой затрат. Обратите внимание, что для получения результата пришлось увеличить погрешность CTOL, задающую максимальную допустимую невязку дополнительных условий. В строке, предшествующей ключевому слову Given, определяются нулевые начальные значения ддя х простым созданием нулевого элемента матрицы xn-1, м-1
Если взять другие начальные значения для х, решение, скорее всего, будет другим! Возможно, Вы сумеете отыскать другой локальный минимум, который еще больше минимизирует транспортные затраты. Это еще раз доказывает, что задачи на глобальный минимум, к классу которых относится линейное программирование, требуют аккуратного отношения в смысле выбора начальных значений. Часто ничего другого не остается, кроме сканирования всей области начальных значений, чтобы из множества локальных минимумов выбрать наиболее глубокий.
