Тема-3-5. Основы работы с математическими пакетами (MathCad)
Скачать 3.25 Mb.
|
Тема 3.5. Основы работы с математическими пакетами Страница 251 Тема 3.5. Основы работы с математическими пакетами 3.5.1. Основные средства и использование математических пакетов 3.5.2. Базовые элементы математического пакета MathCad 3.5.3. Базовые элементы математического пакета MatLab 3.5.4. Контольные вопросы по теме «Основы работы с математическими пакетами (MathCad)» 3.5.5. Контольные вопросы по теме «Основы работы с математическими пакетами (MatLab)» 3.5.6. Тестовые задания по теме «Основы работы с математическими пакетами (MathCad)» 3.5.7. Тестовые задания по теме «Основы работы с математическими пакетами (MatLab)» 3.5.1. Основные средства и использование математических пакетов Появление компьютеров изменило все сферы современной науки и общественной, и даже личной, жизни. Появилась возможность проводить сложнейшие вычислительные эксперименты, что экономит не только деньги, но и время. Последнее обстоятельство особенно важно для научных работников, педагогов и студентов. Вместе с тем появление современных систем компьютерной математики позволяет, не отказываясь от принципов фундаментальности классического образования, качественно из- менить подходы и методы изложения материала, сделать его более наглядным и доступным, а, следовательно, более интересным и привлекательным для основной массы обучающихся. Сегодня нечасто вспоминают о том, что компьютеры были созданы в первую очередь для проведения научных расчетов. До сих пор научные и инженерные расчеты остаются одной из важнейших сфер приложения компьютеров. За многие годы накоплены обширные библиотеки научных и учебных подпрограмм, предназначенных для решения типовых задач (задачи линейной алгебры, интегрирование, решение дифференциальных уравнений и других математических задач). Между тем появление современных систем компьютерной математики позволяет, не отказываясь от принципов фундаментальности классического образования, качественно из- менить подходы и методы изложения материала, сделать его более наглядным и доступным, а, следовательно, более интересным и привлекательным для основной массы обучающихся. В настоящее время появились хорошо работающие математические пакеты, такие как Maple, Mathematica, Mathcad, Matlab и некоторые другие. Все упомянутые выше системы, так же как и большинство неупомянутых, пакетов являются весьма дружественными по отношению к пользователю. Конечно же, и синтаксис языка пользователя у них различный, и библиотеки доступных функций могут меняться от нескольких сотен до тысяч, и внутренние структуры и даже используемые алгоритмы значительно отличаются друг от друга, но все они обладают общими свойствами. Таких принципиальных общих свойств значительно больше, чем различий и, таким образом, после освоения одной из систем компьютерной алгебры переход к другой системе не является сложной проблемой. Для новичка (студента) языки систем компьютерной математики – наиболее простые для использования. Действительно, сначала ему требуется знать лишь несколько функций, которые позволят ему переписать рассматриваемую проблему в виде, очень похожем на ее математическую формулировку. Даже если переписывание выполняется некорректно, интерактивный режим позволяет после нескольких шагов быстро получить результаты, Тема 3.5. Основы работы с математическими пакетами Страница 252 которые нельзя получить с помощью карандаша и бумаги. А для очень многих приложений этого достаточно. Пакет Mathematica, по-видимому, является сегодня наиболее популярным в научных кругах, особенно среди теоретиков. Пакет предоставляет широкие возможности в проведении символических (аналитических) преобразований, однако требует значительных ресурсов компьютера. Система команд пакета во многом напоминает какой-то язык про- граммирования, Пакет Maple также весьма популярен в научных кругах. Пользователи характеризуют Maple как очень надежный и устойчиво работающий Математический пакет. Кроме аналитических преобразований пакет в состоянии решать задачи численными методами. Характерной особенностью пакета является то, что ряд других программных продуктов используют интегрированный символический процессор Maple. Подобно упомянутым выше пакетам, пакет Matlab фактически представляет собой своеобразный язык программирования высокого уровня, ориентированный на решение научных и учебных задач. Характерной особенностью пакета является то, что он позволяет сохранять документы в формате языка программирования С. Пакет Mathcad популярен, пожалуй, более в инженерной и учебной и учебной среде. Характерной особенностью пакета является использование привычных стандартных математических обозначений, то есть документ на экране выглядит точно так же обычный математический расчет. Для использования пакета не требуется изучать какую-либо систему команд, как, например, в случае пакетов MatLaB или Maple. Пакет ориентирован в первую очередь на проведение численных расчетов, но имеет встроенный символический процессор Maple, что позволяет выполнять аналитические преобразования. В последних версиях предусмотрена возможность создавать связки документов Mathcad с документами Matlab. В отличие от упомянутых выше пакетов, Mathcad является средой визуального программирования, то есть не требует знания специфического набора команд. Простота освоения пакета, дружественный интерфейс, относительная непритязательность к возможностям компьютера явились главными причинами того, что именно этот пакет стал наиболее популярным при обучении студентов. Однако, в отличие от алгоритмических языков программирования, в которых синтаксические тонкости требуют тщательного изучения, в то время как принципы работы компилятора можно полностью игнорировать, здесь пользователь должен разобираться, «как это работает», в частности, как представляются и обрабатываются данные. В действительности, хотя обычно трудно предсказать время вычисления и размер результатов, знание принципов работы может дать представление о порядке их величины и при необходимости оптимизировать их. Эти оценки в действительности существенны: для большинства математических вычислений результаты получаются почти моментально, и все идет отлично. Но если это не так, то требуемое время и память возрастают обычно экспоненциально. Таким образом, выполнимость данных вычислений не всегда очевидна, и глупо жертвовать значительными ресурсами, когда неудачу можно предсказать заранее. Поэтому владение эффективным стилем программирования и способность предвидеть размер вычислений являются здесь значительно более весомыми, чем в численных расчетах, где возрастание обычно бывает линейным. К сожалению, это в значительной степени приобретается с опытом. В последнее время просматривается тенденция к сближению и интеграции различных пакетов. Например, последние выпуски пакетов Mathematica и Maple имеют хорошие возможности для визуального программирования; в Matlab включена библиотека аналитических преобразований Maple; Mathcad позволяет работать совместно с Matlab. К сожалению, существует настоящая пропасть между теми численными методами, которые описаны в учебниках,м учебных пособиях для студентов и теми, которые применяются на практике . В замечательной, хотя и недоступной для большинства студентов книге Тема 3.5. Основы работы с математическими пакетами Страница 253 «Numerical Recipes in C», авторы замечают: «Увы, времена меняются; ... классические формулы почти абсолютно бесполезны. Они являются музейными экспонатами, хотя и прекрасными», В данной статье делается попытка перебросить мостик через эту пропасть. Обычно, начиная работать с любой из математических пакетов, студент достаточно легко решает небольшие и несложные примеры и задачи из учебника. Однако, приступая к решению настоящих (реальных) задач, пользователь сталкивается с рядом проблем: то компьютер слишком долго считает, то не хватает памяти, то в ответе получается формула на 5-10 страниц, а то машина выдает и вообще неправильный ответ. После этого встает вопрос – «Стоит ли тратить время на детальное изучение таких "игрушечных" систем и не лучше ли потратить это время на написание самих формул?». Бездумное применение пользователем математических пакетов таит в себе большие проблемы. Необходимо отметить, что пользователи пакетов компьютерной математики должны иметь представление об основных численных методах. Вообще говоря, появление современных вычислительных систем значительно облегчает доступ к компьютеру непрофессионалам в области программирования, и поддерживает постоянное стремление к их усовершенствованию и освоению новых компьютерных технологий. Системы компьютерной математики представлены разработками различных фирм (MathSoft, MathWorks, Maple, Wolfram и др.). Прежде чем начать изучение конкретных систем, оценивая их достоинства и недостатки, мы познакомимся со структурой, принципами работы и элементами, которые характерны для всех систем компьютерной математики. Довольно условно структура СКМ показана на рис. 5.1.1-1. Рис. 5.1.1-1. Структура универсальных систем компьютерной математики Ядро системы содержит коды множества быстро исполняемых функций и процедур, обеспечивающих достаточно представительный набор встроенных функций и операторов системы. Их число в ядре современных СКМ может достигать многих тысяч. Например, ядро системы Mathematica содержит данные о более чем 5000 одних только интегралов, хотя для интегрирования используются только несколько встроенных функций. Интерфейс современных СКМ характерный для всех Windows-приложений, обеспечивает присущие им удобства работы и дает пользователю возможность обращаться к ядру со своими запросами и получать результат решения на экране. Библиотеки содержат процедуры и функции, которые используются более редко. Это связано с тем, что функции и процедуры, включенные в ядро, выполняются быстро, если их не слишком много, и поэтому объем ядра ограничивают Общее число доступных пользователю функций ядра и библиотек достигает нескольких тысяч. Тема 3.5. Основы работы с математическими пакетами Страница 254 Пакеты расширения кардинально расширяют возможностей систем и их адаптацию к решаемым конкретными пользователями. Эти пакеты (нередко и библиотеки) пишутся на собственном языке программирования той или иной СКМ, что делает возможным их подготовку обычными пользователями. Наращивание возможностей систем с помощью пакетов расширения практически ничем не ограничено. Справочная система стала нормой для сопровождения компьютерных математических систем. Справочная система обычно поддерживает следующие возможности доступа к справочным данным: оперативная; всплывающая подсказка по элементам интерфейса, получаемая наведением на них указателя мыши; оперативная справка по операторам и функциям, получаемая нажатием клавиши F1 при курсоре ввода, установленном на операторе или в имени функции; оперативная справка, получаемая вводом символа ? или слова help, после которого указывается имя объекта, по которому требуется справка; и др. Рекордсменом по обилию справочных материалов является система MatLab. Объем только описаний системы в формате файлов RTF достигает более200 Мбайт – это соответствует десяткам книг обычного формата. По существу, с системой поставляется уникальная справочная информация по всем вопросам применения математики. И эта электронная документация является лишь частью полных справочных материалов. В их числе сотни эффективных примеров применения системы. Здесь особо надо отметить систему Maple – в ее справочной системе около десятка тысяч примеров. К сожалению, справочные системы англоязычные, что резко снижает их ценность для русскоязычных пользователей. Тем не менее, именно справочные системы содержат детальное описание интерфейса, операторов и функций, которое трудно найти в книгах и руководствах пользователя. Необходимо отметить, что ядро, библиотеки, пакеты расширения и справочная система современных СКМ аккумулируют знания в области математики, накопленные за тысячелетия ее развития. Поэтому СКМ относят к интеллектуальным программным продуктам, одно из назначений которых – предоставление пользователю знаний в области численных методов расчета и моделирования, аналитической математики и современной графики. 3.5.2.Базовые элементы математического пакета MathCad 3.5.2.1. Рабочая среда MathСad и простейшие вычисления Mathcad является уникальной системой для научных и инженерных расчетов и позволяет работать с формулами, числами, текстом и графиками. С помощью Mathcad можно решить почти любую математическую задачу аналитически либо численно. Mathcad позволяет записывать на экране компьютера формулы в их привычном виде. Mathcad имеет свою собственную справочную систему. Электронные Книги делают доступными для использования в рабочем документе множество полезных формул, справочных данных и диаграмм простым нажатием кнопки. Объединяя в одном рабочем листе текст, графику, и математические выкладки, Mathcad облегчает понимание самых сложных вычислений. Интерфейс Mathcad аналогичен интерфейсу других Windows-приложений. После запуска пакета на экране возникает рабочее окно (рис.3.5.2-1) со следующими панелями: ∂ панель Главного меню (рис.3.5.2-2); ∂ панель Стандартная, содержащая основные команды и операции (рис.5.5.2-3); Тема 3.5. Основы работы с математическими пакетами Страница 255 ∂ панель Форматирование, содержащая операции по выбору типа и размера шрифтов, расположения текста и т.п.; ∂ панель Математика, содержащая кнопки с палитрами часто используемых математических обозначений (рис.3.5.2-4); ∂ нижняя строка – строка состояния, где приводится информация о текущих режимах. ∂ линейки вертикальной и горизонтальной прокрутки, используемые при работе с большими документами. Рис. 3.5.2-1. Вид рабочего окна после первой загрузки 1 2 3 4 5 6 7 8 9 10 1. Кнопка раскрытия системного меню Mathcad. 2. Команды, связанные с созданием, открытием, сохранением и печатью файлов. 3. Команды, связанные с правкой текста. 4. Команды, управляющие внешним видом документа в рабочем окне. 5. Команды вставки различных объектов в документ. 6. Команды форматирования текста, формул и графиков. 7. Команды управления вычислительным процессом. 8. Команды символьных вычислений. 9. Команды расположения окон документов на экране. 10. Вызов справочной информации. Рис. 3.5.2-2. Главное меню Тема 3.5. Основы работы с математическими пакетами Страница 256 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 – создать новый документ; 2 – открыть файл; 3 – сохранить файл; 4 – печать файла; 5 – просмотр файла перед печатью; 6 – проверить орфографию; 7 – вырезание объекта; 8 – копирование объекта; 9 – вставка объекта; 10 – отмена предыдущего действия; 11 – повторение предварительно отмененного действия; 12 – выравнивание группы объектов по горизонтали; 13 – выравнивание группы объектов по вертикали; 14 – открыть окно функций; 15 – открыть окно единиц измерений; 16 – пересчет документа; 17 – открыть окно гиперссылок; 18 – запуск мастера вставки в рабочее окно другого приложения; 19 – вставить компонент; 20 – список масштабных коэффициентов; 21 – открыть справку. Рис. 3.5.2-3. Назначение кнопок панели инструментов Стандартная Рис. 3.5.2-4. Палитры панели инструментов Математика Рассмотрим «Основные объекты системы Mathcad». Общение с пользователем системы Mathcad осуществляется с помощью математически ориентированного входного языка, который является типичным языком визуального программирования. Большинство операторов и функций входного языка Тема 3.5. Основы работы с математическими пакетами Страница 257 знакомо пользователю по курсу математики. Благодаря этому большая часть расчетов в Маthcad не требует программирования в общепринятом смысле этого слова. Алфавит входного языка – это совокупность символов и слов, которые используются при задании команд и функций, необходимых для решения интересующего пользователя класса задач. Алфавит системы Mathcad содержит строчные и прописные буквы латинского алфавита, цифры, ряд греческих букв и специальных знаков. Общение пользователя с системой происходит на некотором промежуточном математически ориентированном языке визуального программирования. Последовательность математических вычислений проводится с использованием операторов и функций. Кроме того, к алфавиту Mathcad также относятся, все знаки, которые можно ввести с помощью палитр панели Математика. Число – простейший объект языка Mathcad, представляющий количественные данные. В Mathcad числа могут быть целыми, дробными, с фиксированной и плавающей точкой (в экспоненциальном виде). Например: 9, -65, 0.0005, 76.e-4, -5.67e12. Для представлений комплексных чисел, имеющих действительную и мнимую части, в Mathcad используется переменная (i или j), служащая множителем мнимой части и означающая корень квадратный из -1. Например: 7i, -5.4+i7, 0.004e-j0.1. Операторы – элементы языка, предназначенные для создания математических выражений совместно с данными, именуемыми операндами. Наиболее известны арифметические операторы, например, сложение (+), вычитание(-), умножение (*) и деление (/). Функции – это объекты входного языка, имеющие имя и параметры, указываемые в круглых скобках через запятую. Имя функции, как правило, соответствует имени математической функции. Функции обладают свойством возвращать некоторое значение, в ответ на обращение к ним по имени с указанием аргумента или списка аргументов. Полный перечень встроенных функций Mathcad насчитывает более 290 позиций. Поэтому приведём лишь некоторые из них, отметив, что некоторые специальные функции, предназначенные для реализации численных методов, будут подробно рассмотрены в Разделе 6: atan(z) – арктангенс; bsplin(vx,vy,u,n) – вектор коэффициентов В-сплайна степени n (1, 2 и 3) для данных, представленных векторами vx и vy, и вектора u, имеющего (n-1) элементов; ceil(x) – наименьшее целое, не превышающее х; cols(A) – число столбцов в матрице А; combin(n,k) – возвращает число сочетаний k из n>k; corr(vx,vy) – коэффициент корреляции векторов vx и vy; cos(z) – косинус; cot(z) – котангенс; exp(z) – значение е (основание натурального логарифма) в степени z; Find(var1, var2,…) - значение var1, var2,…, дающее решение системе уравнений в блоке, объявленном Given , который может содержать условия ограничения; floor(x) – наибольшее целое число, меньшее или равное х; Im(z) – мнимая часть комплексного числа z; ln(z) – натуральный логарифм; log(z) – десятичный логарифм; max(M) – наибольший элемент в матрице А; min(A) – наименьший элемент в матрице А; |