Математические и научно-технические расчеты являются важной сферой применения персональных компьютеров. Часто они выполняются с помощью программ, написанных на языке высокого уровня, например Бейсике или Паскале. Сегодня эту работу нередко выполняет обычный пользователь ПК. Для этого он вынужден изучать языки программирования и многочисленные, подчас весьма тонкие капризные численные методы математических расчетов. Нередко при этом из под руки способного физика, химика или инженера выходят далёкие от совершенства программы.
Это не вполне нормальное положение может изменить к лучшему применение интегрированных программных систем автоматизации математических расчетов (Eureka, MathCAD, MatLab и др.). Рассматрим возможности и эволюция одной из таких систем - MathCAD.
MATHCAD - универсальный математический пакет, предназначенный для выполнения инженерных и научных расчетов. Основное преимущество пакета - естественный математический язык, на котором формируются решаемые задачи. Объединение текстового редактора с возможностью использования общепринятого математического языка позволяет пользователю получить готовый итоговый документ. Пакет обладает широкими графическими возможностями, расширяемыми от версии к версии. Практическое применение пакета существенно повышает эффективность интеллектуального труда.
От других продуктов аналогичного назначения MATHCAD отличается ориентация на создание высококачественных документов (докладов, отчетов, статей) в режиме WYSIWYG (What You See Is What You Get). Это означает, что, внося изменения, пользователь немедленно видит их результаты и в любой момент может распечатать документ во всем блеске. Работа с пакетом за экраном компьютера практически совпадает с работой на бумаге с одной лишь разницей - она более эффективна. Преимущества MATHCAD состоит в том, что он не только позволяет провести необходимые расчеты, но и оформить свою работу с помощью графиков, рисунков, таблиц и математических формул. А эта часть работы является наиболее рутинной и мало творческой, к тому же она и время емкая и малоприятная.
|
MathCAD является интегрированной системой программирования, ориентированной на проведение математических и инженерно-технических расчетов.
Система MathCAD содержит текстовый редактор, вычислитель и графический процессор.
Текстовый редактор - служит для ввода и редактирования текстов. Тексты являются комментарии и входящие в них математические выражения не выполняются. Текст может состоять из слов, математических выражений и формул, спецзнаков. Отличительная черта системы - использование общепринятой в математике символики (деление, умножение, квадратный корень).
Вычислитель - обеспечивает вычисление по сложным математических формулам, имеет большой набор встроенных математических функций, позволяет вычислять ряды, суммы, произведения, определенный интеграл, производные, работать с комплексными числами, решать линейные и нелинейные уравнения, проводить минимизацию функции, выполнять векторные и матричные операции и т.д.. Легко можно менять разрядность чисел и погрешность интеграционных методов.
Графический процессор - служит для создания графиков. Он сочетает простоту общения с пользователем с большими возможностями графических средств. Графика ориентирована на решение типичных математических задач. Возможно быстрое изменение размеров графиков, наложение их на текстовые надписи и перемещение их в любое место документа. MathCAD автоматически поддерживает работу с математическим процессором. Последний заметно повышает скорость расчетов и вывода графиков, что существенно в связи с тем, что MathCAD всегда работает в графическом режиме. Это связано с тем, что только в этом режиме можно формировать на экране специальные математические символы и одновременно применять их вместе с графиками и текстом. MathCAD поддерживает работу со многими типами принтеров, а так же с плоттерами.
|
MathCAD - система универсальная, т.е. она может использоваться в любой области науки и техники, везде, где применяются математические методы. Запись команд в системе MathCAD на языке, очень близком к стандартному языку математических расчетов, упрощает постановку и решение задач.
ОСНОВНЫЕ МЕНЮ СИСТЕМЫ
Основное меню содержит следующие позиции:
File, Edit, Window, Help – эти группы команд стандартны для всех windows-приложений, на них останавливаться не будем.
View - Наряду со стандартными пунктами имеются команды «Animate» и «Playback» позволяющие создавать и проигрывать анимации.
В пункте «Preferences» можно задать параметры подключения программы к интернет и настройки проверки правописания (только английский язык)
Insert - группа команд по управлению вставкой в документ различных объектов.
Graph – позволяет вставлять в документ графики в 2-х, 3-х, и полярной системах координат
|
Matrix - позволяет вставлять в документ числовой массив
Function - позволяет вставлять в документ функции (причем как обычные математические – синус, косинус, так и специфические матсадовские – работа в изображиниями например)
Unit - позволяет вставлять в документ единицы измерения (метры, градусы и т.п.)
Picture - позволяет вставлять в документ картинки
Math Region/Text Region - позволяет помечать: где вводятся просто текст, а где – формулы
Page Break - позволяет вставлять в документ принудительный переход на следующую страницу
Hyperlink - позволяет вставлять в документ гиперссылку
Reference - позволяет вставлять в документ ссылку на другой файл
Component - позволяет вставлять в документ другой файл из расчетных программ Например из Excel-я, из MathLab.
Object - позволяет вставлять в документ вообще любой файл, например Flash.
Format - группа команд по форматированию документа
Команды задают шрифт, цвет, единицы измерение, отступы для Equation – математических формул;
Results – результатов;
Text – текста;
Paragraph – параграфа;
Tabs – табуляции;
Properties – выделенного объекта;
Graph – формат графиков;
Color – цветовые настройки;
Separate regions/Align regions – разбиение и выравнивание областей
Area – блокировка/разблокировка области
Headers/Footers – заголовок и «подвал» страницы
Repaginate now – переразбить страницы
Math - группа команд по калькуляции формул
Calculate – вычислить выражение;
Calculate Worksheet – вычислить все на листе;
Automatic Calculation – автоматическое вычисление;
Options – точность вычислений;
Symbolics - группа команд для алгебраических вычислений
Evaluate – вычислить (алгебраически/с плав. точкой/комплексные числа);
Simplify – упростить;
Variable, Matrix – работа с переменными и матрицами;
Понятие о документах
Отличительной чертой Mathcad являются так называемые документы, которые объединяют описание математического алгоритма решения задачи (или ряда задач) с текстовыми комментариями и результатами вычислений, заданными в форме символов, чисел, таблиц или графиков. В оригинале документы системы Mathcad названы английским словом Worksheets. В научном мире длинные листы бумаги с текстами, формулами и графиками шутливо называют рабочими «простынями» — так и переводится слово Worksheets буквально.
Фактически документы Mathcad объединяют Код, написанный на визуально-ориентированном языке программирования Mathcad, с результатами его работы и текстовыми и формульными комментариями. Напомним, что визуально-ориентированные языки программирования задают программу не в виде малопонятных кодов, а в виде визуально понятных объектов. Язык программирования Mathcad ориентирован на математические вычисления и потому практически не отличается от обычного языка математических статей, отчетов и книг. Это огромное достоинство системы Mathcad, которое делает документы Mathcad вполне ясными даже школьникам и студентам младших курсов вузов, имеющим элементарные знания по математике.
Итак, уникальное свойство Mathcad — возможность описания математических алгоритмов в естественной математической форме с применением общепринятой символики для математических знаков, таких, например, как квадратный корень, знак деления в виде горизонтальной черты, знак интеграла и т. д. Это делает документ, видимый на экране дисплея, чрезвычайно похожим на страницы текста математических книг или научных статей. Такой подход значительно облегчает восприятие математической сущности решаемой задачи и избавляет пользователя от изучения некоторого промежуточного языка программирования (например Фортрана, Бейсика, Паскаля и т. д.). Можно сказать, что в Mathcad идея решения математических задач без их программирования доведена до высшего совершенства — подавляющее большинство задач требуют лишь корректного формульного описания решениям не нуждаются в подготовке программ в их общепринятом понимании.
Особые средства оформления
Последние версии системы Mathcad предоставляют новые средства для подготовки сложных документов, именуемых электронными документами. В них предусмотрено красочное выделение отдельных формул, многовариантный вызов одних документов из других, возможность закрытия «на замок» (и «открытия» при указании пароля) отдельных частей документов, гипертекстовые и гипермедиассылки и т. д. Это позволяет создавать превосходные обучающие программы и целые книги по любым курсам, базирующимся на математическом аппарате.
Все версии Mathcad под Windows позволяют работать как с латинскими буквами, так и с кириллицей (буквами русского алфавита), греческим алфавитом и вообще с любыми символами, доступными в Windows. Более того, благодаря применению масштабируемых TTF - шрифтов можно управлять как размером символов, так и их начертанием (делая буквы прямыми или наклонными, тонкими или жирными). Все это дает возможность готовить документы и электронные книги высокого качества как на английском, так и на русском языках.
Впрочем, не стоит забывать, что это достоинство — результат работы системы в среде Windows, которая может быть русифицированной. Это порой ведет к разноязычности надписей на элементах интерфейса. Греческие символы и математические спецзнаки раньше были недоступны в текстовых комментариях, теперь же и этот недостаток полностью устранен.
Понятие о входном языке общения и языке реализации Mathcad
Как следует из вышесказанного, общение пользователя с системой Mathcad происходит на уровне так называемого входного языка, максимально приближенного к обычному языку описания математических задач. Поэтому решение таких задач не требует программирования в общепринятом смысле — написания программ на некотором промежуточном языке или в машинных кодах.
Вот, к примеру, как выглядит вычисление квадрата переменной х с заданным значением х=3 на популярном языке Pascal и на Mathcad:
Pascal Mathcad Комментарий | ||
х= 3 | х:= 3 | Переменной Х присваивается значение 3 |
У = х^2 | у:= х2 | Переменной у присваивается значение Х в квадрате |
writeln(“y=";y) | у= 9 | Вывод значения переменной у |
запись выражений на Mathcad куда более естественна, чем на Бейсике. К тому же она существенно короче. Эти достоинства проявляются еще сильнее при более сложных вычислениях. Тем не менее это не означает, что в системе нет своего языка программирования. В действительности он есть, но это математически ориентированный особый язык программирования сверхвысокого уровня, используемый в основном как язык диалога с системой.
Входной язык Mathcad относится к интерпретируемому типу. Это означает, что, когда система опознает какой-либо объект, она немедленно исполняет указанные в блоке операции. Объектами системы могут быть формульные, текстовые и графические блоки. При этом формульные блоки могут иметь особые признаки — атрибуты, например, активности, пассивности и оптимизации.
Важно сразу учесть, что Mathcad выполняет действия над блоками в строго определенном порядке — блоки анализируются (оцениваются) слева направо и сверху вниз. Это означает, что блоки нельзя располагать в документе произвольно. Блоки, готовящие какие-либо операции, должны предшествовать блокам, которые выполняют эти операции. Исключением являются блоки с глобальным определением (они также будет рассмотрены позже). Их можно располагать в любом месте документа, например в конце.
В подавляющем большинстве расчетных задач входной язык общения с Mathcad позволяет задавать их решение в виде вводимых с помощью операторов и функций математических формул и указывать тип желаемых результатов (таблицы или графики). Специальные приемы предусмотрены лишь для задания циклического изменения переменных и создания так называемых ранжированных переменных, имеющих набор значений.
Визуально-ориентированный язык общения системы Mathcad надо отличать от языка реализации системы, то есть обычного языка программирования высокого уровня, на котором написана система. Языком реализации системы Mathcad является один из самых мощных языков высокого уровня — C++.
По существу, входной язык системы — промежуточное звено между скрытым от пользователя языком документа и языком реализации системы. По мере того как пользователь создает (средствами текстового, формульного и графического редакторов) в окне редактирования объекты (тексты, формулы, таблицы и графики), система сама составляет программу на некотором промежуточном языке связи, которая хранится в оперативной памяти до тех пор, пока не будет записана на диск в виде файла с расширением. mcd.
В версии Mathcad 2000 PRO значительно снижены требования и к знанию даже входного языка. Практически все операторы, имеющие вид привычных математических символов, можно выбирать мышью в палитрах математических объектов, а большинство математических функций (например, sin, cos, ехр и т. д.) имеют естественную форму задания, например, sin (х) так и вводится — sin (х). К тому же есть возможность выбора функций из списка, имеющегося в специальном окне, что резко уменьшает вероятность ошибок при вводе. Этот список выводится с помощью кнопки f(x) на панели инструментов.
В Mathcad эффективно решена проблема сквозной передачи данных от одного объекта к другому, например, от одного математического выражения к другому, от него к таблицам, от таблиц к графикам и т. д. Поэтому изменение в любой формуле или в задании входных данных тут же ведет к пересчету задачи по всей цепи взаимодействия объектов (это не относится, однако, к символьным операциям, реализуемым с помощью команд меню).
Средства повышения эффективности вычислений и их оптимизация
Как отмечалось, входной язык системы Mathcad — интерпретируемый. В интерпретаторах, например, в Бейсике, листинг программы пользователя анализируется системой сверху вниз
(а в пределах строки — слева направо), и любые указания в программе тут же выполняются. Так же просматриваются блоки в системе Mathcad. Как только блок опознается, система автоматически запускает внутренние подпрограммы для выполнения необходимых действий, например, вычисления по формуле, вывода таблицы значений вектора, построения рисунка по его шаблону и т. д. Интерпретаторы работают медленно, поэтому не случайно, что пользователи, работавшие со старыми версиями Mathcad, отмечали медлительность систем, особенно при сложных вычислениях и при построении графиков. Медлительность является и следствием работы системы в графическом режиме, когда малейшее изменение содержания экрана требует его полной перерисовки.
В последние версии Mathcad введена экспертная система SmartMath. Эта система старается использовать при численных вычислениях конечные формулы, полученные в результате символьных (аналитических) преобразований. Часто (хотя и не всегда) это дает значительное ускорение вычислений в сравнении с их реализацией численными методами.
Операция оптимизации вычислений с помощью системы SmartMath вводится специальными атрибутами (знак * у формул) и словами — директивами. Их число в новых версиях Mathcad значительно увеличено, и для ввода операторов и директив символьной математики добавлена специальная палитра. Таким образом система SmartMath превратилась в полноправного члена семьи Mathcad. Наиболее развит этот подход в самом мощном варианте системы — Mathcad 2000 Premium, в состав которой введено оптимизирующее расширение The Expert Solver, автоматически включающее «на всю катушку» средства SmartMath.
ВЫЧИСЛЕНИЯ В MATHCAD
Понятия используемые в MathCAD: переменная, константа, системная переменная, функция, оператор.
Задание переменных с пределами изменения, что дает возможность проведения циклических вычислений. Целоисчисленная переменная, меняющаяся с шагом 1 от значения Start до значения End, задается следующим образом:
Name: Start;End что дает Name:= Start..End
Идентификаторы
Алфавит системы MathCAD строчные и прописные латинские буквы, арабские цифры, ряд греческих букв и специальных знаков. С их помощью задаются имена встроенных функций и операторы и идентификаторы. Идентификаторы должны начинаться с буквы и их имена должны быть уникальны. (qwerty, resultat – можно; 1u, sin, альфа - нельзя)
Греческие буквы вводятся нажатием клавиши Alt и некоторых латинских букв.
Константы - это тип данных, имеющие неизменное значение во всей программе. В системе имеется только один тип констант - числовые. К числовым константам могут относится и предварительно определенные переменные (системные переменные):
p = 3.14159 p
е = 2.71823 основание натурального логарифма
¥ = 10 ²бесконечность²
% = 0.01 процент
TOL = 0.001 погрешность численных методов
ORIGIN = 0 нижняя граница индексации массивов
Значения их можно переопределить, но не рекомендуется.
Переменные: набирается: Х:=123
Для ввода значений переменных Х =. Форма вывода зависит от установленного пользователем формата вывода. Он может быть глобальным, то есть относится ко всей программе, может быть локальным, то есть действовать в ограниченной области.
Глобальный формат
RADIX = d - тип используемых чисел (d - десятичные).
PRECISION DISPLAYED = 4 - количество знаков после запятой.
EXPONENTIAL THRESHOLD = 6 - граница представления чисел в экспоненциальной форме.
IMARGINARY SYMBOL = i - обозначение для мнимой единицы.
ZERO TOLERANCE = 15 - значение машинных нулей при вычислении.
COMPLEX TOLERANCE = 15 - представление машинных нуля для комплексных чисел.
OVERALE DEFAULT - глобальная установка данных.
REVERT - возврат к исходным данным.
DONE - продолжение работы.
Для задания циклических вычислений с целоисчисленной управляющей переменной цикла пользуйтесь следующей конструкцией:
имя переменной:=Nнач...Nкон цикл
с целой
(вводится как;)
Если Nнач < Nкон, то шаг изменения переменной положительный, если Nнач > Nкон, то отрицательный.
Функции. В системе имеется множество функций (тригонометрические, гиперболические, статистические, и т.д.). функция в ответ на обращение к ней по имени с указанием аргументов должны возвратить свое значение.
Х:=1
2+sin(Х)=2.841
Можно задать внешние функции, или функции пользователя.
eх es (Х):=exp(sin(X)) - такая функция будет вести себя как встроенная
Операторы. Специальные знаки или слова, вызывающие определенные действия (+, -, =,:, <, >, Ö).