- •Содержание
- •Знакомство с 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. Звуковые файлы
- •Литература:
7. Интегрирование и дифференцирование
7.1. Интегрирование
Интегрирование в Mathcad реализовано в виде вычислительного оператора. Допускается вычислять интегралы от скалярных функций в пределах интегрирования, которые также должны быть скалярами. Несмотря на то что пределы интегрирования обязаны быть действительными, подынтегральная функция может иметь и комплексные значения, поэтому и значение интеграла может быть комплексным. Если пределы интегрирования имеют размерность, то она должна быть одной и той же для обоих пределов.
7.1.1. Операторы интегрирования
Интегрирование, дифференцирование, как и множество других математических действий, устроено в Mathcad по принципу "как пишется, так и вводится". Чтобы вычислить определенный интеграл, следует напечатать его обычную математическую форму в документе. Делается это с помощью панели Calculus (Вычисления) нажатием кнопки со значком интеграла или вводом с клавиатуры сочетания клавиш <Shift>+<7> (или символа "&"). Появится символ интеграла с несколькими местозаполнителями (рис. 7.1), в которые нужно ввести нижний и верхний интервалы интегрирования, подынтегральную функцию и переменную интегрирования.
Можно вычислять интегралы с одним или обоими бесконечными пределами. Для этого на месте соответствующего предела введите символ бесконечности, воспользовавшись, например, той же самой панелью Calculus (Вычисления). Чтобы ввести минус бесконечность, добавьте знак минус к символу бесконечности, как к обычному числу.
Рис. 7.1. Оператор интегрирования
Чтобы получить результат интегрирования, следует ввести знак равенства или символьного равенства. В первом случае интегрирование будет проведено численным методом, во втором — в случае успеха, будет найдено точное значение интеграла с помощью символьного процессора Mathcad. Эти два способа иллюстрирует листинг 7.1. Конечно, символьное интегрирование возможно только для небольшого круга несложных подынтегральных функций.
Листинг 7.1. Численное и символьное вычисление определенного интеграла
Подынтегральная функция может зависеть от любого количества переменных. Именно для того чтобы указать, по какой переменной Mathcad следует вычислять интеграл, и нужно вводить ее имя в соответствующий местозаполнитель. Помните, что для численного интегрирования по одной из переменных предварительно следует задать значение остальных переменных, от которых зависит подынтегральная функция и для которых вы намерены вычислить интеграл (листинг 7.2).
Листинг 7.2. Интегрирование функции двух переменных по разным переменным
Оператор интегрирования может использоваться точно так же, как и другие операторы: для определения функций, в циклах и при вычислении ранжированных переменных. Пример присваивания пользовательской функции д(х) значения определенного интеграла и вычисления нескольких ее значений приведен в листинге 7.3.
Листинг 7.3. Использование оператора интегрирования в функции пользователя
7.1.2. Об алгоритмах интегрирования
Результат численного интегрирования — это не точное, а приближенное значение интеграла, определенное с погрешностью, которая зависит от встроенной константы TOL. Чем она меньше, тем с лучшей точностью будет найден интеграл, но и тем больше времени будет затрачено на расчеты. По умолчанию TOL=0.001. Для того чтобы ускорить вычисления, можно установить меньшее значение TOL.
Если скорость расчетов имеет для Вас принципиальное значение, например при многократном вычислении интеграла внутри цикла, проявите осторожность, выбирая значение точности. Обязательно поэкспериментируйте на тестовом примере с характерной для Ваших расчетов подынтегральной функцией. Посмотрите, как уменьшение константы TOL сказывается на погрешности интегрирования, вычислив интеграл для разных ее значений и выбрав оптимальное, исходя из соотношения точность / скорость вычислений.
Отдавайте себе отчет в том, что при вводе в редакторе Mathcad оператора численного интегрирования, Вы, фактически, создаете самую настоящую программу. Например, программой является первая строка листинга 7.1, просто большая часть ее скрыта от Вашего взора разработчиками компании MathSoft. В большинстве случаев об этом не приходится специально задумываться, можно полностью положиться на Mathcad. Но иногда может потребоваться умение управлять параметрами этой программы, как мы уже рассмотрели на примере выбора константы TOL. Кроме нее, пользователь имеет возможность выбирать сам алгоритм численного интегрирования. Для этого:
Щелкните правой кнопкой мыши в любом месте на левой части вычисляемого интеграла.
В появившемся контекстном меню выберите один из четырех численных алгоритмов (рис. 7.2).
Рис. 7.2. Выбор алгоритма численного интегрирования
Обратите внимание, что, перед тем как один из алгоритмов выбран впервые, как показано на рис. 7.2, флажок проверки в контекстном меню установлен возле пункта AutoSelect (Автоматический выбор). Это означает, что алгоритм определяется Mathcad, исходя из анализа пределов интегрирования и особенностей подынтегральной функции. Как только один из алгоритмов выбран, этот флажок сбрасывается, а избранный алгоритм отмечается точкой.
Разработчиками Mathcad 11 запрограммированы четыре численных метода интегрирования:
Romberg (Ромберга) — дли большинства функций, не содержащих особенностей;
Adaptive (Адаптивный) — для функций, быстро меняющихся на интервале интегрирования;
Infinite Limit (Бесконечный предел) — для интегралов с бесконечными пределами ();
Singular Endpoint (Сингулярная граница) — для интегралов с сингулярностью на конце. Модифицированный алгоритм Ромберга для функций, не определенных на одном или обоих концах интервала интегрирования.
Старайтесь все-таки оставить выбор численного метода за Mathcad, установив флажок AutoSelect (Автоматический выбор) в контекстном меню. Попробовать другой метод можно, например, чтобы сравнить результаты расчетов в специфических случаях, когда у Вас закрадываются сомнения в их правильности.
Если подынтегральная функция "хорошая", т. е. не меняется на интервале интегрирования слишком быстро и не обращается на нем в бесконечность, то численное решение интеграла не принесет никаких неприятных сюрпризов. Приведем основные идеи итерационного алгоритма Ромберга, который применяется для большинства таких функций.
Сначала строится несколько интерполирующих полиномов, которые заменяют на интервале интегрирования подынтегральную функцию f(x). В качестве первой итерации полиномы вычисляются по 1,2 и 4 интервалам. Например, первый полином, построенный по 1 интервалу, — это просто прямая линия, проведенная через две граничные точки интервала интегрирования, второй — квадратичная парабола и т. д.
Интеграл от каждого полинома с известными коэффициентами легко вычисляется аналитически. Таким образом, определяется последовательность интегралов от интерполирующих полиномов: ilf i2, i4,... Например, по правилу трапеций i1=(b-a)*((f (a)+f (b) )/2 и т. д.
Из-за интерполяции по разному числу точек вычисленные интегралы ii, i2,... несколько отличаются друг от друга. Причем, чем больше точек используется для интерполяции, тем интеграл от интерполяционного полинома ближе к искомому интегралу, стремясь к нему в пределе бесконечного числа точек. Поэтому определенным образом осуществляется экстраполяция последовательности ilf i2, I4,... до нулевой ширины элементарного интервала. Результат этой экстраполяции J принимается за приближение к вычисляемому интегралу.
Осуществляется переход к новой итерации с помощью еще более частого разбиения интервала интегрирования, добавления нового члена последовательности интерполирующих полиномов и вычисления нового (N-ГО) приближения Ромберга JN.
Чем больше количество точек интерполяции, тем ближе очередное приближение Ромберга к вычисляемому интегралу и, соответственно, тем меньше оно отличается от приближения предыдущей итерации. Как только разница между двумя последними итерациями | JN-j11"11 становится меньше погрешности TOL или меньше TOL-|JN|, итерации прерываются, и JN появляется на экране в качестве результата интегрирования.
Об алгоритме полиномиальной сплайн-интерполяции см .гл. 15.
