Введение в программные системы и их разработку

Системы компьютерной математики (СКМ)

Разбить на страницы
Показывать лекцию целиком

12.1. История создания СКМ

Первый этап – компьютер, оправдывая свое название (в переводе с англ. "вычислитель"), работал как мощный программируемый калькулятор, способный быстро и автоматически (по веденной программе) выполнять сложные и громоздкие арифметические и логические операции над числами.

Успехи вычислительной математики и постоянно совершенствующиеся численные методы позволяют решить таким способом любую математическую задачу применительно к любой отрасли знаний. Важно отметить, что результат вычислений при этом представляется одним конечным числом в арифметическом виде, то есть при помощи десятичных цифр. Иногда результат представляется множеством (массивом, матрицей) таких чисел, но существо представления от этого не меняется – результат в виде конечного десятичного арифметического числа.

Однако такой результат часто не удовлетворял профессиональных математиков, и вот почему. Подавляющее большинство результатов нетривиальных математических вычислений в классической математике традиционно записывается в символьной форме: с использованием специальных общеизвестных чисел: $$\pi$$, $$e$$, $$С$$, а иррациональные значения – с помощью радикала. Считается, что в противном случае имеет место принципиальная потеря точности.

Другой классический пример, вызывающий замечание математика – выражение, знакомое любому школьнику:

$$sin^2(x) + cos^2(x)$$

всегда равное единице; а в компьютере либо будет предпринята попытка вычислить это выражение (с неизбежными ошибками округления), либо будет выдано сообщение о неопределенности аргумента Х и всякие дальнейшие действия будут прекращены.

На этом первый этап завершился...

Естественно, вслед за стремительным совершенствованием компьютерных систем человеку в компьютерных расчетах захотелось большего: почему бы не заставить компьютер выполнять преобразования традиционными для математики способами (дробно-рациональные преобразования, подстановки, упрощения, решение уравнений, дифференцирование и т.п.).

Их принято называть преобразованиями в символьном виде или аналитическими преобразованиями, а результат получать не как раньше – в виде одного числа, а в виде формулы.

К этому моменту практически все области человеческой деятельности оказались охваченными каждая своим собственным математическим аппаратом и обзавелись собственными пакетами прикладного программного обеспечения (ППО). При этом всем понадобился универсальный математический инструмент, ориентированный на широкий круг пользователей, которые не являются ни профессионалами в математике, ни программистами, воспитанными на узкоспециальных, малопонятных большинству конечных пользователей компьютерных языках.

Это привело к созданию компьютерных систем символьной математики, рассчитанных на широкие круги пользователей – непрофессионалов в математике. Так началась с середины 60-х годов ХХ века эра систем компьютерной математики (СКМ), по-английски CAS – Сomputer algebra system.

В конце 60-х годов в России на отечественных ЭВМ серии "Мир", разработанных под руководством академика В. Глушкова, была реализована СКМ на языке программирования "Аналитик", обладающая всеми возможностями символьных вычислений, впрочем, с весьма скромными, по нынешним понятиям, характеристиками.

Конечно, даже самые простые неинтеллектуальные компьютерные математические справочники представляют большой практический интерес – ведь ни один самый способный человек не в состоянии вместить в своей голове все математические законы и правила, созданные за многовековую историю человечества.

Данные об особенностях существующих СКМ приведены в табл. 12.1.

Современные СКМ и их возможности
Система Назначение и возможности Недостатки
Mathcad 13, Mathcad 14 Система универсального назначения в основном для непрофессиональных математиков и целей образования всех ступеней. Продуманный интерфейс представления данных в традиционной математической форме и изумительная графика на всех этапах работы, включая ввод. Ввод с помощью выбора из панелей инструментов или из меню практически без использования клавиатуры. Мощный и исчерпывающий набор операторов и функций. Множество примеров, электронных книг и библиотек, готовых решений практических задач. Ядро символьных вычислений импортировано из СКМ Maple. Предоставление серверных услуг профессионального пакета. Легкость переноса документа в другие приложенияДостаточно примитивные средства программирования. Дороговизна электронных книг и библиотек, отсутствие русифицированных версий самого пакета и дополнительных библиотек (книг). Затруднена символьная обработка дифференциальных уравнений. Не создается итоговый исполняемый *.exe-файл; для запуска документа необходимо наличие пакета СКМ Mathcad. Затруднения при выполнении тригонометрических преобразований
Maple V R4/R5/R6 Университетское высшее образование и научные расчеты. Мощное ядро символьных вычислений – возможности аналогичны СКМ Mathcad, содержащее до 3000 функций. Мощнейшая графика. Удобная справочная система. Средства форматирования документов Повышенные требования к аппаратным ресурсам. Отсутствие синтеза звуков. Ориентация на опытных пользователей и специалистов по математике. Все недостатки аналитических действий аналогичны СКМ Mathcad
Mathematica 5/7 Высшее образование и научные расчеты. Наиболее развитая система символьной математики. Единственная СКМ, обеспечивающая символьное решение дифференциальных уравнений. Совместимость с разными компьютерными платформами. Уникальная трехмерная графика. Поддержка синтеза звука. Развитые средства форматирования документов. Программный синтез звуков.Высокие требования к аппаратным ресурсам. Чрезмерная защита от копирования. Слабая защита от некорректных задач. Ориентация на опытных пользователей. Ввод задач на уникальном языке функционального программирования. Непривычная индикация функций запуска вычислений.
MATLAB 7.* Образование (в том числе техническое), научные расчеты, численное моделирование, и расчеты, ориентированные на применение матричных методов, при этом скаляр рассматривается как матрица 1х1. Уникальные матричные средства, обилие численных методов, описательная (дескрипторная) графика, высокая скорость вычислений, легкость адаптации к задачам пользователя благодаря множеству пакетов расширения системы. Развитый язык программирования с возможностями объектно-ориентированного программирования (ООП), совместимость с алгоритмическим языком JavaОчень высокие требования к аппаратным ресурсам. Практически отсутствует возможность символьных вычислений. Относительно высокая стоимость. Ввод задач на уникальном языке программирования

Рассмотрим внутреннюю архитектуру СКМ на примере наиболее мощной, по мнению ряда авторитетных специалистов [6], СКМ Mathematica, обладающей наиболее развитой системой символьной математики. На рис.12.1 представлена ее программная архитектура.

(рис 12.1) Архитектура обобщенной СКМ

Центральная часть – ядро (Kernel) системы СКМ реализует алгоритм функционирования СКМ, обеспечивает совместное функционирование всех ее частей, организует прием и интеллектуальную обработку запроса пользователя, а затем – вызов нужной процедуры решения. В ядре помещается большое количество встроенных функций и операторов системы. Их количество в современных СКМ может достигать многих тысяч. Например, ядро системы Mathematica 4 содержит данные более чем 5000 одних только интегралов, хотя для интегрирования используются только несколько встроенных функций.

Поиск и выполнение функций и процедур, встроенных в ядро СКМ, выполняется быстро, если их там не слишком много. Поэтому объем ядра ограничивают, но к нему добавляют встроенные в СКМ библиотеки процедур и функций, использующихся относительно редко. При этом общее число доступных пользователю математических функций ядра и этих встроенных библиотек достигает многих тысяч.

Кардинальное расширение возможностей СКМ и их приспособленность к нуждам конкретных пользователей для углубленного решения определенного круга задач (например, задач теоретической и прикладной статистики, векторного анализа) достигается за счет установки внешних пакетов расширения. Эти пакеты, приобретаемые отдельно, делают возможности СКМ практически безграничными.

Все эти библиотеки, пакеты расширений и справочная система современных СКМ (назовем их инструментами СКМ) содержат не только и не просто знания в области математики, накопленные за много веков ее развития (этим никого не удивишь: именно такие возможности характерны для широко распространенного класса ИПО – информационно-поисковых систем). Но восхищает, что эти инструменты удивительным образом автоматически и творчески используют такие знания для решения задач, где нужно выбрать и уметь применить один, единственный из многих десятков, неочевидный метод решения. Например, СКМ могут мгновенно найти неопределенный интеграл либо сразу же сообщить о невозможности его представления элементарными функциями – задача непростая, даже для профессионального математика. Не менее впечатляет и то, что если после получения искомой формулы перейти к началу документа и задать входящим в эту формулу параметрам конкретные числовые значения, мгновенно будет получен ее численный результат. В состав любой СКМ входит набор редакторов (на рис.12.1 они названы редакторами по направлениям): текстовый, формульный, графический редакторы, средства поддержки работы в сети и HTML(XML)-средства, пакеты анимации и аудиосредства.

Благодаря всем этим возможностям СКМ могут быть отнесены к программным продуктам самого высокого на сегодняшний день уровня – интеллектуального. Такие программы в настоящее время объединяются термином "базы знаний". Современные СКМ, по мнению признанных авторитетов [6, 7], предоставляет неискушенному пользователю возможности выпускника математического вуза в областях численных методов расчета, математического анализа, теории матриц и других общих разделах высшей математики, позволяющих получить конструктивные результаты.

Конечно, в абстрактных разделах математики, типа функционального анализа или вопросов "существования и единственности..." СКМ пока вряд ли могут быть полезны (кроме как для предоставления нужной справки, что очень даже немало), но в прикладных задачах, для которых СКМ и создавались, такие разделы математики обычно не задействованы.

12.2. Интегрированная Среда СКМ MathCad

Интегрированная Среда СКМ MathCad является системой СКМ универсального назначения и наиболее приспособлена для решения широкого спектра, а точнее –практически любых математических задач, в основном непрофессиональными математиками, а также для эффективного использования во всех областях сферы образования.

По сей день они остаются единственными математическими системами, в которых описание решения математических задач дается с помощью привычных математических формул и знакомых символов. Такой же вид имеют и результаты вычислений. СКМ MathCad не очень подходит для серьезной профессиональной научной деятельности математиков, она больше предназначена для решения не слишком изощренных математических задач, выполнения технических расчетов любой сложности, а главное – не имеет конкурентов в области образования. Благодаря высоким характеристикам, СКМ MathCad полностью оправдывает термин "CAD" в своем названии (Computer Aided Design), подтверждающий принадлежность к классу наиболее сложных и совершенных систем автоматического проектирования – САПР. Система MathCad является типичной интегрированной системой, то есть объединяющей в своем составе несколько обособленных программных средств для решения определенного круга самостоятельных задач.. Первоначально она была предназначена для сугубо численных вычислений и ориентирована под MS-DOS, но, начиная с версии 3.0 (1990 г.), работает под ОС Windows и имеет достаточно широкий набор средств для символьных и графических вычислений.

Все действия в СКМ MathCad сразу оформляются в виде документа, состоящего из рабочих листов, на которых помещается описание алгоритма, рабочие формулы, комментарии, иллюстрации, графики, таблицы. Форма такого документа максимально приспособлена для печати, передачи по сети Internet и не требует дополнительного редактирования. С другой стороны, этот документ, имеющий расширение .mcd, содержит в скрытом виде всю программу вычислений. Он может быть импортирован как для целей издания, так и для продолжения и совершенствования программных вычислений. Весь документ или отдельные его части могут быть заблокированы для редактирования путем задания пароля.

На рис.12.2 приведена архитектура СКМ MathCad. Центральным блоком являются два ядра: собственно ядро СКМ и ядро символьных вычислений, аналогичное СКМ Maple, приобретенное у разработчика – фирмы Waterloo Maple.

Встроенные в среду MathCad электронные книги (e-Books) содержат примеры, справки и типовые расчеты из различных областей науки, техники, экономики. Любой фрагмент из этих книг можно скопировать на рабочий лист документа и выполнить.

Библиотеки и пакеты расширений, ориентированные на решение различных прикладных задач, поставляются и устанавливаются разработчиком отдельно.

Мощный интерфейс СКМ MathCad не требует программирования при вводе заданий и индикации результатов – все это выполняется в традиционной форме на общепринятом языке математических символов и формул без применения каких-либо специальных команд или операторов. Показательно, что в каждом алгоритмическом языке простое возведение в степень, в меру фантазий разработчиков языка, выполняется при помощи уникальных собственных условных обозначений – всевозможных стрелочек, крышечек, двойных звездочек и Бог знает чего еще, а то и вовсе отсутствует и требует вызова специальных функций – как в языках семейства Си. В MathCad эта операция имеет привычный вид.

Интерфейс является визуальным – то есть практически любые действия в СКМ можно выполнять без помощи клавиатуры, просто выбирая нужные пункты меню или инструменты на панелях. В этом интерфейсе реализован принцип "WYSIWYG" – что видим на экране, то и получаем в работе и при выводе.

Интерфейс интеллектуален – конечно, здесь далеко до интеллекта Visual Studio-2010, но во многих случаях он не допустит ошибочных действий пользователя.

Упомянутый входной язык ввода является интерпретирующим, то есть промежуточные результаты появляются по мере ввода очередной формулы. Сама же СКМ MathCad написана на одном из самых мощных языков – С++. По мере того, как пользователь набирает на рабочем листе текст алгоритма вычислений, среда сама составляет скрытую программу на промежуточном языке связи, которая затем сохраняется в виде файла с расширением .mcd. К сожалению, исполняемого файла с расширением .ехе пакет MathCad не формирует – для работы с импортированным документом необходимо наличие установленного приложения MathCad. А вот вставить образ документа либо отдельный его фрагмент в текстовый редактор, например, MS WORD, через системный буфер никакого труда не представляет. Именно так и вставлялись все иллюстрации в этой главе. Рекомендую после такой вставки фрагмента вызвать на нем контекстное меню – пункт "Формат рисунка…/Размер" и установить в окне "Масштаб по высоте" 128% – для шрифта 12-го кегля наиболее подходящий.

(рис 12.2) Архитектура СКМ MathCad

Объектами рабочего листа могут быть формульные текстовые или графические блоки. Действия над блоками выполняются в строгом порядке слева направо, сверху вниз. Блоки, готовящие операции, должны предшествовать выполнению этих операций. При этом организована сквозная передача данных от одного объекта к другому. Изменение входных данных мгновенно обеспечивает пересчет результатов.

Контент (содержание) этой СКМ можно рассматривать в качестве исключительно мощного справочного средства по математике. Кроме того, в СКМ MathCad интегрированы формульный, текстовый и графический редакторы, позволяющие упростить ввод многоэтажных сложнейших формул и получить итоговый документ. Промежуточные действия в ходе символьных преобразований в СКМ MathCad скрыты от пользователя, но не следует забывать, что для получения конечного результата используются сложнейшие рекурсивные алгоритмы, мало знакомые широкому пользователю и зачастую не оптимальные на взгляд математика. При этом никто не запрещает пользователю пошаговое выполнение и индикацию знакомых из литературы алгоритмов, что значительно упрощает решение при известном конечном результате. В СКМ MathCad не создается итоговый исполняемый *.exe файл, значит, для просмотра готового (например, импортированного) документа требуется наличие установленного пакета СКМ MathCad.

Перечислим основные возможности Среды MathCad.

Общие возможности

  • Разработка и редактирование документов, содержащих как математические формулы любой сложности, так и все встроенные инструменты Среды MathCad. Подготовка этих документов к изданию или передаче по сети Internet.
  • Использование общепринятого расширяемого языка разметки XML как универсального способа организации обмена данными с другими приложениями. Это позволяет преобразовывать файлы MathCad в HTML-страницы и в формат PDF.
  • Возможность вставки в документ широкого спектра объектов (см. рис.12.3.)
  • Разработка веб-документов и сетевые возможности по их пересылке, получению обновлений и поддержки.
  • Получение документов MathCad по сети и выполнение расчетов в этих документах.
  • Получение через Internet и подключение новых книг расширения для реализации дополнительных возможностей среды MathCad.
  • Доступный официальный форум.
  • Использование серверных услуг среды MathCad (Mathcad Application Server) – удаленное подключение к пакету MathCad в полной комплектации через стандартный веб-браузер Internet, даже если MathCad не установлен на компьютере.
  • Импорт документов из MS Access и MS Excel и математическая обработка данных из этих документов.
  • Наличие обширных справочных материалов по математике и основных физических констант, а также большое количество задач с готовыми решениями по многим разделам науки и техники.
  • Выполнение вычислений любой сложности – использование среды MathCad в качестве сверхмощного научного интеллектуального калькулятора с применением богатой библиотеки встроенных функций ( более 680; для сравнения, в MS Excel их около 200), с точностью до 17 значащих цифр (а при использовании специальных операторов – и до 250) и с неограниченными возможностями запоминания промежуточных результатов. При этом имеется возможность вычислений как по введенной в документ формуле целиком, так и по отдельному, выделенному фрагменту формулы.
  • Использование графического редактора для построения двумерных и трехмерных графиков любой сложности, наглядных диаграмм и не только для простого построения, но и для связи графика с формулой, при которой изменение параметра сразу отражается на кривой графика. Имеется также возможность создание объектов движущейся анимации и просмотра импортированных файлов, например, видеофильмов в формате AVI при помощи встроенного в среду MathCad проигрывателя Playback.
  • Действия с размерностями.
  • Численные методы вычислений

  • Решение уравнений и систем уравнений, как линейных, так и нелинейных. Нахождение корней многочлена.
  • Решение неравенств.
  • Вычисление определенного интеграла.
  • Вычисление несобственных интегралов.
  • Вычисление кратных интегралов.
  • Численные методы дифференцирования.
  • Численное решение обыкновенных дифференциальных уравнений – задача Коши.
  • Численное решение обыкновенных дифференциальных уравнений – решение краевой задачи.
  • Решение дифференциальных уравнений в частных производных.
  • Вычисление суммы и произведения членов ряда.
  • Исследование функций и численное определение экстремумов функций одной и нескольких переменных, построение асимптот.
  • Решение оптимизационной задачи методом линейного программирования.
  • Символьные вычисления

  • Выполнение точных вычислений с представлением результатов в традиционной математической форме – с записью ответа в форме радикала и специальных иррациональных чисел $$\pi$$, $$e$$, $$С$$.
  • Символьные преобразования математических выражений целиком или их фрагментов:
  • разложение выражений в более простые;
  • приведение подобных;
  • разложение на множители;
  • приведение к общему знаменателю;
  • вынесение общего множителя;
  • разложение на элементарные дроби;
  • вычисление коэффициентов полиномов;
  • выполнение подстановок.
  • Аналитическое решение уравнений и систем уравнений.
  • Дифференцирование в символьной форме определение производных любых порядков.
  • Аналитическое определение первообразной.
  • Построение касательной и нормали к плоской кривой и к поверхности.
  • Аналитическое вычисление определенного интеграла.
  • Символьное вычисление кратных интегралов.
  • Решение неравенств.
  • Аналитическое вычисление предела.
  • Аналитическое вычисление суммы ряда конечного или бесконечного.
  • Аналитическое вычисление произведения членов ряда конечного или бесконечного.
  • Аналитическое вычисление суммы/произведения членов ряда конечного или бесконечного, когда пределы и шаг изменения индекса члена ряда задаются (например, сложить четные числа от $$10$$ до $$10+к$$.)
  • Разложение в ряд Тейлора.
  • Разложение в ряд Фурье.
  • Символьное преобразование Фурье и Лапласа – прямое и обратное.
  • Операции с матрицами в символьной форме: умножение и сложение матриц, поиск обратной матрицы, вычисление определителя, поиск собственных значений и собственных векторов.
  • Работа с матрицами и матричные вычисления

  • Элементарные матричные действия: создание, импорт, заполнение матриц, задание матриц специального вида, умножение, сложение, транспонирование и сортировка матрицы в целом или ее фрагмента. Выполнение векторизации – однотипных действий над всеми элементами матрицы.
  • Вычисление определителя, размерности, ранга и следа матрицы, скалярное и векторное умножение векторов, вычисление якобиана, например, для перехода к другим системам координат в тройном интеграле. Вычисление собственных значений и собственных векторов, поиск максимального и минимального элемента матрицы.
  • Матричные преобразования: скалярное и векторное умножение векторов, поиск обратной матрицы и решение системы алгебраических линейных уравнений, всевозможные разложения матрицы на произведение матриц специального вида: двух треугольных – верхней и нижней (LU-преобразование), треугольной и ее же транспонированной (разложение Холецкого), ортогональной и верхней треугольной (QR-разложение), сингулярное разложение.
  • Интегрирование среды MathCad с матричной математической системой MATLAB и возможность использования ее аппарата открывает удивительные возможности эффективного решения матричных задач неограниченной сложности.
  • Решение дифференциальных уравнений

    Программирование

    Составление программ и выполнение расчетов на упрощенном процедурном алгоритмическом языке с возможностью использования всех процедурных конструкций: условных операторов, циклов, массивов, модуль-функций, модуль-процедур.

    Комплексные числа

  • Представление комплексных чисел в традиционной форме, возможность выполнения основных арифметических действия с ними.
  • Возможность автоматического получения результатов многих вычислений в виде комплексного числа (например, всех корней многочлена).
  • Возможность задания комплексного аргумента для многих библиотечных функций и получение математически корректного результата.
  • Обработка данных и финансовые расчеты

    Теория вероятностей и математическая статистика

    Математическое моделирование

    Специальные возможности по прикладным инженерным и научным расчетам

  • Обработка электрических сигналов и расчет электронных устройств.
  • Виртуальная генерация электрических сигналов и их обработка.
  • 12.3. Создание документа и общие приемы работы СКМ MathCad

    Главное меню и общие традиционные панели Windows: "Стандартная" и "Форматирование". Перечислим основные возможности среды MathCad.

    Общие возможности

  • Разработка и редактирование документов, содержащих как математические формулы любой сложности, так и все встроенные инструменты среды MathCad. Подготовка этих документов к изданию или передаче по сети Internet.
  • Использование общепринятого расширяемого языка разметки XML как универсального способа организации обмена данными с другими приложениями. Это позволяет преобразовывать файлы MathCad в HTML-страницы и в формат PDF.
  • Возможность вставки в документ широкого спектра объектов (см. рис.12.3.)
  • Разработка веб-документов и сетевые возможности по их пересылке, получению обновлений и поддержки.
  • Получение документов MathCad по сети и выполнение расчетов в этих документах.
  • Получение через Internet и подключение новых книг расширения для реализации дополнительных возможностей среды MathCad.
  • Доступный официальный форум.
  • Все математические действия выполняются при помощи девяти палитр (панелей инструментов), вызываемых, в свою очередь, из панели Мath. Они-то и позволяют получить полный букет всевозможных операторов и команд среды MathCad.

    Эти девять панелей представлены на рис.12.3, а на рис.12.4 показано назначение этих панелей.

    Интерфейс этих панелей отличается продуманностью и дружелюбием. Пока понадобятся только три: Сalculator, Сalculus, Symbolic – их и оставим, а остальные закроем. Панель Symbolic – основная панель инструментов для выполнения символьных вычислений. На рис.12.5 приводятся все ее элементы и их назначение.

    (рис 12.3) Девять основных палитр панели Мath (Математика) среды MathCad (рис 12.4) Назначение основных панелей среды MathCad (рис 12.5) Панель инструментов Symbolic

    Продемонстрируем простой пример — найдем сумму известного бесконечного ряда:

    $$1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-\frac{1}{11}+\frac{1}{13}-\frac{1}{15}+...$$

    по формуле $$\sum_{n=1}^{\infty} \left[(-1)^{n-1}\cdot \left(\frac{1}{2\cdot n -1} \right) \right]$$

    Для этого нужно последовательно: вызвать с панели Calculus вот такой символ $$\sum_{\blacksquare}^{\blacksquare} \blacksquare$$ и заполнить знакоместа суммы $$\sum_{n=1}^{\infty} \blacksquare$$

    (везде далее математические записи приводятся в том виде, как они выглядят в документе MathCad, откуда они и скопированы). Теперь следует выполнить такие действия.

    Ввести формулу $$\sum_{n=1}^{\infty} \left[(-1)^{n-1}\cdot \left(\frac{1}{2\cdot n -1} \right) \right]$$ при помощи панели Calculator

    С панели Symbolic вызвать оператор символьных преобразований $$\to$$ и нажать клавишу Enter.

    $$\sum_{n=1}^{\infty} \left[(-1)^{n-1}\cdot \left(\frac{1}{2\cdot n -1} \right) \right] \to \frac {\pi}{4}$$

    Результат верный. А ведь мы не набрали ни строчки кода – все делали методом визуального программирования, выбирая нужное с панелей.

    Теперь просуммируем такой гармонический ряд:

    $$1+\frac{1}{2}+\frac{1}{3}+\frac{1}{4}+\frac{1}{5}+\frac{1}{6}+...+\frac{1}{n}+...$$

    который, как известно, расходится, но если уменьшить его на самую малость – должен сойтись:

    Повторим все манипуляции с панелью Symbolic и получим маловразумительный результат

    $$\lim_{n\to\infty} \left[ \left(\sum_{i=1}^{n}\frac{1}{i}\right) - ln(n) \right] \to \gamma$$ float, 10 $$\to 0.5772156649$$

    Теперь понятно: это – постоянная Эйлера (она же – третий замечательный предел, обозначаемая как число "С"). Чтобы отбросить все сомнения, закажем ее поточнее, например, до 250 значащих цифр.

    $$\gamma\ float, 250$$$$\to 0.577215664901532860606512090082402431042159335\\9399235988057672348848677267776646709369470632917\\4674951463144724980708248096050401448654283622417\\3997644923536253500333742937337737673942792595258\\2470949160087352039481656708532331517766115286211\\ 99501508.$$

    К сожалению, в доступной автору литературе в полном виде эти данные не встречались, а попытки вычислить ее значение "в лоб", например, на С++ в формате данных double, дали только 64 значащие цифры, остальные 186 знаков – на совести разработчиков MathCad.

    12.4.Символьные расчеты в СКМ

    Символьные расчеты выполняются во встроенном символьном процессоре путем вызова нужного оператора с панели инструментов Symbolic (либо при помощи главного меню).

    Запуск на выполнение символьных действий выполняется при помощи оператора вывода $$\to$$ и нажатия клавиши Enter. Результат получается, соответственно, в символьной форме.

    Примеры простых символьных расчетов:

    $$\sqrt{27} \to 3\cdot \sqrt{3}$$ $$\frac{1}{2}+\frac{1}{3} \to \frac{5}{6}$$

    Результат здесь получился в таком же виде, как если бы мы выполняли действия вручную – с корнями, или в виде обыкновенной дроби. При выполнении численных расчетов (оператор = на панели "Calculator") результат будет таким:

    $$\sqrt{27} =5.196$$ $$\frac{1}{2}+\frac{1}{3} =0.833$$

    Вводим теперь классическое соотношение:

    $$sin(x)^2+cos(x)^2 \to cos(x)^2+sin(x)^2$$

    и с удивлением обнаруживаем, что ничего не получилось. А, собственно, чего еще можно было ожидать, даже не задав СКМ своих требований. Для этого используются специальные операторы с панели Symbolic. С их помощью и выполняются все упрощения математических выражений и алгебраические преобразования. Наиболее универсальный из этих операторов – simplify (упростить).

    $$sin(x)^2+cos(x)^2 simplify \to 1$$

    Интересно сравнить результаты решения одного и того же, например, квадратного уравнения в символьной форме:

    $$x^2-4x+1 solve $$\begin{pmatrix} \sqrt{3}+2\\ 2-\sqrt{3} \end{pmatrix}$$$$

    и в численном виде:

    $$z:=$$\begin{pmatrix} 1\\ -4\\ 1 \end{pmatrix}$$$$ $$polyroots (z)=$$\begin{pmatrix} 0.268\\ 3.732 \end{pmatrix}$$$$

    Во втором случае полином задается вектором коэффициентов $$Z$$, а функция $$polyroots(z)$$ вычисляет его корни.

    Покажем, как выполняются алгебраические преобразования при упрощении математических выражений с помощью других операторов палитры Symbolic (напомним: они вызываются однократным кликом после набора исходного выражения).

    Первый пример: оператор expend (разложить), выполняющий перемножение и представляющий результат в виде многочлена. Выполним пример в пошаговом режиме.

  • Ввести исходное выражение (его можно скопировать как фрагмент из другого выражения).

    $$\frac {(x^3+x^2+a)\cdot(x+b)}{(x^2+1)\cdot(x-1)}$$

  • На палитре Symbolic "кликнуть" на слове expend (разложить) и нажать клавишу Enter.

    $$\frac {(x^3+x^2+a)\cdot(x+b)}{(x^2+1)\cdot(x-1)} expand \to \frac {bx^2+bx^3+x^3+x^4+ab+ax}{x^3-x^2+x-1}$$

  • Выполнилось разложение исходного выражения путем перемножения в числителе и знаменателе. Очень эффектно оператор expend работает в качестве справочного инструмента как показано ниже.

    $$sin(x+y+z) expand \to cos(x)*cos(y)*sin(z)+cos(x)*sin(y)*cos(z)+sin(x)*cos(y)*cos(z)-sin(x)*sin(y)*sin(z)$$

    Другой пример

    $$sin(4x)-cos(6x) expand,x \to 15*cos(x)^4*sin(x)^2-cos(x)^6+4*cos(x)^3*sin(x)-15*cos(x)^2*sin(x)^4-4*cos(x)*sin(x)^3+sin(x)^6$$

    При помощи оператора factor выполняется разложение на множители, например:

    $$(х^3+1) factor \to (x+1)(x^2-x+1)$$

    А вот как можно проверить, является ли число 199995 простым, – выполняем:

    $$199995 factor \to 3 \cdot 5 \cdot 67 \cdot 199$$

    убеждаемся, что это число непростое, поскольку в его разложении нашлись четыре простых множителя. А вот так можно привести выражение к общему знаменателю:

    $$\frac{z}{x-1} + \frac{y}{x+1} factor \to \frac{z-y+xy+xz}{(x-1)(x+1)} $$

    Оператор collect, наоборот, выносит за скобку общий множитель (через запятую нужно обязательно указать его вид):

    $$x^3y+x^3 collect,x \to (y+1)x^3$$

    Однако, несмотря на кажущуюся простоту, это действие (вынесение множителя) является очень сложной интеллектуальной задачей, поэтому оператор collect работает нечетко, требует подсказки – что нужно выносить, и используется достаточно редко.

    А вот оператор разложения на элементарные дроби parfrac и работает отлично, и используется широко; особенно он полезен при интегрировании рациональной функции.

    $$\frac{5x-1}{(x-1)(x+1)} parfrac \to \frac{2}{x-1} +\frac{3}{x+1}$$

    Теперь проинтегрировать правую часть не составит труда, если вспомнить, что первообразной для ($$1/х$$) является $$ln(x)$$.

    Часто при решении математических задач возникает необходимость замены переменной в формуле на заданное выражение. Запишем, например, такую формулу:

    $$\frac{x^2-1}{x} \cdot z$$, где $$z=\frac{x}{x+1}$$

    вызовем оператор substitute (заместить) c панели Symbolic

    $$\frac{x^2-1}{x} \cdot z substitute, \blacksquare=\blacksquare \to$$

    и в правый маркер (черный квадратик) поместим такую запись, задающую подстановку:

    $$\frac{x^2-1}{x} \cdot z substitute, z=\frac{x}{x+1} \to x-1$$

    Как видно, программа не только выполнила требуемую подстановку, но и упростила выражение.

    К подстановкам часто приходится прибегать при работе с MathCad и вот почему. Эффективность, например, решения уравнений или действие оператора разложения expend резко повышается, если исходная формула не содержит радикалов (корней).

    MathCad постоянно совершенствуется – два классических примера бессилия MathCad 12 [3 ]:

    $$\frac{\sqrt{x}+1}{x-1} simplify \to \frac{x^{\frac{1}{2}}+1}{x-1}$$

    $$\frac{sin(2x)}{2cos(x)} simplify \to \frac{1}{2} \cdot \frac{sin(2x)}{cos(x)}$$

    в MathCad 14 решаются легко:

    $$\frac{\sqrt{x}+1}{x-1} simplify \to \frac{1}{\sqrt{x}-1}$$

    $$\frac{sin(2x)}{2cos(x)} simplify \to sin(x)$$

    Часто на практике требуется выполнить одновременно несколько последовательных преобразований формулы с целью ее упрощения. Для этого служит оператор simplify ("упростить"). Можно сказать, что с его помощью выполняется, в некотором смысле, комплексное упрощение. Оттого он и наиболее востребован.

    Например:

    $$e^{ln(a^2-1)} simplify \to a^2-1$$

    Вычисление пределов в среде MathCad отработано надежно и фундаментально, поскольку пределы – основа математического анализа. Про первый замечательный можно даже и не говорить – идеально. Равно как и второй.

    С правилом Лопиталя СКМ справляется без проблем:

    $$\lim_{n \to 0} \frac{(e^x-e^{-x})}{sin(x)} \to 2$$

    И переходить к пределу логарифма с последующим потенцированием среда MathCad тоже умеет:

    $$\lim_{n \to 0} \left(\frac{1}{x} \right) ^{tan(x)} \to 1$$

    $$\lim_{n \to \infty} \left( 1+\frac{1}{2x} \right) ^{x} \to \sqrt{e}$$

    Могут быть вычислены и односторонние пределы. В следующем хрестоматийном [1] примере предел функции:

    $$y=\frac{1}{1+e^{\frac{1}{x}}}$$

    в точке $$х=0$$ не существует,

    $$\lim_{n \to 0} \frac{1}{1+e^{\frac{1}{x}}} \to undefined$$

    тогда как односторонние могут быть определены. Что с успехом и выполняет MathCad .

    $$\lim_{n \to 0^-} \frac{1}{1+e^{\frac{1}{x}}} \to 1$$ $$\lim_{n \to 0^+} \frac{1}{1+e^{\frac{1}{x}}} \to 0$$

    Рассмотрим несколько изящных примеров, показывающих возможности вычисления пределов и одновременно красиво демонстрирующих основы математического анализа – нахождение производной классическим способом как предела отношения приращения функции к приращению аргумента при неограниченном уменьшении последнего. Получим известную формулу для $$(log_ax)'$$

    $$\lim_{\delta \to 0} \frac{(log(x+\delta,a)-logg(x,a)}{\delta} \to \frac{1}{x \cdot ln(a)}$$

    Здесь нетрудно догадаться, что в символике MathCad $$(logax)$$ и $$tg(x)$$ изображаются как $$log(x,a)$$ и $$tan(x)$$ соответственно. Успешно решается и более сложный пример:

    $$\lim_{\delta \to 0} \frac{(ln(tan(x+\delta))-ln(tan(x)))}{\delta} \to \frac{tan(x)^2+1}{tan(x)}$$

    А вот совсем простую задачу:

    $$\lim_{\delta \to 0} \frac{\left[(x+\delta)^n-x^n \right]}{\delta}$$

    в общем виде решить не получается – нужно задать конкретное значение $$n$$.

    Для показательной функции $$a^x$$:

    $$a^{x+\delta}-a^x parfrac, a^x \to a^{\delta} \cdot a^x-a^x$$

    $$\lim_{\delta \to 0} \frac{\left(a^{x+\delta}-a^x \right)}{\delta} \to a^x \cdot ln(a)$$

    А теперь еще забавней – проинтегрируем функцию:

    $$y=a^x$$

    по определению через предел интегральной суммы. Здесь особенность – верхний предел зададим параметрически через $$Х$$. Для этого составим интегральную сумму:

    $$\lim_{n \to \infty} \sum_{k=0}^n \left[ \left( \frac{x}{n} \right) \cdot a^{x{\frac{k}{n}}} \right]$$

    и вычислим ее в MathCad:

    $$\lim_{n \to \infty} \sum_{k=0}^n \left[ \left( \frac{x}{n} \right) \cdot a^{x{\frac{k}{n}}} \right] \to \frac{a^x-1}{ln(a)}$$

    При этом все константы следует собрать вместе в постоянную интегрирования $$С$$:

    $$ \frac {a^x-1}{ln(a)}=\frac{a^x}{ln(a)}+C$$

    и тогда имеем первообразную, а заодно и красивую демонстрацию теоремы Ньютона-Лейбница.

    Теперь вычисление суммы ряда. Все очень просто и правильно:

    $$ \sum_{n=0}^{\infty} \frac{x^n}{n!} \to e^x$$

    Воспользуемся известным многим поколениям абитуриентов пособием СканавиС.И.[ 8] – задача № 4.077 из раздела "В", решение которой показывает не только "более высокое качество усвоения школьной программы <...> но и позволит экзаменующемуся обнаружить способность к самостоятельному логическому мышлению" [9].

    $$\sum_{n=1}^{m} \left[n \left(2^n \right) \right] \to 2^{m+1} \cdot (m-1) -\frac{m(m+1)}{2}+2$$

    Рассмотрим разложение в ряд Тейлора. Оно выполняется при помощи оператора Series c панели Simbolic. В маркеры оператора Series последовательно заносятся через запятую: исходная функция, имя аргумента, количество членов ряда.

    $$(cos(x)) series,x=0,6 \to 1-\frac{x^2}{2} +\frac{x^4}{24}$$

    Теперь зададим 44 члена

    $$(cos(x)) series,x=0,44 \to 1-\frac{x^2}{2} +\frac{x^4}{24} -\frac{x^6}{720}$$

    Решение уравнений – одна из самых актуальных и одновременно самых сложных задач в среде MathCad. Оно может быть выполнено аналитически, численно или графическим способом. Аналитический способ решения предпочтителен, поскольку, не говоря об отсутствии погрешностей вычисления, его вид позволяет детально проанализировать результаты и легко и наглядно использовать их в последующих исследованиях либо в практических целях. К сожалению, возможность аналитического решения диктует жесткие условия, которые мы не будем обсуждать. Отметим, например, что переменные должны быть в степени не выше четвертой (за исключением частных случаев), а используемые функции – одинакового вида. На практике, в прикладных задачах, любое соотношение, полученное в виде композиции элементарных функций (а не как решение сложной системы дифференциальных уравнений), является ярким событием. Вся масса уравнений, приводимых в учебных пособиях, является материалом, специально подобранным в чисто учебных целях.

    Самым универсальным способом решения уравнений является графический, возможности использования которого в MathCad обширны.

    Найдем в общем виде корни полиномиального уравнения одной переменной (степенного многочлена) – это наиболее часто встречающаяся практическая задача. Зададим исходный полином четвертой степени

    $$a ullet x^4+b ullet x^3+c ullet x^2+d ullet x+g=0$$

    Среда MathCad выполняет поиск решения уравнения одной переменой посредством оператора salve c панели "Simbolic". Задача успешно выполняется, и хотя выдается сообщение, что не хватает ресурсов для вывода решения на экран, и полюбоваться им нельзя,

    но само решение получено и для дальнейших вычислений им можно пользоваться.

    Попробуем получить это решение другим способом: через пункт Simbolic главного меню. Решение получено и в этом случае выводится на экран, но его размеры (более 40-ка страниц текста) превышают возможности буфера ОС, и даже скопировать его по частям не удается. Так проявляется еще одна проблема символьных расчетов, особенно для решений в общем виде – громоздкие выражения, как правило, неудобные для анализа и последующих преобразований. Выход – упрощать выражения, например, разложением в степенные ряды.

    Как иллюстрация, на рис.12.6 приводится для кубического уравнения: формула для одного из корней – целиком, а для другого корня – только фрагмент формулы. Размеры и здесь впечатляют.

    Теперь попробуем решить полиномиальное уравнение с заданными постоянными коэффициентами. Составим заготовку

    $$(x-11)(x-222)(x-3333)(x-44444)(x-5555555)$$

    и при помощи оператора expand получим полином:

    $$(x-11)(x-222)(x-3333)(x-44444)(x-5555555) expand \to x^5-5603564x^4+266881461885x^3-884847515133875x^2+19239696969998319834x-2009655257834454120$$

    (рис 12.6) Первый корень и фрагмент второго корня кубического уравнения

    Полученные коэффициенты перенесем через буфер ОС в текстовый файл .txt, созданный, например, при помощи приложения ОС "Блокнот", а оттуда вернем обратно через буфер ОС в MathCad, который перед тем перезагрузим, чтобы исключить возможность "подсказки" (заодно убедимся, как легко и удобно переносить числа в текстовый документ и обратно. А вот простейшее выражение, содержащее, например, символ радикала, запомнить можно, но вернуть не получится).

    Никаких трудностей не возникло, хотя размеры чисел значительно превосходят представление данных целого типа для многих алгоритмических языков высокого уровня. Даже в случае полинома пятой степени решение легко получается в символьном виде, для этого следует: вставить оператор solve c панели Symbolic, через запятую указать имя аргумента "$$х$$" и нажать Enter.

    $$x^5-5603564x^4+266881461885x^3-884847515133875x^2+19239696969998319834x-2009655257834454120 solve,x \to $$\begin{pmatrix} 11\\ 222\\ 3333\\ 44444\\ 5555555 \end{pmatrix}$$$$

    В том, что решение найдено именно в символьном виде, а не численно, легко убедиться, записав исходный полином с иррациональными корнями, например:

  • Подготовим полином:

    $$(x- \sqrt{5})(x-2)(x-3)(x-4)(x-5) expand,x \to 120x-71\sqrt{5}x^2+14 \sqrt{5}x^3-\sqrt{5}x^4-154x^2+71x^3-14x^4+x^5+154 \sqrt{5}x-120 \sqrt{5} collect \to x^5+(-\sqrt{5}-14)x^4 +(14 \sqrt{5}+71)x^3+(-71\sqrt{5-154})x^2+(154 \sqrt{5}+120)x-120 \sqrt{5}$$

  • Найдем решение:

    $$x^5+(-\sqrt{5}-14)x^4 +(14 \sqrt{5}+71)x^3+(-71\sqrt{5-154})x^2+(154 \sqrt{5}+120)x-120 \sqrt{5} solve,x \to $$\begin{pmatrix} 2\\ 3\\ 4\\ 5\\ -\sqrt{5} \end{pmatrix}$$$$

  • Очевидно, что ответ получен в символьной форме.

    По данным [6], СКМ MathCad при аналитическом решении сначала пытается найти ответ в символьном виде, а в случае неудачи переходит к численному решению задачи автоматически.

    Решение неравенств считается одной из самых сложных тем школьной математики, поскольку требует не только навыков выполнения математических преобразования, но и умения логически анализировать поведение функций в области допустимых значений.

    Пример, неверно решаемый в СКМ MathCad 13:

    $$\frac{\sqrt{x}-3}{x-2} > 0 solve,x \to $$\begin{pmatrix} x < 2\\ 9 < x \end{pmatrix}$$$$

    Х должен быть не меньше $$0$$; правильно он решен в СКМ MathCad 14, да и ответ выглядит привлекательней:

    $$\frac{\sqrt{x}-3}{x-2} > 0 solve,x \to 9 < x \lor 0 \le x < 2$$

    Рассмотрим аналитическое дифференцирование. Поскольку производная любой элементарной функции может быть определена по жестко установленному алгоритму, среда MathCad всегда с успехом это выполняет. Вызовем оператор дифференцирования

    $$\frac{d}{d \blacksquare} \blacksquare$$

    с панели Symbolic и занесем в него исходное выражение $$Х^Х$$:

    $$\frac{d}{dx} x^x$$

    результат получается после выполнения оператора $$\to$$.

    $$\frac{d}{dx} x^x \to x \cdot x^{x-1}+x^x \cdot ln(x)$$

    Проверим

    $$\int x \cdot x^{x-1}+x^x \cdot ln(x) dx \to x^x$$

    В случае аналитического интегрирования сложнее: и жестко заданного алгоритма нет, и, вообще, в элементарных функциях не для каждой существует первообразная. Интегрирование – это искусство. MathCad и здесь на высоте. Хотя при решении следующего интеграла в общем виде выдается только один вариант (для действительных корней знаменателя),

    $$\int \frac{1}{x^2+bx+c}dx \to \frac {atan \left( \frac{ \frac{b}{2}+x}{\sqrt{c- \frac{b^2}{4}}} \right)}{\sqrt{c- \frac{b^2}{4}}}$$

    при решении с конкретными значениями – все верно.

    $$\int \frac{1}{x^2+4x+1}dx \to - \frac {\sqrt{3} atanh \left[ \frac{\sqrt{3}(x+2)}{3} \right] }{3}$$ - корни действительные,

    $$\int \frac{1}{x^2+x+1}dx \to - \frac { 2 \sqrt{3} atan \left[ \frac{2 \sqrt{3} \left (x+\frac{1}{2} \right) }{3} \right] }{3}$$ - корни мнимые.

    Теперь сложнее:

    $$\int \frac {1}{(x^2+4x+1)^2}dx \to \frac{\sqrt{3}ln(x+\sqrt{3}+2)}{36} - \frac{\sqrt{3}ln(x-\sqrt{3}+2)}{36} - \frac {\frac{x}{6} + \frac{1}{3}}{x^2+4x+1}$$

    Проверим:

    $$\frac{d}{dx} \left( \frac{\sqrt{3}ln(x+\sqrt{3}+2)}{36} - \frac{\sqrt{3}ln(x-\sqrt{3}+2)}{36} - \frac {\frac{x}{6} + \frac{1}{3}}{x^2+4x+1} \right) \to simplify \ to \frac {1}{(x^2+4x+1)^2}$$

    Следующий пример демонстрирует интегрирование тригонометрических функций:

    $$\int \frac{1}{a+b \cdot sin(x)+c \cdot cos(x)} dx \to \frac{2atan \left[ \frac {b+tan \left( \frac{x}{2} \right) \cdot (a-c)}{\sqrt{a^2-b^2-c^2}} \right]}{\sqrt{a^2-b^2-c^2}}$$

    Решается и такой интеграл:

    $$\int e^{ax} cos(bx)dx \to \frac {e^{ax}(acos(bx)+bsin(bx))}{a^2+b^2}$$

    Читатель, несомненно, вспомнит достаточно изощренный способ его нахождения, сводящийся к интегрированию по частям и в результате – к получению уравнения относительно самого этого интеграла; решение этого уравнения и дает искомый результат [10].

    Среда MathCad также позволяет дифференцировать по параметру определенный интеграл с подынтегральной функцией и пределами интегрирования, зависящими от этого параметра:

    $$\frac{d}{dy} \int^{2y}_y (e^xy)dx \to e^{2y}-e^y-y(e^y-2e^{2y})$$

    Действия с матрицами охватывают весь стандартный набор операторов алгебры матриц. На панели Symbolic расположены три оператора: $$М^Т$$,$$ М^(-1)$$ и $$|M|$$ для транспонирования, обращения и поиска определителя соответственно. Остальные операторы выполняются при помощи функций (в количестве 47 для MathCad 14) раздела Vector and Matrix меню Insert / Function.

    В качестве примера приведем символьный расчет определителя матрицы 3*3:

    $$|M| \to \left| \begin{pmatrix} a b c\\ d e f\\ h q k \end{pmatrix} \right| \to bfh-bdk-afg+cdq-che+ake$$

    Связь с MS Excel достигается встроенными средствами и специальным расширением MathCad Add – In For Excel. В первом случае легко осуществляется вставка диапазона ячеек из Excel в переменную MathCad при помощи буфера ОС (команды "Копировать/Вставить"). Можно вставить и связать фрагмент таблицы Excel документ MathCad при помощи команды меню "Правка/Специальная вставка". При этом текущие изменения в документе Excel будут сразу же отражаться во вставленном в MathCad фрагменте, откуда их легко вручную можно скопировать в любую переменную MathCad. Но вот связать переменную MathCad с ячейкой Excel, чтобы все изменения выполнялись автоматически, можно только при помощи программного расширения MathCad Add – In For Excel.

    12.4. Решение дифференциальных уравнений в СКМ

    Решение дифференциальных уравнений (ДУ) является одной из самых сложных задач математики. Она возникает практически во всех областях знаний: в науке, в технике, в экономике. Как известно, дифференциальные уравнения делятся на обыкновенные (ОДУ) и дифференциальные уравнения в частных производных – по-другому их называют уравнениями математической физики. Последние и представляют более общий инструмент исследования, но большие трудности в их решении заставляют, по возможности, применять аппарат ОДУ. Это нашло отражение в средствах пакетов СКМ и, в частности, в MathCad, где приводится мощный и разнообразный аппарат работы с ОДУ.

    Методы их численного решения глубоко разработаны в вычислительной математике, широко алгоритмизированы и представлены в MathCad практически в полном объеме. Поэтому не будем подробно останавливаться на этой теме, а перейдем к аналитическим методам решения ДУ в MathCad.

    Сразу отметим, что в СКМ Mathematica и Marpl имеются встроенные блоки решения ОДУ в символьной форме; разработчики КСМ MathCad пошли другим путем: специального обособленного инструмента решения ОДУ в ней нет. Для решения ОДУ предлагается последовательно применять набор встроенных операторов. Ниже покажем, что это не является недостатком этого пакета.

    Большинство практических задач может быть сведено к аппарату линейных систем ДУ (ЛОДУ). С одной стороны, методы их аналитического решения и анализа хорошо разработаны и широко известны, а нелинейность в большинстве случаев можно исключить, разбив общую задачу на ряд частных подзадач без большого ущерба для точности.

    Известно, что решение ЛОДУ в общем виде равно сумме общего решения однородного ЛОДУ (с нулевой правой частью), и какого-либо частного решения неоднородного ЛОДУ.

    Покажем, как эта задача решается в СКМ Mathematica 5, где имеются встроенные блоки решения ОДУ. Для решения ЛОДУ используют встроенную функцию DSolve[ ] следующим образом.

    $$DSolve[x''[t]+4x'[t]==10Sin[2t],x[t],t]$$

    После исполнительной команды – одновременного нажатия клавиш Shift и Enter, сразу получим результат:

    $$DSolve[x''[t]+4x'[t]==10Sin[2t],x[t],t]$$

    $${{x[t] \to -1/4e^{-4t}C[1]+C[2]-Cos[2t]-1/2Sin[2t]}}$$

    Обратите внимание на несколько необычный способ записи функций: при помощи квадратных скобок; но это, равно как и исполнительная команда на выполнение вычислений одновременным нажатием клавиш Shift и Enter, – специфические особенности СКМ Mathematica.

    Для решения подобного уравнения СКМ MathСad, где такие решающие блоки отсутствуют, рекомендуется применять операторные методы – прямое и обратное преобразование Лапласа или Фурье. Напомним, что смысл этого метода заключается в переходе от искомой функции, называемой оригиналом, к особым интегральным функциям комплексного переменного $$s$$ – так называемым изображениям, в результате чего после подстановки изображения вместо оригинала в линейное ДУ операция дифференцирования относительно новой переменной заменяется операцией умножения на соответствующий новый аргумент $$s$$, а само ДУ $$n$$-й степени преобразуется в многочлен этой же степени относительно $$s$$, называемый характеристическим. Определив корни характеристического многочлена и выполнив обратный переход от изображения к оригиналу при помощи обратного преобразования Лапласа или Фурье, соответственно, легко можно отыскать решение исходного ДУ.

    Конкретные действия для решения указанной задачи следующие.

    Пусть дано исходное ЛОДУ:

    $$\frac{d^2}{dt^2} x(t) + 4 \frac {d}{dt}x(t):=10sin(2t)$$

    Его необходимо записать в форме с нулевой правой частью:

    $$\frac{d^2}{dt^2} x(t) + 4 \frac {d}{dt}x(t)-10sin(2t)$$

    Вызывать с панели Symbolic оператор laplace и задать исполнение $$\to$$:

    $$\frac{d^2}{dt^2} x(t) + 4 \frac {d}{dt}x(t)-10sin(2t) laplace, \blacksquare \to$$

    в результате получается малопонятное выражение, в котором обозначим изображение функции одной буквой, например, h, выражения для начальных значений функции и первой производной заменим, например, на Х0 и Х10, соответственно. После всех этих преобразований и замен будет получено следующее выражение:

    $$s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4}$$

    Очень неудобно. Беда еще, к сожалению, в том, что оператор laplace иногда отказывается работать.

    Поэтому проще самим написать изображение для уравнения (**) без помощи оператора laplace. При этом производные заменяются изображениями согласно известной теореме по образцу, приведенному в таблице 12.2.

    $$s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4}$$

    Результат применения преобразования Лапласа к производным различных порядков
    Производные оригинала Изображение производной
    $$X(t)$$ $$h$$
    $$X'(t)$$ $$s ullet h – X(0)$$
    $$X''(t)$$ $$s ullet (s ullet h – X(0)) – X'(0)$$
    $$X'''(t)$$ $$s ullet ( s ullet ( s ullet h – X(0)) – X'(0)) – X''(0)$$

    Здесь через $$X(0)$$, $$X'(0)$$, $$X''(0)$$ обозначены начальные условия для производных указанных порядков, в нашем примере они обозначены согласно таблице 12.3.

    Обозначения в примере (*) начальных условий для производных различных порядков
    Начальные условиядля производных Обозначения в рассматриваемом примере
    $$X(0)$$ $$X0$$
    $$X'(0)$$ $$X10$$

    Продолжить таблицу 2 в случае необходимости не представляет труда – последующая строка легко получается из предыдущей.

    Далее при самостоятельном задании изображения для уравнения (**) к правой части уравнения (*) отдельно применим оператор laplace:

    $$10sin(2t) laplace, t \to \frac {20}{s^2+4}$$

    Подставим в исходное уравнение (**) и получим следующее выражение:

    $$s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4}$$

    Разрешим это уравнение относительно $$Z$$ оператором solve и применим обратное преобразование Лапласа $$invlaplace$$ (оба с панели Symbolic)

    $$s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4} solve,h \to \frac {4X0+X10+ \frac{20}{s^2+4} +X0s}{s^2+4s}$$

    $$\frac {4X0+X10+ \frac{20}{s^2+4} +X0s}{s^2+4s} invlaplace,s \to X0+ \frac{X10}{4} - cos(2t)- \frac{e^{-4t}}{4} -\frac{sin(2t)}{2}- \frac{X10e^{-4t}}{4} +\frac {5}{4}$$

    Это и есть решение ЛОДУ (*), отличия от решения СКМ Mathematica – в форме представления постоянной интегрирования. В последнем случае оно содержат начальные условия в явном виде.

    12.5. Графические средства СКМ МathCad

    Для создания графиков в среде MathCad имеется встроенный программный инструмент – графический процессор (см. рис.12.2.).

    Возможности среды MathCad здесь впечатляют и могут удовлетворить любые, самые взыскательные требования пользователя, или лучше так – можно с уверенностью сказать, что среда МathСad удовлетворит не только любую прихоть пользователя, но, в свою очередь, сможет предложить ему инструмент, о существовании которого тот вряд ли догадывается.

    Приятно удивляет простота применения, что позволяет использовать графики не только как средство иллюстрации, но и как удобный инструмент вычислений, постоянно готовый к текущему отображению промежуточных результатов.

    На рис.12.7 приведена палитра(панель инструментов) меню Graph для отрисовки графиков, а в таблице 12.4 – назначение и возможности каждого инструмента.

    (рис 12.7) Палитра меню Graph
    Инструменты панели Graph
    Имя, англ. Наименование, русск. Назначение
    X-E Plot Построение двумерного графика Построение всевозможных графиков функции одного аргумента в прямоугольной декартовой СК
    Polar Plot Применение полярных координат Построение всевозможных графиков функции одного аргумента в полярной СК
    3D Bar Plot Трехмерная гистограмма Представление графика в виде множества трехмерных столбиков, высота которых пропорциональна аппликате
    Сontour Plot Контурный трехмерный график Представление поверхности графика изолиниями равного уровня
    3D Scatter Plot Точечный трехмерный график Представление поверхности графика множеством точек заданного цвета и формы
    Vector Field Plot Векторное поле Изображение в отдельных точках плоскости значение вектора в виде стрелки. Для 3D графика таким вектором является градиент
    Zoom Увеличение Увеличение выделенного фрагмента
    Х-У Trace Трассировка Фиксация координат выделенной точки графика
    Surface Plot Трехмерный график Обычный график функции двух переменных

    Кроме инструментов, приведенных в таблице 12.4, есть еще два, которые не приведены в палитре рис.12.7. Первый – мастер построения трехмерных графиков (3D Plot Wizard) – вызывается из главного меню (Insert/Graph/3D Plot Wizard) и существенно облегчает форматирование трехмерных графиков.

    Второй – окно форматирования рисунка с графиком – вызывается двойным левым щелчком на поле графика или из контекстного меню (КМ). Вид этого окна зависит от типа графика, оно содержит до 9 вкладок и позволяет выполнять с графиком любые манипуляции. Вот некоторые из них:

  • форматирование шкалы графика – задание масштаба (в том числе логарифмического), пределов изменения переменных, особенности изображения линий координатной сетки, а то и вовсе – убрать все оси и линии, кроме самого графика (чтобы получить отдельную картинку);
  • форматирование линии графика;
  • создание заголовков и подписей на осях СК;
  • задание по умолчанию параметров рисунка с графиком.
  • Для примера приведем последовательность действий при построении графика функции

    $$y=x^2$$ на интервале (-2, 2)

  • Введем определение функции $$y(x)$$.
  • Вызовем из палитры Graph инструмент X-E Plot.
  • Все будет выполнено автоматически после задания диапазона изменения $$Х$$ и указания функции на левом знакоместе шаблона:

  • При необходимости легко изменить диапазон как аргумента так и функции указанием нужных значений на соответствующих знакоместах.
  • Выполним трассировку графика – указание нужной точки графика: в нашем случае пусть это будет минимум функции $$y=x^2$$.

  • Выберем на палитре Graph инструмент Х-У Trace – откроется окно диалога, а на графике появится управляемый мышью указатель.
  • Установим опцию Track Data Point, в этом случае перекрестие указателя будет скользить только по кривой графика.
  • Скопируем координаты текущей позиции указателя в буфер.
  • Указанные действия иллюстрирует рис.12.8.

    Теперь построим график такой функции двух переменных:

    $$Z(x, y)=Sin(xy)$$

  • Определим функцию z(x,y).

    (рис 12.8) Выполнение трассировки графика для получения координат точки минимума
  • Вызовем из палитры "Graph" инструмент Surface Plot и поместим на нижнем знакоместе только имя функции теперь уже без указания аргументов (см. рис.12.9).

    (рис 12.9) Отображения графика функции Z(x,y)=Sin(xy), созданного в режиме автоматического задания диапазонов аргументов
  • Получилось что-то непонятное. Уменьшим диапазон по осям аргументов в четыре раза, для чего вызовем из КМ окно свойств, как показано на рис.12.10.

    (рис 12.10) Отображения графика функции Z(x,y)=Sin(xy), после уменьшения диапазонов аргументов в четыре раза
  • Теперь получилось подозрительно просто – опять увеличим эти диапазоны, а еще захватим график мышью и покрутим его в разные стороны; окончательно получим следующее (см. рис.12.11).

    (рис 12.11) Поворот графика функции Z(x,y)=Sin(xy) при помощи мыши
  • Еще одной изящной возможностью среды можно полюбоваться, снова запустив шаблон 3D графика и вызвав из главного меню (Insert/ Graph/3D Plot Wizard) функцию Polyhedron() – как это показано на рис.12.12, она позволяет изобразить один из 80-ти многогранников (подробные сведения о них приводятся в справочной системе МathСad):

    $$z:=Polyhedron(Str)$$,

    где $$Str$$ – аргумент в виде управляющей строки, которая в двойных кавычках содержит название многогранника ("cube" – куб), либо его порядковый номер ("#6" – тетраэдр). Все эти порядковые номера можно легко найти в справочной системе MathCad.

    (рис 12.12) Изображение многогранников при помощи функции Polyhedron() (рис 12.13) Использование функции Polylookup() для получения названия многогранника

    А желаете узнать, как по-английски правильно называется многогранник, составленный из шести квадратов и восьми треугольников? Взгляните на рис.12.13– там все очевидно.

    В заключение упомянем о возможности вставить в разрабатываемый документ анимацию – как при помощи команды Tools/Animation, открывающей окно создания и просмотра анимации, так и путем включения встроенного видеопроигрывателя View/Playback для просмотра любых внешних файлов в формате AVI.

    12.6. Справочная система и пакеты расширения СКМ MathCad

    Справочная система обладает развитыми возможностями и позволяет выбрать документ, содержащий функционирующий пример почти по любой теме работы с СКМ или пример его практического применения в сфере прикладных задач науки и техники. Все примеры – именно действующие, к тому же допускающие внесение изменений и редактирование. Это, в сочетании с интеллектуальными подсказками и автоматической поддержкой Сетевого сервисного центра поддержки фирмы, дает право говорить не просто о справочной системе, а о справочно-сервисном процессоре пакета.

    Меню Help СКМ MathCad приведено на рис.12.14. Раздел "Учебники" содержит справочные материалы общего характера

    (рис 12.14) Меню Help СКМ MathСad (рис 12.15) Пример вызова справочной таблицы. Переход к справочной таблице по размерам треугольника

    Справочные таблицы содержат обширные сведения по многим областям науки и техники. Пример обращения к конкретному разделу – "Площадь и периметр для треугольника" – показан на рис.12.15. При этом все листы таблиц Reference Tables –действующие документы MathCad: в них можно подставить свои данные и получить нужные результаты, а можно скопировать формулы и вставить их для использования в своих документах.

    Быстрые шпаргалки Quick Sheets – это примеры решенных разработчиками MathCad более сотни практических задач из различных отраслей знаний. На рис.12.16 в качестве примера представлен переход к задаче "Векторная алгебра". Все эти задачи находятся в состоянии полной готовности к использованию.

    Электронные книги e-Books представляют собой наборы готовых документов по определенной тематике. Они являются более сложными и предоставляют большие возможности, о которых можно судить из рис.12.17, где представлен лист содержания e-Book. Особенностью электронных книг является наличие листа содержания, предметный указатель, совершенная система переходов при помощи гиперссылок. Электронная книга открывается в собственном окне, снабженном специальными элементами управления и очень напоминающем традиционное окно браузера. Фирма-разработчик предлагает целую библиотеку таких e-Books. Кроме того, можно воспользоваться электронными книгами, созданными пользователями СКМ MathCad, либо самому разработать подобную книгу нужной тематики. При ее создании (как и при создании любого документа СКМ MathCad) можно использовать как аппарат гиперссылок для организации навигации, так и следующие традиционные встроенные элементы управления:

    (рис 12.16) Пример работы с быстрыми шпаргалками Quick Sheets. Переход к задаче "Векторная алгебра"

    Кроме того, в состав СКМ MathCad входят пакеты расширений – программные средства, обладающие всеми достоинствами вышеперечисленных сервисных программных средств и являющихся самыми совершенными инструментами готовых решений MathCad. От электронных книг они отличаются способностью внедрения в среду СКМ MathCad дополнительных библиотек встроенных функций.

    (рис 12.17) Содержание e-Book "Data Analysis Extensiоn Pack" ("Анализ данных") – фрагмент

    Заключение

    В главе приведен ознакомительный материал по СКМ и наиболее яркому и популярному среди студентов пакету СКМ MathCad. Предлагаемый учебник и предназначен, главным образом, для такого читателя. Поэтому в круг рассматриваемых вопросов авторы сознательно не включили многие мощные возможности пакета СКМ MathCad, такие как средства векторного анализа и матричной алгебры, дифференциальную геометрию, решение дифференциальных уравнений в частных производных, численные методы решения алгебраических уравнений, вероятностные расчеты, статистику и обработку данных, математическое моделирование, обработку сигналов и расчет электронных устройств, виртуальный осциллограф и многое другое.

    Основной упор делался только на разделы математики, близкие и знакомые студенту гуманитарного или инженерного вуза. Возможности СКМ MathCad несравненно более широки, о чем можно судить хотя бы из приводимого в 12.2 их перечисления. Узкий специалист наверняка найдет в нем математический инструмент нужного направления и будет успешно использовать его в своей практике.

    Достоинства СКМ MathCad как справочного инструмента и мощного редактора математических текстов не вызывают сомнений, также бесспорны его возможности в качестве совершенного калькулятора для научных расчетов.

    Трудно переоценить значение СКМ в сфере образования. В 70-х годах прошлого века курсовые работы по математике выполнялись на механических вычислительных машинах (арифмометрах) "Феликс" и требовали многих дней кропотливой работы, которая выполняется в СКМ за доли секунды. Появилась возможность, образно говоря, "пощупать математику руками".

    Более того, СКМ MathCad в полном смысле является высокоинтеллектуальной базой знаний. Наличие интеллекта СКМ в принципиальном толковании – вопрос очень тонкий. Действительно ли он есть? Или все это только искусное применение очень мощного инструмента и умение творчески истолковать нетривиальный результат? Оставим это философам. Но если определить интеллект программного продукта как способность решать сложные математические задачи, не только в случаях, когда технический ход решения не контролируется пользователем (а, может быть, просто неизвестен ему), но и в ситуации, когда общий алгоритм и выбор способа решения остаются за пределами его внимания, когда важна лишь твердая уверенность в принципиальном существовании такого решения, надежность самой СКМ и возможность оперативной и корректной проверки результата, например, обратным преобразованием, то все это в современных СКМ есть, или почти есть. Типичный примеры упомянутых задач – поиск первообразной или решение ЛОДУ. СКМ развиваются – было показано, что задачи, которые приводились как пример ограниченности творческих возможностей СКМ MathCad прежних версий, успешно решаются в новых. По-видимому, скоро подобных примеров вообще не останется.

    Были продемонстрированы достоинства символьных методов расчета и большие возможности современных СКМ по их реализации.

    Сравнительная оценка различных СКМ показывает, что для целей изучения математики и решения прикладных задач общего характера более всего подходит СКМ MathCad, а для узкоспециальных высокопрофессиональных задач предпочтительней СКМ Мathematica.

    Кратко перечислим перспективы совершенствования СКМ по обобщению приведенной литературы:

  • совершенствование серверных интернет-услуг СКМ;
  • совершенствование алгоритмов символьных вычислений, лозунг "Даешь любую задачу – и ЕГЭ, и конкурсную!";
  • дальнейшее развитие методов графической визуализации, интеллектуальное совершенствование интерфейса пользователя;
  • развитие программных средств СКМ MathCad;
  • поддержка современных аппаратных решений, многоядерных процессоров и новых технологий распараллеливания вычислений, нейронных архитектур;
  • расширение возможностей и скорости логического анализа, особенно при одновременной обработке многих тысяч переменных, интеграция с ГИС;
  • совершенствование алгоритмов решения дифференциальных уравнений;
  • новые алгоритмы вычисления корней особых уравнений с большим числом (несколько тысяч) неизвестных;
  • интеграция алгоритмов биоинформатики и генной инженерии, разработка других перспективных пакетов расширений.
  • Контрольные вопросы

  • Что такое СКМ? Когда стало возможно их создание?
  • Что вы знаете о создании отечественной СКМ?
  • Назовите особенности выполнения численных и символьных вычислений в СКМ.
  • Какие СКМ вам известны? Дайте им сравнительную оценку.
  • Какая СКМ наиболее приспособлена для использования в сфере образования? Почему?
  • Какие особенности интерфейса СКМ Mathematica вам известны?
  • Назовите основные составные части СКМ MathCad и их назначение.
  • Что такое сервер Mathcad Application Server и для чего он используется?
  • Какое расширение имеют файлы документов MathCad?
  • Создается ли в СКМ MathCad исполняемый .exe файл и какие особенности работы с документами MathCad из этого возникают?
  • Назовите основные панели инструментов СКМ MathCad и их назначение.
  • Как обозначена кнопка вызова панели Symbolic в СКМ MathCad и почему?
  • Какие действия с математическими выражениями можно выполнять при помощи основных операторов математических преобразований панели Symbolic СКМ MathCad?
  • Какой оператор панели Symbolic СКМ MathCad наиболее универсален для упрощения выражений?
  • Как выполнить аналитическое дифференцирование функции в СКМ MathCad и как проверить правильность результата?
  • В чем отличие способа решения ЛОДУ в СКМ MathCad и Mathematica?
  • Как решить ЛОДУ в СКМ MathCad и как проверить правильность результата?
  • Как найти преобразование Лапласа для элементарных функций? Как проверить результат?
  • Назовите способы импорта таблицы из MS EXCEL в документ СКМ MathCad.
  • Что такое e-Books в СКМ MathCad и как их вызывать?
  • Что такое быстрые шпаргалки Quick Sheets в СКМ MathCad и как ими пользоваться?
  • Почему в учебнике подробно описывается порядок аналитического решения полиномиального уравнения 4 степени, но не приводится результат?
  • Какие перспективы развития СКМ перечислены в учебнике? А какие перспективы видите вы?
  • Страницы:

    12.1. История создания СКМ

    Первый этап – компьютер, оправдывая свое название (в переводе с англ. "вычислитель"), работал как мощный программируемый калькулятор, способный быстро и автоматически (по веденной программе) выполнять сложные и громоздкие арифметические и логические операции над числами.

    Успехи вычислительной математики и постоянно совершенствующиеся численные методы позволяют решить таким способом любую математическую задачу применительно к любой отрасли знаний. Важно отметить, что результат вычислений при этом представляется одним конечным числом в арифметическом виде, то есть при помощи десятичных цифр. Иногда результат представляется множеством (массивом, матрицей) таких чисел, но существо представления от этого не меняется – результат в виде конечного десятичного арифметического числа.

    Однако такой результат часто не удовлетворял профессиональных математиков, и вот почему. Подавляющее большинство результатов нетривиальных математических вычислений в классической математике традиционно записывается в символьной форме: с использованием специальных общеизвестных чисел: $$\pi$$, $$e$$, $$С$$, а иррациональные значения – с помощью радикала. Считается, что в противном случае имеет место принципиальная потеря точности.

    Другой классический пример, вызывающий замечание математика – выражение, знакомое любому школьнику:

    $$sin^2(x) + cos^2(x)$$

    всегда равное единице; а в компьютере либо будет предпринята попытка вычислить это выражение (с неизбежными ошибками округления), либо будет выдано сообщение о неопределенности аргумента Х и всякие дальнейшие действия будут прекращены.

    На этом первый этап завершился...

    Естественно, вслед за стремительным совершенствованием компьютерных систем человеку в компьютерных расчетах захотелось большего: почему бы не заставить компьютер выполнять преобразования традиционными для математики способами (дробно-рациональные преобразования, подстановки, упрощения, решение уравнений, дифференцирование и т.п.).

    Их принято называть преобразованиями в символьном виде или аналитическими преобразованиями, а результат получать не как раньше – в виде одного числа, а в виде формулы.

    К этому моменту практически все области человеческой деятельности оказались охваченными каждая своим собственным математическим аппаратом и обзавелись собственными пакетами прикладного программного обеспечения (ППО). При этом всем понадобился универсальный математический инструмент, ориентированный на широкий круг пользователей, которые не являются ни профессионалами в математике, ни программистами, воспитанными на узкоспециальных, малопонятных большинству конечных пользователей компьютерных языках.

    Это привело к созданию компьютерных систем символьной математики, рассчитанных на широкие круги пользователей – непрофессионалов в математике. Так началась с середины 60-х годов ХХ века эра систем компьютерной математики (СКМ), по-английски CAS – Сomputer algebra system.

    В конце 60-х годов в России на отечественных ЭВМ серии "Мир", разработанных под руководством академика В. Глушкова, была реализована СКМ на языке программирования "Аналитик", обладающая всеми возможностями символьных вычислений, впрочем, с весьма скромными, по нынешним понятиям, характеристиками.

    Конечно, даже самые простые неинтеллектуальные компьютерные математические справочники представляют большой практический интерес – ведь ни один самый способный человек не в состоянии вместить в своей голове все математические законы и правила, созданные за многовековую историю человечества.

    Данные об особенностях существующих СКМ приведены в табл. 12.1.

    Современные СКМ и их возможности
    Система Назначение и возможности Недостатки
    Mathcad 13, Mathcad 14 Система универсального назначения в основном для непрофессиональных математиков и целей образования всех ступеней. Продуманный интерфейс представления данных в традиционной математической форме и изумительная графика на всех этапах работы, включая ввод. Ввод с помощью выбора из панелей инструментов или из меню практически без использования клавиатуры. Мощный и исчерпывающий набор операторов и функций. Множество примеров, электронных книг и библиотек, готовых решений практических задач. Ядро символьных вычислений импортировано из СКМ Maple. Предоставление серверных услуг профессионального пакета. Легкость переноса документа в другие приложенияДостаточно примитивные средства программирования. Дороговизна электронных книг и библиотек, отсутствие русифицированных версий самого пакета и дополнительных библиотек (книг). Затруднена символьная обработка дифференциальных уравнений. Не создается итоговый исполняемый *.exe-файл; для запуска документа необходимо наличие пакета СКМ Mathcad. Затруднения при выполнении тригонометрических преобразований
    Maple V R4/R5/R6 Университетское высшее образование и научные расчеты. Мощное ядро символьных вычислений – возможности аналогичны СКМ Mathcad, содержащее до 3000 функций. Мощнейшая графика. Удобная справочная система. Средства форматирования документов Повышенные требования к аппаратным ресурсам. Отсутствие синтеза звуков. Ориентация на опытных пользователей и специалистов по математике. Все недостатки аналитических действий аналогичны СКМ Mathcad
    Mathematica 5/7 Высшее образование и научные расчеты. Наиболее развитая система символьной математики. Единственная СКМ, обеспечивающая символьное решение дифференциальных уравнений. Совместимость с разными компьютерными платформами. Уникальная трехмерная графика. Поддержка синтеза звука. Развитые средства форматирования документов. Программный синтез звуков.Высокие требования к аппаратным ресурсам. Чрезмерная защита от копирования. Слабая защита от некорректных задач. Ориентация на опытных пользователей. Ввод задач на уникальном языке функционального программирования. Непривычная индикация функций запуска вычислений.
    MATLAB 7.* Образование (в том числе техническое), научные расчеты, численное моделирование, и расчеты, ориентированные на применение матричных методов, при этом скаляр рассматривается как матрица 1х1. Уникальные матричные средства, обилие численных методов, описательная (дескрипторная) графика, высокая скорость вычислений, легкость адаптации к задачам пользователя благодаря множеству пакетов расширения системы. Развитый язык программирования с возможностями объектно-ориентированного программирования (ООП), совместимость с алгоритмическим языком JavaОчень высокие требования к аппаратным ресурсам. Практически отсутствует возможность символьных вычислений. Относительно высокая стоимость. Ввод задач на уникальном языке программирования

    Рассмотрим внутреннюю архитектуру СКМ на примере наиболее мощной, по мнению ряда авторитетных специалистов [6], СКМ Mathematica, обладающей наиболее развитой системой символьной математики. На рис.12.1 представлена ее программная архитектура.

    (рис 12.1) Архитектура обобщенной СКМ

    Центральная часть – ядро (Kernel) системы СКМ реализует алгоритм функционирования СКМ, обеспечивает совместное функционирование всех ее частей, организует прием и интеллектуальную обработку запроса пользователя, а затем – вызов нужной процедуры решения. В ядре помещается большое количество встроенных функций и операторов системы. Их количество в современных СКМ может достигать многих тысяч. Например, ядро системы Mathematica 4 содержит данные более чем 5000 одних только интегралов, хотя для интегрирования используются только несколько встроенных функций.

    Поиск и выполнение функций и процедур, встроенных в ядро СКМ, выполняется быстро, если их там не слишком много. Поэтому объем ядра ограничивают, но к нему добавляют встроенные в СКМ библиотеки процедур и функций, использующихся относительно редко. При этом общее число доступных пользователю математических функций ядра и этих встроенных библиотек достигает многих тысяч.

    Кардинальное расширение возможностей СКМ и их приспособленность к нуждам конкретных пользователей для углубленного решения определенного круга задач (например, задач теоретической и прикладной статистики, векторного анализа) достигается за счет установки внешних пакетов расширения. Эти пакеты, приобретаемые отдельно, делают возможности СКМ практически безграничными.

    Все эти библиотеки, пакеты расширений и справочная система современных СКМ (назовем их инструментами СКМ) содержат не только и не просто знания в области математики, накопленные за много веков ее развития (этим никого не удивишь: именно такие возможности характерны для широко распространенного класса ИПО – информационно-поисковых систем). Но восхищает, что эти инструменты удивительным образом автоматически и творчески используют такие знания для решения задач, где нужно выбрать и уметь применить один, единственный из многих десятков, неочевидный метод решения. Например, СКМ могут мгновенно найти неопределенный интеграл либо сразу же сообщить о невозможности его представления элементарными функциями – задача непростая, даже для профессионального математика. Не менее впечатляет и то, что если после получения искомой формулы перейти к началу документа и задать входящим в эту формулу параметрам конкретные числовые значения, мгновенно будет получен ее численный результат. В состав любой СКМ входит набор редакторов (на рис.12.1 они названы редакторами по направлениям): текстовый, формульный, графический редакторы, средства поддержки работы в сети и HTML(XML)-средства, пакеты анимации и аудиосредства.

    Благодаря всем этим возможностям СКМ могут быть отнесены к программным продуктам самого высокого на сегодняшний день уровня – интеллектуального. Такие программы в настоящее время объединяются термином "базы знаний". Современные СКМ, по мнению признанных авторитетов [6, 7], предоставляет неискушенному пользователю возможности выпускника математического вуза в областях численных методов расчета, математического анализа, теории матриц и других общих разделах высшей математики, позволяющих получить конструктивные результаты.

    Конечно, в абстрактных разделах математики, типа функционального анализа или вопросов "существования и единственности..." СКМ пока вряд ли могут быть полезны (кроме как для предоставления нужной справки, что очень даже немало), но в прикладных задачах, для которых СКМ и создавались, такие разделы математики обычно не задействованы.

    12.2. Интегрированная Среда СКМ MathCad

    Интегрированная Среда СКМ MathCad является системой СКМ универсального назначения и наиболее приспособлена для решения широкого спектра, а точнее –практически любых математических задач, в основном непрофессиональными математиками, а также для эффективного использования во всех областях сферы образования.

    По сей день они остаются единственными математическими системами, в которых описание решения математических задач дается с помощью привычных математических формул и знакомых символов. Такой же вид имеют и результаты вычислений. СКМ MathCad не очень подходит для серьезной профессиональной научной деятельности математиков, она больше предназначена для решения не слишком изощренных математических задач, выполнения технических расчетов любой сложности, а главное – не имеет конкурентов в области образования. Благодаря высоким характеристикам, СКМ MathCad полностью оправдывает термин "CAD" в своем названии (Computer Aided Design), подтверждающий принадлежность к классу наиболее сложных и совершенных систем автоматического проектирования – САПР. Система MathCad является типичной интегрированной системой, то есть объединяющей в своем составе несколько обособленных программных средств для решения определенного круга самостоятельных задач.. Первоначально она была предназначена для сугубо численных вычислений и ориентирована под MS-DOS, но, начиная с версии 3.0 (1990 г.), работает под ОС Windows и имеет достаточно широкий набор средств для символьных и графических вычислений.

    Все действия в СКМ MathCad сразу оформляются в виде документа, состоящего из рабочих листов, на которых помещается описание алгоритма, рабочие формулы, комментарии, иллюстрации, графики, таблицы. Форма такого документа максимально приспособлена для печати, передачи по сети Internet и не требует дополнительного редактирования. С другой стороны, этот документ, имеющий расширение .mcd, содержит в скрытом виде всю программу вычислений. Он может быть импортирован как для целей издания, так и для продолжения и совершенствования программных вычислений. Весь документ или отдельные его части могут быть заблокированы для редактирования путем задания пароля.

    На рис.12.2 приведена архитектура СКМ MathCad. Центральным блоком являются два ядра: собственно ядро СКМ и ядро символьных вычислений, аналогичное СКМ Maple, приобретенное у разработчика – фирмы Waterloo Maple.

    Встроенные в среду MathCad электронные книги (e-Books) содержат примеры, справки и типовые расчеты из различных областей науки, техники, экономики. Любой фрагмент из этих книг можно скопировать на рабочий лист документа и выполнить.

    Библиотеки и пакеты расширений, ориентированные на решение различных прикладных задач, поставляются и устанавливаются разработчиком отдельно.

    Мощный интерфейс СКМ MathCad не требует программирования при вводе заданий и индикации результатов – все это выполняется в традиционной форме на общепринятом языке математических символов и формул без применения каких-либо специальных команд или операторов. Показательно, что в каждом алгоритмическом языке простое возведение в степень, в меру фантазий разработчиков языка, выполняется при помощи уникальных собственных условных обозначений – всевозможных стрелочек, крышечек, двойных звездочек и Бог знает чего еще, а то и вовсе отсутствует и требует вызова специальных функций – как в языках семейства Си. В MathCad эта операция имеет привычный вид.

    Интерфейс является визуальным – то есть практически любые действия в СКМ можно выполнять без помощи клавиатуры, просто выбирая нужные пункты меню или инструменты на панелях. В этом интерфейсе реализован принцип "WYSIWYG" – что видим на экране, то и получаем в работе и при выводе.

    Интерфейс интеллектуален – конечно, здесь далеко до интеллекта Visual Studio-2010, но во многих случаях он не допустит ошибочных действий пользователя.

    Упомянутый входной язык ввода является интерпретирующим, то есть промежуточные результаты появляются по мере ввода очередной формулы. Сама же СКМ MathCad написана на одном из самых мощных языков – С++. По мере того, как пользователь набирает на рабочем листе текст алгоритма вычислений, среда сама составляет скрытую программу на промежуточном языке связи, которая затем сохраняется в виде файла с расширением .mcd. К сожалению, исполняемого файла с расширением .ехе пакет MathCad не формирует – для работы с импортированным документом необходимо наличие установленного приложения MathCad. А вот вставить образ документа либо отдельный его фрагмент в текстовый редактор, например, MS WORD, через системный буфер никакого труда не представляет. Именно так и вставлялись все иллюстрации в этой главе. Рекомендую после такой вставки фрагмента вызвать на нем контекстное меню – пункт "Формат рисунка…/Размер" и установить в окне "Масштаб по высоте" 128% – для шрифта 12-го кегля наиболее подходящий.

    (рис 12.2) Архитектура СКМ MathCad

    Объектами рабочего листа могут быть формульные текстовые или графические блоки. Действия над блоками выполняются в строгом порядке слева направо, сверху вниз. Блоки, готовящие операции, должны предшествовать выполнению этих операций. При этом организована сквозная передача данных от одного объекта к другому. Изменение входных данных мгновенно обеспечивает пересчет результатов.

    Контент (содержание) этой СКМ можно рассматривать в качестве исключительно мощного справочного средства по математике. Кроме того, в СКМ MathCad интегрированы формульный, текстовый и графический редакторы, позволяющие упростить ввод многоэтажных сложнейших формул и получить итоговый документ. Промежуточные действия в ходе символьных преобразований в СКМ MathCad скрыты от пользователя, но не следует забывать, что для получения конечного результата используются сложнейшие рекурсивные алгоритмы, мало знакомые широкому пользователю и зачастую не оптимальные на взгляд математика. При этом никто не запрещает пользователю пошаговое выполнение и индикацию знакомых из литературы алгоритмов, что значительно упрощает решение при известном конечном результате. В СКМ MathCad не создается итоговый исполняемый *.exe файл, значит, для просмотра готового (например, импортированного) документа требуется наличие установленного пакета СКМ MathCad.

    Перечислим основные возможности Среды MathCad.

    Общие возможности

  • Разработка и редактирование документов, содержащих как математические формулы любой сложности, так и все встроенные инструменты Среды MathCad. Подготовка этих документов к изданию или передаче по сети Internet.
  • Использование общепринятого расширяемого языка разметки XML как универсального способа организации обмена данными с другими приложениями. Это позволяет преобразовывать файлы MathCad в HTML-страницы и в формат PDF.
  • Возможность вставки в документ широкого спектра объектов (см. рис.12.3.)
  • Разработка веб-документов и сетевые возможности по их пересылке, получению обновлений и поддержки.
  • Получение документов MathCad по сети и выполнение расчетов в этих документах.
  • Получение через Internet и подключение новых книг расширения для реализации дополнительных возможностей среды MathCad.
  • Доступный официальный форум.
  • Использование серверных услуг среды MathCad (Mathcad Application Server) – удаленное подключение к пакету MathCad в полной комплектации через стандартный веб-браузер Internet, даже если MathCad не установлен на компьютере.
  • Импорт документов из MS Access и MS Excel и математическая обработка данных из этих документов.
  • Наличие обширных справочных материалов по математике и основных физических констант, а также большое количество задач с готовыми решениями по многим разделам науки и техники.
  • Выполнение вычислений любой сложности – использование среды MathCad в качестве сверхмощного научного интеллектуального калькулятора с применением богатой библиотеки встроенных функций ( более 680; для сравнения, в MS Excel их около 200), с точностью до 17 значащих цифр (а при использовании специальных операторов – и до 250) и с неограниченными возможностями запоминания промежуточных результатов. При этом имеется возможность вычислений как по введенной в документ формуле целиком, так и по отдельному, выделенному фрагменту формулы.
  • Использование графического редактора для построения двумерных и трехмерных графиков любой сложности, наглядных диаграмм и не только для простого построения, но и для связи графика с формулой, при которой изменение параметра сразу отражается на кривой графика. Имеется также возможность создание объектов движущейся анимации и просмотра импортированных файлов, например, видеофильмов в формате AVI при помощи встроенного в среду MathCad проигрывателя Playback.
  • Действия с размерностями.
  • Численные методы вычислений

  • Решение уравнений и систем уравнений, как линейных, так и нелинейных. Нахождение корней многочлена.
  • Решение неравенств.
  • Вычисление определенного интеграла.
  • Вычисление несобственных интегралов.
  • Вычисление кратных интегралов.
  • Численные методы дифференцирования.
  • Численное решение обыкновенных дифференциальных уравнений – задача Коши.
  • Численное решение обыкновенных дифференциальных уравнений – решение краевой задачи.
  • Решение дифференциальных уравнений в частных производных.
  • Вычисление суммы и произведения членов ряда.
  • Исследование функций и численное определение экстремумов функций одной и нескольких переменных, построение асимптот.
  • Решение оптимизационной задачи методом линейного программирования.
  • Символьные вычисления

  • Выполнение точных вычислений с представлением результатов в традиционной математической форме – с записью ответа в форме радикала и специальных иррациональных чисел $$\pi$$, $$e$$, $$С$$.
  • Символьные преобразования математических выражений целиком или их фрагментов:
  • разложение выражений в более простые;
  • приведение подобных;
  • разложение на множители;
  • приведение к общему знаменателю;
  • вынесение общего множителя;
  • разложение на элементарные дроби;
  • вычисление коэффициентов полиномов;
  • выполнение подстановок.
  • Аналитическое решение уравнений и систем уравнений.
  • Дифференцирование в символьной форме определение производных любых порядков.
  • Аналитическое определение первообразной.
  • Построение касательной и нормали к плоской кривой и к поверхности.
  • Аналитическое вычисление определенного интеграла.
  • Символьное вычисление кратных интегралов.
  • Решение неравенств.
  • Аналитическое вычисление предела.
  • Аналитическое вычисление суммы ряда конечного или бесконечного.
  • Аналитическое вычисление произведения членов ряда конечного или бесконечного.
  • Аналитическое вычисление суммы/произведения членов ряда конечного или бесконечного, когда пределы и шаг изменения индекса члена ряда задаются (например, сложить четные числа от $$10$$ до $$10+к$$.)
  • Разложение в ряд Тейлора.
  • Разложение в ряд Фурье.
  • Символьное преобразование Фурье и Лапласа – прямое и обратное.
  • Операции с матрицами в символьной форме: умножение и сложение матриц, поиск обратной матрицы, вычисление определителя, поиск собственных значений и собственных векторов.
  • Работа с матрицами и матричные вычисления

  • Элементарные матричные действия: создание, импорт, заполнение матриц, задание матриц специального вида, умножение, сложение, транспонирование и сортировка матрицы в целом или ее фрагмента. Выполнение векторизации – однотипных действий над всеми элементами матрицы.
  • Вычисление определителя, размерности, ранга и следа матрицы, скалярное и векторное умножение векторов, вычисление якобиана, например, для перехода к другим системам координат в тройном интеграле. Вычисление собственных значений и собственных векторов, поиск максимального и минимального элемента матрицы.
  • Матричные преобразования: скалярное и векторное умножение векторов, поиск обратной матрицы и решение системы алгебраических линейных уравнений, всевозможные разложения матрицы на произведение матриц специального вида: двух треугольных – верхней и нижней (LU-преобразование), треугольной и ее же транспонированной (разложение Холецкого), ортогональной и верхней треугольной (QR-разложение), сингулярное разложение.
  • Интегрирование среды MathCad с матричной математической системой MATLAB и возможность использования ее аппарата открывает удивительные возможности эффективного решения матричных задач неограниченной сложности.
  • Решение дифференциальных уравнений

    Программирование

    Составление программ и выполнение расчетов на упрощенном процедурном алгоритмическом языке с возможностью использования всех процедурных конструкций: условных операторов, циклов, массивов, модуль-функций, модуль-процедур.

    Комплексные числа

  • Представление комплексных чисел в традиционной форме, возможность выполнения основных арифметических действия с ними.
  • Возможность автоматического получения результатов многих вычислений в виде комплексного числа (например, всех корней многочлена).
  • Возможность задания комплексного аргумента для многих библиотечных функций и получение математически корректного результата.
  • Обработка данных и финансовые расчеты

    Теория вероятностей и математическая статистика

    Математическое моделирование

    Специальные возможности по прикладным инженерным и научным расчетам

  • Обработка электрических сигналов и расчет электронных устройств.
  • Виртуальная генерация электрических сигналов и их обработка.
  • 12.3. Создание документа и общие приемы работы СКМ MathCad

    Главное меню и общие традиционные панели Windows: "Стандартная" и "Форматирование". Перечислим основные возможности среды MathCad.

    Общие возможности

  • Разработка и редактирование документов, содержащих как математические формулы любой сложности, так и все встроенные инструменты среды MathCad. Подготовка этих документов к изданию или передаче по сети Internet.
  • Использование общепринятого расширяемого языка разметки XML как универсального способа организации обмена данными с другими приложениями. Это позволяет преобразовывать файлы MathCad в HTML-страницы и в формат PDF.
  • Возможность вставки в документ широкого спектра объектов (см. рис.12.3.)
  • Разработка веб-документов и сетевые возможности по их пересылке, получению обновлений и поддержки.
  • Получение документов MathCad по сети и выполнение расчетов в этих документах.
  • Получение через Internet и подключение новых книг расширения для реализации дополнительных возможностей среды MathCad.
  • Доступный официальный форум.
  • Все математические действия выполняются при помощи девяти палитр (панелей инструментов), вызываемых, в свою очередь, из панели Мath. Они-то и позволяют получить полный букет всевозможных операторов и команд среды MathCad.

    Эти девять панелей представлены на рис.12.3, а на рис.12.4 показано назначение этих панелей.

    Интерфейс этих панелей отличается продуманностью и дружелюбием. Пока понадобятся только три: Сalculator, Сalculus, Symbolic – их и оставим, а остальные закроем. Панель Symbolic – основная панель инструментов для выполнения символьных вычислений. На рис.12.5 приводятся все ее элементы и их назначение.

    (рис 12.3) Девять основных палитр панели Мath (Математика) среды MathCad (рис 12.4) Назначение основных панелей среды MathCad (рис 12.5) Панель инструментов Symbolic

    Продемонстрируем простой пример — найдем сумму известного бесконечного ряда:

    $$1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-\frac{1}{11}+\frac{1}{13}-\frac{1}{15}+...$$

    по формуле $$\sum_{n=1}^{\infty} \left[(-1)^{n-1}\cdot \left(\frac{1}{2\cdot n -1} \right) \right]$$

    Для этого нужно последовательно: вызвать с панели Calculus вот такой символ $$\sum_{\blacksquare}^{\blacksquare} \blacksquare$$ и заполнить знакоместа суммы $$\sum_{n=1}^{\infty} \blacksquare$$

    (везде далее математические записи приводятся в том виде, как они выглядят в документе MathCad, откуда они и скопированы). Теперь следует выполнить такие действия.

    Ввести формулу $$\sum_{n=1}^{\infty} \left[(-1)^{n-1}\cdot \left(\frac{1}{2\cdot n -1} \right) \right]$$ при помощи панели Calculator

    С панели Symbolic вызвать оператор символьных преобразований $$\to$$ и нажать клавишу Enter.

    $$\sum_{n=1}^{\infty} \left[(-1)^{n-1}\cdot \left(\frac{1}{2\cdot n -1} \right) \right] \to \frac {\pi}{4}$$

    Результат верный. А ведь мы не набрали ни строчки кода – все делали методом визуального программирования, выбирая нужное с панелей.

    Теперь просуммируем такой гармонический ряд:

    $$1+\frac{1}{2}+\frac{1}{3}+\frac{1}{4}+\frac{1}{5}+\frac{1}{6}+...+\frac{1}{n}+...$$

    который, как известно, расходится, но если уменьшить его на самую малость – должен сойтись:

    Повторим все манипуляции с панелью Symbolic и получим маловразумительный результат

    $$\lim_{n\to\infty} \left[ \left(\sum_{i=1}^{n}\frac{1}{i}\right) - ln(n) \right] \to \gamma$$ float, 10 $$\to 0.5772156649$$

    Теперь понятно: это – постоянная Эйлера (она же – третий замечательный предел, обозначаемая как число "С"). Чтобы отбросить все сомнения, закажем ее поточнее, например, до 250 значащих цифр.

    $$\gamma\ float, 250$$$$\to 0.577215664901532860606512090082402431042159335\\9399235988057672348848677267776646709369470632917\\4674951463144724980708248096050401448654283622417\\3997644923536253500333742937337737673942792595258\\2470949160087352039481656708532331517766115286211\\ 99501508.$$

    К сожалению, в доступной автору литературе в полном виде эти данные не встречались, а попытки вычислить ее значение "в лоб", например, на С++ в формате данных double, дали только 64 значащие цифры, остальные 186 знаков – на совести разработчиков MathCad.

    12.4.Символьные расчеты в СКМ

    Символьные расчеты выполняются во встроенном символьном процессоре путем вызова нужного оператора с панели инструментов Symbolic (либо при помощи главного меню).

    Запуск на выполнение символьных действий выполняется при помощи оператора вывода $$\to$$ и нажатия клавиши Enter. Результат получается, соответственно, в символьной форме.

    Примеры простых символьных расчетов:

    $$\sqrt{27} \to 3\cdot \sqrt{3}$$ $$\frac{1}{2}+\frac{1}{3} \to \frac{5}{6}$$

    Результат здесь получился в таком же виде, как если бы мы выполняли действия вручную – с корнями, или в виде обыкновенной дроби. При выполнении численных расчетов (оператор = на панели "Calculator") результат будет таким:

    $$\sqrt{27} =5.196$$ $$\frac{1}{2}+\frac{1}{3} =0.833$$

    Вводим теперь классическое соотношение:

    $$sin(x)^2+cos(x)^2 \to cos(x)^2+sin(x)^2$$

    и с удивлением обнаруживаем, что ничего не получилось. А, собственно, чего еще можно было ожидать, даже не задав СКМ своих требований. Для этого используются специальные операторы с панели Symbolic. С их помощью и выполняются все упрощения математических выражений и алгебраические преобразования. Наиболее универсальный из этих операторов – simplify (упростить).

    $$sin(x)^2+cos(x)^2 simplify \to 1$$

    Интересно сравнить результаты решения одного и того же, например, квадратного уравнения в символьной форме:

    $$x^2-4x+1 solve $$\begin{pmatrix} \sqrt{3}+2\\ 2-\sqrt{3} \end{pmatrix}$$$$

    и в численном виде:

    $$z:=$$\begin{pmatrix} 1\\ -4\\ 1 \end{pmatrix}$$$$ $$polyroots (z)=$$\begin{pmatrix} 0.268\\ 3.732 \end{pmatrix}$$$$

    Во втором случае полином задается вектором коэффициентов $$Z$$, а функция $$polyroots(z)$$ вычисляет его корни.

    Покажем, как выполняются алгебраические преобразования при упрощении математических выражений с помощью других операторов палитры Symbolic (напомним: они вызываются однократным кликом после набора исходного выражения).

    Первый пример: оператор expend (разложить), выполняющий перемножение и представляющий результат в виде многочлена. Выполним пример в пошаговом режиме.

  • Ввести исходное выражение (его можно скопировать как фрагмент из другого выражения).

    $$\frac {(x^3+x^2+a)\cdot(x+b)}{(x^2+1)\cdot(x-1)}$$

  • На палитре Symbolic "кликнуть" на слове expend (разложить) и нажать клавишу Enter.

    $$\frac {(x^3+x^2+a)\cdot(x+b)}{(x^2+1)\cdot(x-1)} expand \to \frac {bx^2+bx^3+x^3+x^4+ab+ax}{x^3-x^2+x-1}$$

  • Выполнилось разложение исходного выражения путем перемножения в числителе и знаменателе. Очень эффектно оператор expend работает в качестве справочного инструмента как показано ниже.

    $$sin(x+y+z) expand \to cos(x)*cos(y)*sin(z)+cos(x)*sin(y)*cos(z)+sin(x)*cos(y)*cos(z)-sin(x)*sin(y)*sin(z)$$

    Другой пример

    $$sin(4x)-cos(6x) expand,x \to 15*cos(x)^4*sin(x)^2-cos(x)^6+4*cos(x)^3*sin(x)-15*cos(x)^2*sin(x)^4-4*cos(x)*sin(x)^3+sin(x)^6$$

    При помощи оператора factor выполняется разложение на множители, например:

    $$(х^3+1) factor \to (x+1)(x^2-x+1)$$

    А вот как можно проверить, является ли число 199995 простым, – выполняем:

    $$199995 factor \to 3 \cdot 5 \cdot 67 \cdot 199$$

    убеждаемся, что это число непростое, поскольку в его разложении нашлись четыре простых множителя. А вот так можно привести выражение к общему знаменателю:

    $$\frac{z}{x-1} + \frac{y}{x+1} factor \to \frac{z-y+xy+xz}{(x-1)(x+1)} $$

    Оператор collect, наоборот, выносит за скобку общий множитель (через запятую нужно обязательно указать его вид):

    $$x^3y+x^3 collect,x \to (y+1)x^3$$

    Однако, несмотря на кажущуюся простоту, это действие (вынесение множителя) является очень сложной интеллектуальной задачей, поэтому оператор collect работает нечетко, требует подсказки – что нужно выносить, и используется достаточно редко.

    А вот оператор разложения на элементарные дроби parfrac и работает отлично, и используется широко; особенно он полезен при интегрировании рациональной функции.

    $$\frac{5x-1}{(x-1)(x+1)} parfrac \to \frac{2}{x-1} +\frac{3}{x+1}$$

    Теперь проинтегрировать правую часть не составит труда, если вспомнить, что первообразной для ($$1/х$$) является $$ln(x)$$.

    Часто при решении математических задач возникает необходимость замены переменной в формуле на заданное выражение. Запишем, например, такую формулу:

    $$\frac{x^2-1}{x} \cdot z$$, где $$z=\frac{x}{x+1}$$

    вызовем оператор substitute (заместить) c панели Symbolic

    $$\frac{x^2-1}{x} \cdot z substitute, \blacksquare=\blacksquare \to$$

    и в правый маркер (черный квадратик) поместим такую запись, задающую подстановку:

    $$\frac{x^2-1}{x} \cdot z substitute, z=\frac{x}{x+1} \to x-1$$

    Как видно, программа не только выполнила требуемую подстановку, но и упростила выражение.

    К подстановкам часто приходится прибегать при работе с MathCad и вот почему. Эффективность, например, решения уравнений или действие оператора разложения expend резко повышается, если исходная формула не содержит радикалов (корней).

    MathCad постоянно совершенствуется – два классических примера бессилия MathCad 12 [3 ]:

    $$\frac{\sqrt{x}+1}{x-1} simplify \to \frac{x^{\frac{1}{2}}+1}{x-1}$$

    $$\frac{sin(2x)}{2cos(x)} simplify \to \frac{1}{2} \cdot \frac{sin(2x)}{cos(x)}$$

    в MathCad 14 решаются легко:

    $$\frac{\sqrt{x}+1}{x-1} simplify \to \frac{1}{\sqrt{x}-1}$$

    $$\frac{sin(2x)}{2cos(x)} simplify \to sin(x)$$

    Часто на практике требуется выполнить одновременно несколько последовательных преобразований формулы с целью ее упрощения. Для этого служит оператор simplify ("упростить"). Можно сказать, что с его помощью выполняется, в некотором смысле, комплексное упрощение. Оттого он и наиболее востребован.

    Например:

    $$e^{ln(a^2-1)} simplify \to a^2-1$$

    Вычисление пределов в среде MathCad отработано надежно и фундаментально, поскольку пределы – основа математического анализа. Про первый замечательный можно даже и не говорить – идеально. Равно как и второй.

    С правилом Лопиталя СКМ справляется без проблем:

    $$\lim_{n \to 0} \frac{(e^x-e^{-x})}{sin(x)} \to 2$$

    И переходить к пределу логарифма с последующим потенцированием среда MathCad тоже умеет:

    $$\lim_{n \to 0} \left(\frac{1}{x} \right) ^{tan(x)} \to 1$$

    $$\lim_{n \to \infty} \left( 1+\frac{1}{2x} \right) ^{x} \to \sqrt{e}$$

    Могут быть вычислены и односторонние пределы. В следующем хрестоматийном [1] примере предел функции:

    $$y=\frac{1}{1+e^{\frac{1}{x}}}$$

    в точке $$х=0$$ не существует,

    $$\lim_{n \to 0} \frac{1}{1+e^{\frac{1}{x}}} \to undefined$$

    тогда как односторонние могут быть определены. Что с успехом и выполняет MathCad .

    $$\lim_{n \to 0^-} \frac{1}{1+e^{\frac{1}{x}}} \to 1$$ $$\lim_{n \to 0^+} \frac{1}{1+e^{\frac{1}{x}}} \to 0$$

    Рассмотрим несколько изящных примеров, показывающих возможности вычисления пределов и одновременно красиво демонстрирующих основы математического анализа – нахождение производной классическим способом как предела отношения приращения функции к приращению аргумента при неограниченном уменьшении последнего. Получим известную формулу для $$(log_ax)'$$

    $$\lim_{\delta \to 0} \frac{(log(x+\delta,a)-logg(x,a)}{\delta} \to \frac{1}{x \cdot ln(a)}$$

    Здесь нетрудно догадаться, что в символике MathCad $$(logax)$$ и $$tg(x)$$ изображаются как $$log(x,a)$$ и $$tan(x)$$ соответственно. Успешно решается и более сложный пример:

    $$\lim_{\delta \to 0} \frac{(ln(tan(x+\delta))-ln(tan(x)))}{\delta} \to \frac{tan(x)^2+1}{tan(x)}$$

    А вот совсем простую задачу:

    $$\lim_{\delta \to 0} \frac{\left[(x+\delta)^n-x^n \right]}{\delta}$$

    в общем виде решить не получается – нужно задать конкретное значение $$n$$.

    Для показательной функции $$a^x$$:

    $$a^{x+\delta}-a^x parfrac, a^x \to a^{\delta} \cdot a^x-a^x$$

    $$\lim_{\delta \to 0} \frac{\left(a^{x+\delta}-a^x \right)}{\delta} \to a^x \cdot ln(a)$$

    А теперь еще забавней – проинтегрируем функцию:

    $$y=a^x$$

    по определению через предел интегральной суммы. Здесь особенность – верхний предел зададим параметрически через $$Х$$. Для этого составим интегральную сумму:

    $$\lim_{n \to \infty} \sum_{k=0}^n \left[ \left( \frac{x}{n} \right) \cdot a^{x{\frac{k}{n}}} \right]$$

    и вычислим ее в MathCad:

    $$\lim_{n \to \infty} \sum_{k=0}^n \left[ \left( \frac{x}{n} \right) \cdot a^{x{\frac{k}{n}}} \right] \to \frac{a^x-1}{ln(a)}$$

    При этом все константы следует собрать вместе в постоянную интегрирования $$С$$:

    $$ \frac {a^x-1}{ln(a)}=\frac{a^x}{ln(a)}+C$$

    и тогда имеем первообразную, а заодно и красивую демонстрацию теоремы Ньютона-Лейбница.

    Теперь вычисление суммы ряда. Все очень просто и правильно:

    $$ \sum_{n=0}^{\infty} \frac{x^n}{n!} \to e^x$$

    Воспользуемся известным многим поколениям абитуриентов пособием СканавиС.И.[ 8] – задача № 4.077 из раздела "В", решение которой показывает не только "более высокое качество усвоения школьной программы <...> но и позволит экзаменующемуся обнаружить способность к самостоятельному логическому мышлению" [9].

    $$\sum_{n=1}^{m} \left[n \left(2^n \right) \right] \to 2^{m+1} \cdot (m-1) -\frac{m(m+1)}{2}+2$$

    Рассмотрим разложение в ряд Тейлора. Оно выполняется при помощи оператора Series c панели Simbolic. В маркеры оператора Series последовательно заносятся через запятую: исходная функция, имя аргумента, количество членов ряда.

    $$(cos(x)) series,x=0,6 \to 1-\frac{x^2}{2} +\frac{x^4}{24}$$

    Теперь зададим 44 члена

    $$(cos(x)) series,x=0,44 \to 1-\frac{x^2}{2} +\frac{x^4}{24} -\frac{x^6}{720}$$

    Решение уравнений – одна из самых актуальных и одновременно самых сложных задач в среде MathCad. Оно может быть выполнено аналитически, численно или графическим способом. Аналитический способ решения предпочтителен, поскольку, не говоря об отсутствии погрешностей вычисления, его вид позволяет детально проанализировать результаты и легко и наглядно использовать их в последующих исследованиях либо в практических целях. К сожалению, возможность аналитического решения диктует жесткие условия, которые мы не будем обсуждать. Отметим, например, что переменные должны быть в степени не выше четвертой (за исключением частных случаев), а используемые функции – одинакового вида. На практике, в прикладных задачах, любое соотношение, полученное в виде композиции элементарных функций (а не как решение сложной системы дифференциальных уравнений), является ярким событием. Вся масса уравнений, приводимых в учебных пособиях, является материалом, специально подобранным в чисто учебных целях.

    Самым универсальным способом решения уравнений является графический, возможности использования которого в MathCad обширны.

    Найдем в общем виде корни полиномиального уравнения одной переменной (степенного многочлена) – это наиболее часто встречающаяся практическая задача. Зададим исходный полином четвертой степени

    $$a ullet x^4+b ullet x^3+c ullet x^2+d ullet x+g=0$$

    Среда MathCad выполняет поиск решения уравнения одной переменой посредством оператора salve c панели "Simbolic". Задача успешно выполняется, и хотя выдается сообщение, что не хватает ресурсов для вывода решения на экран, и полюбоваться им нельзя,

    но само решение получено и для дальнейших вычислений им можно пользоваться.

    Попробуем получить это решение другим способом: через пункт Simbolic главного меню. Решение получено и в этом случае выводится на экран, но его размеры (более 40-ка страниц текста) превышают возможности буфера ОС, и даже скопировать его по частям не удается. Так проявляется еще одна проблема символьных расчетов, особенно для решений в общем виде – громоздкие выражения, как правило, неудобные для анализа и последующих преобразований. Выход – упрощать выражения, например, разложением в степенные ряды.

    Как иллюстрация, на рис.12.6 приводится для кубического уравнения: формула для одного из корней – целиком, а для другого корня – только фрагмент формулы. Размеры и здесь впечатляют.

    Теперь попробуем решить полиномиальное уравнение с заданными постоянными коэффициентами. Составим заготовку

    $$(x-11)(x-222)(x-3333)(x-44444)(x-5555555)$$

    и при помощи оператора expand получим полином:

    $$(x-11)(x-222)(x-3333)(x-44444)(x-5555555) expand \to x^5-5603564x^4+266881461885x^3-884847515133875x^2+19239696969998319834x-2009655257834454120$$

    (рис 12.6) Первый корень и фрагмент второго корня кубического уравнения

    Полученные коэффициенты перенесем через буфер ОС в текстовый файл .txt, созданный, например, при помощи приложения ОС "Блокнот", а оттуда вернем обратно через буфер ОС в MathCad, который перед тем перезагрузим, чтобы исключить возможность "подсказки" (заодно убедимся, как легко и удобно переносить числа в текстовый документ и обратно. А вот простейшее выражение, содержащее, например, символ радикала, запомнить можно, но вернуть не получится).

    Никаких трудностей не возникло, хотя размеры чисел значительно превосходят представление данных целого типа для многих алгоритмических языков высокого уровня. Даже в случае полинома пятой степени решение легко получается в символьном виде, для этого следует: вставить оператор solve c панели Symbolic, через запятую указать имя аргумента "$$х$$" и нажать Enter.

    $$x^5-5603564x^4+266881461885x^3-884847515133875x^2+19239696969998319834x-2009655257834454120 solve,x \to $$\begin{pmatrix} 11\\ 222\\ 3333\\ 44444\\ 5555555 \end{pmatrix}$$$$

    В том, что решение найдено именно в символьном виде, а не численно, легко убедиться, записав исходный полином с иррациональными корнями, например:

  • Подготовим полином:

    $$(x- \sqrt{5})(x-2)(x-3)(x-4)(x-5) expand,x \to 120x-71\sqrt{5}x^2+14 \sqrt{5}x^3-\sqrt{5}x^4-154x^2+71x^3-14x^4+x^5+154 \sqrt{5}x-120 \sqrt{5} collect \to x^5+(-\sqrt{5}-14)x^4 +(14 \sqrt{5}+71)x^3+(-71\sqrt{5-154})x^2+(154 \sqrt{5}+120)x-120 \sqrt{5}$$

  • Найдем решение:

    $$x^5+(-\sqrt{5}-14)x^4 +(14 \sqrt{5}+71)x^3+(-71\sqrt{5-154})x^2+(154 \sqrt{5}+120)x-120 \sqrt{5} solve,x \to $$\begin{pmatrix} 2\\ 3\\ 4\\ 5\\ -\sqrt{5} \end{pmatrix}$$$$

  • Очевидно, что ответ получен в символьной форме.

    По данным [6], СКМ MathCad при аналитическом решении сначала пытается найти ответ в символьном виде, а в случае неудачи переходит к численному решению задачи автоматически.

    Решение неравенств считается одной из самых сложных тем школьной математики, поскольку требует не только навыков выполнения математических преобразования, но и умения логически анализировать поведение функций в области допустимых значений.

    Пример, неверно решаемый в СКМ MathCad 13:

    $$\frac{\sqrt{x}-3}{x-2} > 0 solve,x \to $$\begin{pmatrix} x < 2\\ 9 < x \end{pmatrix}$$$$

    Х должен быть не меньше $$0$$; правильно он решен в СКМ MathCad 14, да и ответ выглядит привлекательней:

    $$\frac{\sqrt{x}-3}{x-2} > 0 solve,x \to 9 < x \lor 0 \le x < 2$$

    Рассмотрим аналитическое дифференцирование. Поскольку производная любой элементарной функции может быть определена по жестко установленному алгоритму, среда MathCad всегда с успехом это выполняет. Вызовем оператор дифференцирования

    $$\frac{d}{d \blacksquare} \blacksquare$$

    с панели Symbolic и занесем в него исходное выражение $$Х^Х$$:

    $$\frac{d}{dx} x^x$$

    результат получается после выполнения оператора $$\to$$.

    $$\frac{d}{dx} x^x \to x \cdot x^{x-1}+x^x \cdot ln(x)$$

    Проверим

    $$\int x \cdot x^{x-1}+x^x \cdot ln(x) dx \to x^x$$

    В случае аналитического интегрирования сложнее: и жестко заданного алгоритма нет, и, вообще, в элементарных функциях не для каждой существует первообразная. Интегрирование – это искусство. MathCad и здесь на высоте. Хотя при решении следующего интеграла в общем виде выдается только один вариант (для действительных корней знаменателя),

    $$\int \frac{1}{x^2+bx+c}dx \to \frac {atan \left( \frac{ \frac{b}{2}+x}{\sqrt{c- \frac{b^2}{4}}} \right)}{\sqrt{c- \frac{b^2}{4}}}$$

    при решении с конкретными значениями – все верно.

    $$\int \frac{1}{x^2+4x+1}dx \to - \frac {\sqrt{3} atanh \left[ \frac{\sqrt{3}(x+2)}{3} \right] }{3}$$ - корни действительные,

    $$\int \frac{1}{x^2+x+1}dx \to - \frac { 2 \sqrt{3} atan \left[ \frac{2 \sqrt{3} \left (x+\frac{1}{2} \right) }{3} \right] }{3}$$ - корни мнимые.

    Теперь сложнее:

    $$\int \frac {1}{(x^2+4x+1)^2}dx \to \frac{\sqrt{3}ln(x+\sqrt{3}+2)}{36} - \frac{\sqrt{3}ln(x-\sqrt{3}+2)}{36} - \frac {\frac{x}{6} + \frac{1}{3}}{x^2+4x+1}$$

    Проверим:

    $$\frac{d}{dx} \left( \frac{\sqrt{3}ln(x+\sqrt{3}+2)}{36} - \frac{\sqrt{3}ln(x-\sqrt{3}+2)}{36} - \frac {\frac{x}{6} + \frac{1}{3}}{x^2+4x+1} \right) \to simplify \ to \frac {1}{(x^2+4x+1)^2}$$

    Следующий пример демонстрирует интегрирование тригонометрических функций:

    $$\int \frac{1}{a+b \cdot sin(x)+c \cdot cos(x)} dx \to \frac{2atan \left[ \frac {b+tan \left( \frac{x}{2} \right) \cdot (a-c)}{\sqrt{a^2-b^2-c^2}} \right]}{\sqrt{a^2-b^2-c^2}}$$

    Решается и такой интеграл:

    $$\int e^{ax} cos(bx)dx \to \frac {e^{ax}(acos(bx)+bsin(bx))}{a^2+b^2}$$

    Читатель, несомненно, вспомнит достаточно изощренный способ его нахождения, сводящийся к интегрированию по частям и в результате – к получению уравнения относительно самого этого интеграла; решение этого уравнения и дает искомый результат [10].

    Среда MathCad также позволяет дифференцировать по параметру определенный интеграл с подынтегральной функцией и пределами интегрирования, зависящими от этого параметра:

    $$\frac{d}{dy} \int^{2y}_y (e^xy)dx \to e^{2y}-e^y-y(e^y-2e^{2y})$$

    Действия с матрицами охватывают весь стандартный набор операторов алгебры матриц. На панели Symbolic расположены три оператора: $$М^Т$$,$$ М^(-1)$$ и $$|M|$$ для транспонирования, обращения и поиска определителя соответственно. Остальные операторы выполняются при помощи функций (в количестве 47 для MathCad 14) раздела Vector and Matrix меню Insert / Function.

    В качестве примера приведем символьный расчет определителя матрицы 3*3:

    $$|M| \to \left| \begin{pmatrix} a b c\\ d e f\\ h q k \end{pmatrix} \right| \to bfh-bdk-afg+cdq-che+ake$$

    Связь с MS Excel достигается встроенными средствами и специальным расширением MathCad Add – In For Excel. В первом случае легко осуществляется вставка диапазона ячеек из Excel в переменную MathCad при помощи буфера ОС (команды "Копировать/Вставить"). Можно вставить и связать фрагмент таблицы Excel документ MathCad при помощи команды меню "Правка/Специальная вставка". При этом текущие изменения в документе Excel будут сразу же отражаться во вставленном в MathCad фрагменте, откуда их легко вручную можно скопировать в любую переменную MathCad. Но вот связать переменную MathCad с ячейкой Excel, чтобы все изменения выполнялись автоматически, можно только при помощи программного расширения MathCad Add – In For Excel.

    12.4. Решение дифференциальных уравнений в СКМ

    Решение дифференциальных уравнений (ДУ) является одной из самых сложных задач математики. Она возникает практически во всех областях знаний: в науке, в технике, в экономике. Как известно, дифференциальные уравнения делятся на обыкновенные (ОДУ) и дифференциальные уравнения в частных производных – по-другому их называют уравнениями математической физики. Последние и представляют более общий инструмент исследования, но большие трудности в их решении заставляют, по возможности, применять аппарат ОДУ. Это нашло отражение в средствах пакетов СКМ и, в частности, в MathCad, где приводится мощный и разнообразный аппарат работы с ОДУ.

    Методы их численного решения глубоко разработаны в вычислительной математике, широко алгоритмизированы и представлены в MathCad практически в полном объеме. Поэтому не будем подробно останавливаться на этой теме, а перейдем к аналитическим методам решения ДУ в MathCad.

    Сразу отметим, что в СКМ Mathematica и Marpl имеются встроенные блоки решения ОДУ в символьной форме; разработчики КСМ MathCad пошли другим путем: специального обособленного инструмента решения ОДУ в ней нет. Для решения ОДУ предлагается последовательно применять набор встроенных операторов. Ниже покажем, что это не является недостатком этого пакета.

    Большинство практических задач может быть сведено к аппарату линейных систем ДУ (ЛОДУ). С одной стороны, методы их аналитического решения и анализа хорошо разработаны и широко известны, а нелинейность в большинстве случаев можно исключить, разбив общую задачу на ряд частных подзадач без большого ущерба для точности.

    Известно, что решение ЛОДУ в общем виде равно сумме общего решения однородного ЛОДУ (с нулевой правой частью), и какого-либо частного решения неоднородного ЛОДУ.

    Покажем, как эта задача решается в СКМ Mathematica 5, где имеются встроенные блоки решения ОДУ. Для решения ЛОДУ используют встроенную функцию DSolve[ ] следующим образом.

    $$DSolve[x''[t]+4x'[t]==10Sin[2t],x[t],t]$$

    После исполнительной команды – одновременного нажатия клавиш Shift и Enter, сразу получим результат:

    $$DSolve[x''[t]+4x'[t]==10Sin[2t],x[t],t]$$

    $${{x[t] \to -1/4e^{-4t}C[1]+C[2]-Cos[2t]-1/2Sin[2t]}}$$

    Обратите внимание на несколько необычный способ записи функций: при помощи квадратных скобок; но это, равно как и исполнительная команда на выполнение вычислений одновременным нажатием клавиш Shift и Enter, – специфические особенности СКМ Mathematica.

    Для решения подобного уравнения СКМ MathСad, где такие решающие блоки отсутствуют, рекомендуется применять операторные методы – прямое и обратное преобразование Лапласа или Фурье. Напомним, что смысл этого метода заключается в переходе от искомой функции, называемой оригиналом, к особым интегральным функциям комплексного переменного $$s$$ – так называемым изображениям, в результате чего после подстановки изображения вместо оригинала в линейное ДУ операция дифференцирования относительно новой переменной заменяется операцией умножения на соответствующий новый аргумент $$s$$, а само ДУ $$n$$-й степени преобразуется в многочлен этой же степени относительно $$s$$, называемый характеристическим. Определив корни характеристического многочлена и выполнив обратный переход от изображения к оригиналу при помощи обратного преобразования Лапласа или Фурье, соответственно, легко можно отыскать решение исходного ДУ.

    Конкретные действия для решения указанной задачи следующие.

    Пусть дано исходное ЛОДУ:

    $$\frac{d^2}{dt^2} x(t) + 4 \frac {d}{dt}x(t):=10sin(2t)$$

    Его необходимо записать в форме с нулевой правой частью:

    $$\frac{d^2}{dt^2} x(t) + 4 \frac {d}{dt}x(t)-10sin(2t)$$

    Вызывать с панели Symbolic оператор laplace и задать исполнение $$\to$$:

    $$\frac{d^2}{dt^2} x(t) + 4 \frac {d}{dt}x(t)-10sin(2t) laplace, \blacksquare \to$$

    в результате получается малопонятное выражение, в котором обозначим изображение функции одной буквой, например, h, выражения для начальных значений функции и первой производной заменим, например, на Х0 и Х10, соответственно. После всех этих преобразований и замен будет получено следующее выражение:

    $$s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4}$$

    Очень неудобно. Беда еще, к сожалению, в том, что оператор laplace иногда отказывается работать.

    Поэтому проще самим написать изображение для уравнения (**) без помощи оператора laplace. При этом производные заменяются изображениями согласно известной теореме по образцу, приведенному в таблице 12.2.

    $$s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4}$$

    Результат применения преобразования Лапласа к производным различных порядков
    Производные оригинала Изображение производной
    $$X(t)$$ $$h$$
    $$X'(t)$$ $$s ullet h – X(0)$$
    $$X''(t)$$ $$s ullet (s ullet h – X(0)) – X'(0)$$
    $$X'''(t)$$ $$s ullet ( s ullet ( s ullet h – X(0)) – X'(0)) – X''(0)$$

    Здесь через $$X(0)$$, $$X'(0)$$, $$X''(0)$$ обозначены начальные условия для производных указанных порядков, в нашем примере они обозначены согласно таблице 12.3.

    Обозначения в примере (*) начальных условий для производных различных порядков
    Начальные условиядля производных Обозначения в рассматриваемом примере
    $$X(0)$$ $$X0$$
    $$X'(0)$$ $$X10$$

    Продолжить таблицу 2 в случае необходимости не представляет труда – последующая строка легко получается из предыдущей.

    Далее при самостоятельном задании изображения для уравнения (**) к правой части уравнения (*) отдельно применим оператор laplace:

    $$10sin(2t) laplace, t \to \frac {20}{s^2+4}$$

    Подставим в исходное уравнение (**) и получим следующее выражение:

    $$s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4}$$

    Разрешим это уравнение относительно $$Z$$ оператором solve и применим обратное преобразование Лапласа $$invlaplace$$ (оба с панели Symbolic)

    $$s(sh-X0)-X10+4sh-4X0- \frac{20}{s^2+4} solve,h \to \frac {4X0+X10+ \frac{20}{s^2+4} +X0s}{s^2+4s}$$

    $$\frac {4X0+X10+ \frac{20}{s^2+4} +X0s}{s^2+4s} invlaplace,s \to X0+ \frac{X10}{4} - cos(2t)- \frac{e^{-4t}}{4} -\frac{sin(2t)}{2}- \frac{X10e^{-4t}}{4} +\frac {5}{4}$$

    Это и есть решение ЛОДУ (*), отличия от решения СКМ Mathematica – в форме представления постоянной интегрирования. В последнем случае оно содержат начальные условия в явном виде.

    12.5. Графические средства СКМ МathCad

    Для создания графиков в среде MathCad имеется встроенный программный инструмент – графический процессор (см. рис.12.2.).

    Возможности среды MathCad здесь впечатляют и могут удовлетворить любые, самые взыскательные требования пользователя, или лучше так – можно с уверенностью сказать, что среда МathСad удовлетворит не только любую прихоть пользователя, но, в свою очередь, сможет предложить ему инструмент, о существовании которого тот вряд ли догадывается.

    Приятно удивляет простота применения, что позволяет использовать графики не только как средство иллюстрации, но и как удобный инструмент вычислений, постоянно готовый к текущему отображению промежуточных результатов.

    На рис.12.7 приведена палитра(панель инструментов) меню Graph для отрисовки графиков, а в таблице 12.4 – назначение и возможности каждого инструмента.

    (рис 12.7) Палитра меню Graph
    Инструменты панели Graph
    Имя, англ. Наименование, русск. Назначение
    X-E Plot Построение двумерного графика Построение всевозможных графиков функции одного аргумента в прямоугольной декартовой СК
    Polar Plot Применение полярных координат Построение всевозможных графиков функции одного аргумента в полярной СК
    3D Bar Plot Трехмерная гистограмма Представление графика в виде множества трехмерных столбиков, высота которых пропорциональна аппликате
    Сontour Plot Контурный трехмерный график Представление поверхности графика изолиниями равного уровня
    3D Scatter Plot Точечный трехмерный график Представление поверхности графика множеством точек заданного цвета и формы
    Vector Field Plot Векторное поле Изображение в отдельных точках плоскости значение вектора в виде стрелки. Для 3D графика таким вектором является градиент
    Zoom Увеличение Увеличение выделенного фрагмента
    Х-У Trace Трассировка Фиксация координат выделенной точки графика
    Surface Plot Трехмерный график Обычный график функции двух переменных

    Кроме инструментов, приведенных в таблице 12.4, есть еще два, которые не приведены в палитре рис.12.7. Первый – мастер построения трехмерных графиков (3D Plot Wizard) – вызывается из главного меню (Insert/Graph/3D Plot Wizard) и существенно облегчает форматирование трехмерных графиков.

    Второй – окно форматирования рисунка с графиком – вызывается двойным левым щелчком на поле графика или из контекстного меню (КМ). Вид этого окна зависит от типа графика, оно содержит до 9 вкладок и позволяет выполнять с графиком любые манипуляции. Вот некоторые из них:

  • форматирование шкалы графика – задание масштаба (в том числе логарифмического), пределов изменения переменных, особенности изображения линий координатной сетки, а то и вовсе – убрать все оси и линии, кроме самого графика (чтобы получить отдельную картинку);
  • форматирование линии графика;
  • создание заголовков и подписей на осях СК;
  • задание по умолчанию параметров рисунка с графиком.
  • Для примера приведем последовательность действий при построении графика функции

    $$y=x^2$$ на интервале (-2, 2)

  • Введем определение функции $$y(x)$$.
  • Вызовем из палитры Graph инструмент X-E Plot.
  • Все будет выполнено автоматически после задания диапазона изменения $$Х$$ и указания функции на левом знакоместе шаблона:

  • При необходимости легко изменить диапазон как аргумента так и функции указанием нужных значений на соответствующих знакоместах.
  • Выполним трассировку графика – указание нужной точки графика: в нашем случае пусть это будет минимум функции $$y=x^2$$.

  • Выберем на палитре Graph инструмент Х-У Trace – откроется окно диалога, а на графике появится управляемый мышью указатель.
  • Установим опцию Track Data Point, в этом случае перекрестие указателя будет скользить только по кривой графика.
  • Скопируем координаты текущей позиции указателя в буфер.
  • Указанные действия иллюстрирует рис.12.8.

    Теперь построим график такой функции двух переменных:

    $$Z(x, y)=Sin(xy)$$

  • Определим функцию z(x,y).

    (рис 12.8) Выполнение трассировки графика для получения координат точки минимума
  • Вызовем из палитры "Graph" инструмент Surface Plot и поместим на нижнем знакоместе только имя функции теперь уже без указания аргументов (см. рис.12.9).

    (рис 12.9) Отображения графика функции Z(x,y)=Sin(xy), созданного в режиме автоматического задания диапазонов аргументов
  • Получилось что-то непонятное. Уменьшим диапазон по осям аргументов в четыре раза, для чего вызовем из КМ окно свойств, как показано на рис.12.10.

    (рис 12.10) Отображения графика функции Z(x,y)=Sin(xy), после уменьшения диапазонов аргументов в четыре раза
  • Теперь получилось подозрительно просто – опять увеличим эти диапазоны, а еще захватим график мышью и покрутим его в разные стороны; окончательно получим следующее (см. рис.12.11).

    (рис 12.11) Поворот графика функции Z(x,y)=Sin(xy) при помощи мыши
  • Еще одной изящной возможностью среды можно полюбоваться, снова запустив шаблон 3D графика и вызвав из главного меню (Insert/ Graph/3D Plot Wizard) функцию Polyhedron() – как это показано на рис.12.12, она позволяет изобразить один из 80-ти многогранников (подробные сведения о них приводятся в справочной системе МathСad):

    $$z:=Polyhedron(Str)$$,

    где $$Str$$ – аргумент в виде управляющей строки, которая в двойных кавычках содержит название многогранника ("cube" – куб), либо его порядковый номер ("#6" – тетраэдр). Все эти порядковые номера можно легко найти в справочной системе MathCad.

    (рис 12.12) Изображение многогранников при помощи функции Polyhedron() (рис 12.13) Использование функции Polylookup() для получения названия многогранника

    А желаете узнать, как по-английски правильно называется многогранник, составленный из шести квадратов и восьми треугольников? Взгляните на рис.12.13– там все очевидно.

    В заключение упомянем о возможности вставить в разрабатываемый документ анимацию – как при помощи команды Tools/Animation, открывающей окно создания и просмотра анимации, так и путем включения встроенного видеопроигрывателя View/Playback для просмотра любых внешних файлов в формате AVI.

    12.6. Справочная система и пакеты расширения СКМ MathCad

    Справочная система обладает развитыми возможностями и позволяет выбрать документ, содержащий функционирующий пример почти по любой теме работы с СКМ или пример его практического применения в сфере прикладных задач науки и техники. Все примеры – именно действующие, к тому же допускающие внесение изменений и редактирование. Это, в сочетании с интеллектуальными подсказками и автоматической поддержкой Сетевого сервисного центра поддержки фирмы, дает право говорить не просто о справочной системе, а о справочно-сервисном процессоре пакета.

    Меню Help СКМ MathCad приведено на рис.12.14. Раздел "Учебники" содержит справочные материалы общего характера

    (рис 12.14) Меню Help СКМ MathСad (рис 12.15) Пример вызова справочной таблицы. Переход к справочной таблице по размерам треугольника

    Справочные таблицы содержат обширные сведения по многим областям науки и техники. Пример обращения к конкретному разделу – "Площадь и периметр для треугольника" – показан на рис.12.15. При этом все листы таблиц Reference Tables –действующие документы MathCad: в них можно подставить свои данные и получить нужные результаты, а можно скопировать формулы и вставить их для использования в своих документах.

    Быстрые шпаргалки Quick Sheets – это примеры решенных разработчиками MathCad более сотни практических задач из различных отраслей знаний. На рис.12.16 в качестве примера представлен переход к задаче "Векторная алгебра". Все эти задачи находятся в состоянии полной готовности к использованию.

    Электронные книги e-Books представляют собой наборы готовых документов по определенной тематике. Они являются более сложными и предоставляют большие возможности, о которых можно судить из рис.12.17, где представлен лист содержания e-Book. Особенностью электронных книг является наличие листа содержания, предметный указатель, совершенная система переходов при помощи гиперссылок. Электронная книга открывается в собственном окне, снабженном специальными элементами управления и очень напоминающем традиционное окно браузера. Фирма-разработчик предлагает целую библиотеку таких e-Books. Кроме того, можно воспользоваться электронными книгами, созданными пользователями СКМ MathCad, либо самому разработать подобную книгу нужной тематики. При ее создании (как и при создании любого документа СКМ MathCad) можно использовать как аппарат гиперссылок для организации навигации, так и следующие традиционные встроенные элементы управления:

    (рис 12.16) Пример работы с быстрыми шпаргалками Quick Sheets. Переход к задаче "Векторная алгебра"

    Кроме того, в состав СКМ MathCad входят пакеты расширений – программные средства, обладающие всеми достоинствами вышеперечисленных сервисных программных средств и являющихся самыми совершенными инструментами готовых решений MathCad. От электронных книг они отличаются способностью внедрения в среду СКМ MathCad дополнительных библиотек встроенных функций.

    (рис 12.17) Содержание e-Book "Data Analysis Extensiоn Pack" ("Анализ данных") – фрагмент

    Заключение

    В главе приведен ознакомительный материал по СКМ и наиболее яркому и популярному среди студентов пакету СКМ MathCad. Предлагаемый учебник и предназначен, главным образом, для такого читателя. Поэтому в круг рассматриваемых вопросов авторы сознательно не включили многие мощные возможности пакета СКМ MathCad, такие как средства векторного анализа и матричной алгебры, дифференциальную геометрию, решение дифференциальных уравнений в частных производных, численные методы решения алгебраических уравнений, вероятностные расчеты, статистику и обработку данных, математическое моделирование, обработку сигналов и расчет электронных устройств, виртуальный осциллограф и многое другое.

    Основной упор делался только на разделы математики, близкие и знакомые студенту гуманитарного или инженерного вуза. Возможности СКМ MathCad несравненно более широки, о чем можно судить хотя бы из приводимого в 12.2 их перечисления. Узкий специалист наверняка найдет в нем математический инструмент нужного направления и будет успешно использовать его в своей практике.

    Достоинства СКМ MathCad как справочного инструмента и мощного редактора математических текстов не вызывают сомнений, также бесспорны его возможности в качестве совершенного калькулятора для научных расчетов.

    Трудно переоценить значение СКМ в сфере образования. В 70-х годах прошлого века курсовые работы по математике выполнялись на механических вычислительных машинах (арифмометрах) "Феликс" и требовали многих дней кропотливой работы, которая выполняется в СКМ за доли секунды. Появилась возможность, образно говоря, "пощупать математику руками".

    Более того, СКМ MathCad в полном смысле является высокоинтеллектуальной базой знаний. Наличие интеллекта СКМ в принципиальном толковании – вопрос очень тонкий. Действительно ли он есть? Или все это только искусное применение очень мощного инструмента и умение творчески истолковать нетривиальный результат? Оставим это философам. Но если определить интеллект программного продукта как способность решать сложные математические задачи, не только в случаях, когда технический ход решения не контролируется пользователем (а, может быть, просто неизвестен ему), но и в ситуации, когда общий алгоритм и выбор способа решения остаются за пределами его внимания, когда важна лишь твердая уверенность в принципиальном существовании такого решения, надежность самой СКМ и возможность оперативной и корректной проверки результата, например, обратным преобразованием, то все это в современных СКМ есть, или почти есть. Типичный примеры упомянутых задач – поиск первообразной или решение ЛОДУ. СКМ развиваются – было показано, что задачи, которые приводились как пример ограниченности творческих возможностей СКМ MathCad прежних версий, успешно решаются в новых. По-видимому, скоро подобных примеров вообще не останется.

    Были продемонстрированы достоинства символьных методов расчета и большие возможности современных СКМ по их реализации.

    Сравнительная оценка различных СКМ показывает, что для целей изучения математики и решения прикладных задач общего характера более всего подходит СКМ MathCad, а для узкоспециальных высокопрофессиональных задач предпочтительней СКМ Мathematica.

    Кратко перечислим перспективы совершенствования СКМ по обобщению приведенной литературы:

  • совершенствование серверных интернет-услуг СКМ;
  • совершенствование алгоритмов символьных вычислений, лозунг "Даешь любую задачу – и ЕГЭ, и конкурсную!";
  • дальнейшее развитие методов графической визуализации, интеллектуальное совершенствование интерфейса пользователя;
  • развитие программных средств СКМ MathCad;
  • поддержка современных аппаратных решений, многоядерных процессоров и новых технологий распараллеливания вычислений, нейронных архитектур;
  • расширение возможностей и скорости логического анализа, особенно при одновременной обработке многих тысяч переменных, интеграция с ГИС;
  • совершенствование алгоритмов решения дифференциальных уравнений;
  • новые алгоритмы вычисления корней особых уравнений с большим числом (несколько тысяч) неизвестных;
  • интеграция алгоритмов биоинформатики и генной инженерии, разработка других перспективных пакетов расширений.
  • Контрольные вопросы

  • Что такое СКМ? Когда стало возможно их создание?
  • Что вы знаете о создании отечественной СКМ?
  • Назовите особенности выполнения численных и символьных вычислений в СКМ.
  • Какие СКМ вам известны? Дайте им сравнительную оценку.
  • Какая СКМ наиболее приспособлена для использования в сфере образования? Почему?
  • Какие особенности интерфейса СКМ Mathematica вам известны?
  • Назовите основные составные части СКМ MathCad и их назначение.
  • Что такое сервер Mathcad Application Server и для чего он используется?
  • Какое расширение имеют файлы документов MathCad?
  • Создается ли в СКМ MathCad исполняемый .exe файл и какие особенности работы с документами MathCad из этого возникают?
  • Назовите основные панели инструментов СКМ MathCad и их назначение.
  • Как обозначена кнопка вызова панели Symbolic в СКМ MathCad и почему?
  • Какие действия с математическими выражениями можно выполнять при помощи основных операторов математических преобразований панели Symbolic СКМ MathCad?
  • Какой оператор панели Symbolic СКМ MathCad наиболее универсален для упрощения выражений?
  • Как выполнить аналитическое дифференцирование функции в СКМ MathCad и как проверить правильность результата?
  • В чем отличие способа решения ЛОДУ в СКМ MathCad и Mathematica?
  • Как решить ЛОДУ в СКМ MathCad и как проверить правильность результата?
  • Как найти преобразование Лапласа для элементарных функций? Как проверить результат?
  • Назовите способы импорта таблицы из MS EXCEL в документ СКМ MathCad.
  • Что такое e-Books в СКМ MathCad и как их вызывать?
  • Что такое быстрые шпаргалки Quick Sheets в СКМ MathCad и как ими пользоваться?
  • Почему в учебнике подробно описывается порядок аналитического решения полиномиального уравнения 4 степени, но не приводится результат?
  • Какие перспективы развития СКМ перечислены в учебнике? А какие перспективы видите вы?
  • Вернуться к учебному плану