МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ Белорусский национальный технический университет Кафедра «Инженерная математика» МАТЕМАТИКА Лабораторный практикум для студентов механико-технологического факультета В 2 частях Часть 1 Минск БНТУ 2012 УДК 51(076.5) ББК 22.1я7 М34 С о с т а в и т е л и : Л. В. Бокуть, Н. К. Прихач, А А. Литовко, Л. А. Барминова, О. В. Дубровина П о д о б щ е й р е д а к ц и е й В. А. Нифагина Р е ц е н з е н т ы : И. Н. Мелешко, В. И. Юринок Математика : лабораторный практикум для студентов механико-технологиче- ского факультета : в 2 ч. / Л. В. Бокуть [и др.]; под общ. ред. В. А. Нифагина. – Минск : БНТУ, 2012. – Ч. 1. – 95 с. ISBN 978-985-525-930-6 (Ч. 1). Данный лабораторный практикум включает основные лабораторные работы, предусмот- ренные программой курса математики для специальностей механико-технологического фа- культета. УДК 51(076.5) ББК 22.1я7 ISBN 978-985-525-930-6 (Ч. 1) Белорусский национальный ISBN 978-985-525-931-3 технический университет, 2012 М34 3 СОДЕРЖАНИЕ Введение ....................................................................................................................... 4 Л а б о р а т о р н а я р а б о т а № 1 РАБОТА С СИМВОЛЬНЫМ ПАКЕТОМ ИНЖЕНЕРНЫХ РАСЧЕТОВ MATHCAD. ОФОРМЛЕНИЕ ДОКУМЕНТА, ВВОД И РЕДАКТИРОВАНИЕ ФОРМУЛ. .............................................................. 5 Л а б о р а т о р н а я р а б о т а № 2 ВЫЧИСЛИТЕЛЬНЫЕ ОСОБЕННОСТИ MATHСAD. ОПЕРАТОРЫ И МАТЕМАТИЧЕСКИЕ ФУНКЦИИ. .......................................... 24 Л а б о р а т о р н а я р а б о т а № 3 ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ ПАКЕТА ИНЖЕНЕРНЫХ РАСЧЕТОВ MATHCAD. .......................................................................................... 36 Л а б о р а т о р н а я р а б о т а № 4 РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ...... 50 Л а б о р а т о р н а я р а б о т а № 5 ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ И ОПТИМИЗАЦИЯ ФУНКЦИЙ. ............................................................................ 66 Л а б о р а т о р н а я р а б о т а № 6 ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ В ПАКЕТЕ ИНЖЕНЕРНЫХ РАСЧЕТОВ MATHCAD ........................................................................................... 80 4 Введение В последнее время большое развитие получило новое научное направление – компьютерная математика. Компьютерная математика – это совокупность методов и средств, обеспечивающих максимально комфортную и быструю под- готовку алгоритмов и программ для решения математических задач любой сложности с высокой степенью визуализации всех его этапов. С целью автоматизации научно-технических расчетов и для математиче- ского моделирования природных явлений и технических устройств были раз- работаны программные системы компьютерной математики. Сейчас они пред- ставлены пакетами MathLab, MathCad, Mathematics, Maple, Statistics и др. В издании рассматриваются работы по численным математическим мето- дам, расширяющим и обобщающим классические аналитические методики ре- шения задач математического анализа, алгебры и дифференциальных уравнений в MathCad – популярной системе компьютерной алгебры, ориентированной на подготовку интерактивных документов с вычислениями и визуальным сопро- вождением, отличающейся легкостью использования и применения для работы. Лабораторный практикум включает в себя несколько вводных работ по па- кету MathCad, знакомящих читателя с вводом-выводом информации, работе с переменными, операторами и функциями, оформлением MathCad-документов, графикой. Далее рассматриваются вопросы решения линейных и нелинейных уравнений и систем, задачи оптимизации и решения дифференциальных урав- нений, аппроксимации и интерполяции функций, численного интегрирования, нахождения точечных и интервальных оценок параметров распределения, а также элементы программирования в MathCad. Описывается постановка задачи, численная схема ее решения, а также пример ее реализации в рамках пакета MathCad. В каждой работе представлены варианты заданий и контрольные во- просы, выполнение которых позволяет проверить степень усвоения материала. Все перечисленные работы представлены в электронном варианте в виде гипертекста с интерактивными элементами. Web-формат предоставляет возмож- ность для гибкого подхода к содержанию предлагаемых работ, когда можно ва- рьировать объем и сложность предлагаемых заданий, а также вид отчетности. Одна часть задания носит методический характер и выполняется под руковод- ством преподавателя, а другая часть содержит элементы исследования, требую- щего творческого подхода. Она предназначена для самостоятельной работы и предполагает подготовку итогового отчета. 5 Л а б о р а т о р н а я р а б о т а № 1 РАБОТА С СИМВОЛЬНЫМ ПАКЕТОМ ИНЖЕНЕРНЫХ РАСЧЕТОВ MATHCAD. ОФОРМЛЕНИЕ ДОКУМЕНТА, ВВОД И РЕДАКТИРОВАНИЕ ФОРМУЛ Цель работы: изучение вычислительных возможностей символьного па- кета MathCAD для научных и инженерных расчетов; приобретение навыков ра- боты с документом MathCAD. Теоретические сведения Элементы интерфейса и организация документа. MathCAD является уникальной системой для работы с формулами, числами, текстами и графика- ми. Он так же гибок, как самые мощные электронные таблицы и языки про- граммирования, но легок в освоении и приятен в использовании. Рассмотрим основные элементы интерфейса MathCAD. Запуск пакета про- изводится двойным щелчком по пиктограмме MathCAD на рабочем столе или активизацией соответствующей опции главного меню (Пуск → Программы → MathSoft Apps → MathCAD). При этом разворачивается окно приложения, ко- торое содержит окно документа с именем Untitled:1, через него осуществляется доступ к рабочему документу MathCAD. Формулы могут размещаться в любом месте рабочего документа MathCAD. Чтобы подвести курсор к нужному месту, не видимому в настоящий момент в окне, можно использовать полосы прокрутки, как в любой программе Windows. Подобно другим программам Windows, MathCAD содержит полосу меню, ниже которой расположена панель инструментов. Многие команды меню можно быстро вызвать, нажав кнопку на панели инструментов. Для того чтобы узнать, что делает кнопка, достаточно указать на нее, и появится строка сообщения. Если активизировать кнопку не нужно, то достаточно убрать с нее указатель, не отпуская кнопку мыши. Если указатель остановлен на кнопке, по- является текст, описывающий ее действие. Прямо под панелью инструментов располагается панель шрифтов. Она содержит выпадающие меню выбора и кнопки, используемые для зада- ния характеристик шрифтов в уравнениях и тексте. Для вставки операторов, греческих букв, графиков и т. п. служат кнопки палитры «Математика» (рис. 1.1). В целях экономии места на экране каждая из этих компонент может быть выведена на экран либо скрыта с помощью соответствующей команды меню Вид (View). Как правило, регулярно используются палитра вычислений (рис. 1.2), а также палитры «Матрицы» и «Матанализ» (рис. 1.3). 6 Рис. 1.1 Рис. 1.2 Рис. 1.3 Рассмотрим аспекты управления рабочим документом. Чтобы открыть су- ществующий рабочий документ, нужно выбрать пункт Открыть (Open) из ме- ню Файл. MathCAD запросит имя файла. В самом низу меню MathCAD выдаст список файлов, которые открывались последними. Выбор имени файла из этого списка сразу открывает файл. В меню Файл есть два пункта, касающиеся со- хранения файлов: Сохранить (Save), Сохранить как (Save As). Для записи ра- бочего документа, ранее никогда не сохраняющегося, можно выбрать любой из них, в результате чего появится диалоговое окно Сохранить как (Save As), в котором можно набрать имя файла. Для перезаписи исходного рабочего до- 7 кумента (его измененной версии) нужно выбрать пункт Сохранить (Save) или нажать комбинацию клавиш [Ctrl + S], в результате чего MathCAD уничтожает исходную копию рабочего документа и записывает новую, показываемую в ра- бочем окне. Хотя интерфейс предназначен для сложных, математических вы- числений, его можно использовать как калькулятор. Для этого необходимо вы- полнить перечисленные ниже действия. 1. Щелкните в любом месте рабочего документа – появится небольшой крестик. Теперь весь ввод с клавиатуры будет размещаться в рабочем докумен- те, начиная с места расположения крестика. 2. Напечатайте 2.103/420 . После набора знака «=» MathCAD вычисля- ет выражение и выводит результат. Этот пример демонстрирует особенности работы с данным интерфейсом. 1. MathCAD отображает формулы в том виде, в каком их печатают в кни- гах или пишут на доске – по всей площади экрана; подбирает размеры для дробных черт, скобок и других математических символов, чтобы они выгляде- ли так, как их обычно пишут на бумаге. 2. MathCAD понимает, какую операцию выполнять первой. После ввода знака равенства «=» MathCAD показывает результат. 3. После ввода оператора MathCAD показывает небольшой прямоуголь- ник, называемый полем ввода, который содержит места для ввода чисел и вы- ражений. Выражение на экране можно редактировать, устанавливая в нужном месте указатель и удаляя старые или вводя новые символы, цифры или операторы. В пакете MathCAD можно оперировать переменными и функциями, при помощи которых становится возможным связь уравнений и использование промежуточных результатов в дальнейших вычислениях. Правила определения переменных: введите имя переменной, которую нужно определить; введите двоеточие (:), чтобы ввести символ присваивания (MathCAD вы- водит символ присваивания (:=)); введите значение, присваиваемое переменной; оно может содержать чис- ловые константы и любые, ранее определенные переменные и функции. Слева от знака «:=» могут стоять: имя простой переменной, например x2; имя переменной с нижними индексами – элемент массива; матрица с элементами, являющимися простыми переменными или пере- менными с нижними индексами; имя функции со списком аргументов, состоящих из имен простых пере- менных, например zyxf ,, ; имя переменной с верхним индексом – элемент вектора. Заметим, что вводимые в MathCAD символы не всегда соответствуют отображаемым в рабочем документе. 8 Пример 1.1 . Задание переменных. k t s d k s m 2 k 0.018 d 145.8 i 1 6 v 1 2.08e 0.3 MathCAD читает рабочий документ сверху вниз и слева направо. Опреде- лив переменную, ее можно использовать в вычислениях ниже и правее области, в которой она определена. Попробуйте задать переменную сами, используя следующий алгоритм: наберите имя переменной, например t; напечатайте символ « : » (двоеточие); в рабочем документе появится знак присваивания (:=); напечатайте значение, которое присваиваете переменной t, например 11; наберите 9/2 [space]*t^2=, где [space] – клавиша пробела; символ «^» означает возведение в степень, * – знак умножения, а наклонная черта вправо ( / ) – деление. После ввода знака «=» MathCAD возвращает результат. Окно рабочего до- кумента содержит одно определение, которое определяет переменную, и одно вычисление, которое дает результат. Интерфейс пересчитывает результаты сра- зу после внесения любых изменений в рабочий документ. Если заменить, например, число 11 в примере на какое-либо другое, MathCAD изменит резуль- тат, когда будет введен [Enter] или щелкнете мышью вне формулы. Пересчет формул можно произвести нажатием F9. Переменные могут быть определены в одном и том же рабочем документе неоднократно, например, дважды. MathCAD будет просто использовать первое определение для всех выражений ниже первого определения и выше второго. В выражениях, находящихся ниже второго определения, MathCAD использует второе определение. Хотя таких переопределений следует избегать. Программа может выполнять повторяющиеся или итерационные вычисле- ния и вычисления отдельных выражений. Для этого MathCAD использует спе- циальный тип переменных – «дискретные аргументы». Переменная типа «дис- кретный аргумент» принимает диапазон значений. Если в выражении присут- ствует дискретный аргумент, то MathCAD вычисляет выражение столько раз, сколько значений содержит дискретный аргумент. Для определения дискретно- го аргумента должны быть заданы: имя переменной слева; или := , или в середине; допустимый диапазон справа. 9 Для того чтобы вычислить выражение для диапазона значений, сначала определите дискретный аргумент: напечатайте j и затем нажмите клавишу двоеточия (:). Пустое поле озна- чает, что MathCAD ожидает определение для j, не зная, будет ли j обычной пе- ременной или дискретным аргументом; напечатайте 1, затем нажмите клавишу «точка с запятой» (;). Это сооб- щает MathCAD, что определяется дискретный аргумент. MathCAD показывает ; как две точки, что означает диапазон. Завершите определение дискретного ар- гумента, печатая 15 в оставшемся поле. Это определение указывает, что j при- нимает значения 1, 2 .. 15. Чтобы определить дискретный аргумент с шагом, отличным от единицы, нужно выполнить следующее: напечатать k: 1, 1.5 ; 15; на экране это будет выглядеть как k:= 1, 1.5 .. 15. В этом определении диапазона: переменная k – имя дискретного аргумента; это должно быть простое имя; число 1 – первое значение переменной k; число 1.5 – второе значение в диапазоне; это не размер шага. Размер ша- га в этом примере 0.5 – разница между 1.5 и 1; число 15 – последнее значение в диапазоне; если третье число в опреде- лении диапазона не равно целому числу приращений начального значения, ар- гумент все равно не выйдет за его пределы. Можно использовать произвольные скалярные выражения вместо 1, 1.5 и 15, но эти значения должны быть всегда числовыми. Если только дискретный аргумент определен, он принимает полный диапазон значений каждый раз, ко- гда используется. Нельзя определить простую переменную через дискретный аргумент. Например, если определив j, записать 1: ji , то MathCAD истолкует это как попытку приравнять скалярную переменную к дискретному аргументу и отме- тит уравнение сообщением «нескалярная величина». Если дискретный аргумент используется в выражении, MathCAD вычисляет выражение один раз для каж- дого его значения. Этот принцип выражает различие между выражениями с дискретным аргументом и без него. Выражения, которые не содержат дискрет- ный аргумент, имеют только одно значение. Выражения, содержащие дискрет- ные аргументы, принимают много значений, которые соответствуют каждому значению каждого аргумента. Пример 1.2 . Определение дискретного аргумента. Определение функции аналогично определению переменной. Имя функ- ции должно стоять слева, знак присваивания (:=) – посередине, а выражение – справа. Основное различие состоит в том, что теперь имя включает список аргументов. 10 Для задания функции необходимо: ввести имя функции, например f; ввести левую скобку, а вслед за ней – имя или список имен, разделенных запятой. Для завершения списка аргументов нужно ввести правую скобку. Не имеет значения, были ранее определены или использованы в рабочем докумен- те имена из списка аргументов. Важно только, чтобы эти аргументы были име- нами, а не более сложными выражениями; ввести : для оператора присваивания (:=); набрать выражение, задающее функцию. Оно может содержать любые ранее определенные функции и переменные, включая аргументы функции. Определенная таким образом функция может быть использована везде ни- же определения, также как используются переменные. При использовании функции в выражении MathCAD: вычисляет значения аргументов, указанных в скобках; заменяет формальные параметры (аргументы в определении функции) фактическими значениями аргументов, указанных в скобках; выполняет вычисления, предписанные определением функции, и воз- вращает результат вычислений как значение функции. Пример 1.3 . Задание функций. 11 Если в определении функции используется имя переменной, которой нет в списке аргументов, то оно должно быть определено перед определением функции. Значение этой переменной в момент ввода определения функции ста- новится постоянной ее частью. Каким образом строятся математические выражения в MathCAD? Многие математические выражения можно создавать, просто вводя последовательность символов и знаков математических операций. Часть символов – буквы и цифры – служат для ввода чисел и имен функций и переменных, другие – для создания операторов. Можно набрать многие из этих операторов, нажимая соответ- ствующие кнопки на различных палитрах. Например, арифметическую палит- ру можно открыть, нажав кнопку с изображением калькулятора. Математиче- ские выражения имеют строго определенную структуру, и редактор формул MathCAD разработан с учетом этого. Он собирает различные части выражения, используя приоритет операций и некоторые дополнительные правила, которые упрощают ввод знаменателей, показателей степени и выражений в радикалах. Например, если набрать / чтобы создать дробь, курсор будет оставаться в зна- менателе, пока ему явно не указать, чтобы он покинул знаменатель, щелкнув мышью вне знаменателя, нажав [Space] или используя клавиши курсора. В этом случае операторы являются «цепкими». Операции деления, возведения в степень и извлечения корня в MathCAD – «цепкие» операции, т. е. после со- здания одной из этих операций все затем печатаемое будет частью знаменателя, показателя степени или подкоренного выражения пока явно не переместить курсор, нажимая [Space], клавиши курсора или с помощью мыши. Чтобы поки- нуть выражение, можно: щелкнуть снаружи выражения мышью; нажать клавишу ввода [Enter]. Правила редактирования существующего выражения. Чтобы отредак- тировать имя или число: щелкните на нем – это поместит маркер ввода в нужное место; при необходимости нажмите клавиши управления курсором, чтобы пе- реместить маркер; если напечатать символ, он появится слева от маркера ввода; нажатие клавиши [Backspace] удаляет символ слева от маркера ввода. Для замены оператора: щелкните на знаке мышью или используйте клавиши курсора; нажмите клавишу [Del] или клавишу [Backspace]; повторное нажатие удаляет все выражение; нажмите другой знак. Вставка оператора. Проще вставить оператор между двумя буквами или цифрами, стоящими рядом. Например, чтобы вставить знак деления между двумя символами, стоящими рядом, нужно: 12 вставить маркер ввода между ними; нажать знак деления ( / ). Просто вставлять операторы, которые требуют только одного операнда. Примеры таких операндов: квадратный корень, модуль и комплексное сопря- жение. Чтобы вставить один из них, выделите все выражение, к которому нуж- но применить оператор, и наберите соответствующую комбинацию клавиш. Многие из операторов также доступны на арифметической палитре. Удаление оператора. Можно удалить оператор, соединяющий два имени переменных или две константы, а также операторы, требующие только одного операнда: поместите маркер ввода после оператора; нажмите [Backspace]. Или поместите маркер ввода перед оператором; нажмите [Del]. Чтобы удалить оператор, который имеет только один операнд типа :!, xx охватите оператор маркером ввода и нажмите [Del] или [Backspace]. Чтобы вычислить выражение, можно: ввести выражение, содержащее любую допустимую комбинацию чисел, переменных и функций, включая знаки операций и скобки; любые переменные или функции, используемые в этом выражении, должны быть определены в ра- бочем документе; нажать клавишу =. Прерывание вычислений. Для того чтобы прервать процесс вычислений, нажмите клавишу [Esc]. После появления диалогового окна щелкните по кноп- ке OK для остановки процесса вычислений или по кнопке Отмена для его про- должения. Сообщение об ошибках. Определив выражение, вызвавшее ошибку, нуж- но его отредактировать с целью устранения ошибки или исправить определение переменной, приведшей к ошибке. После щелчка по выражению и начала ре- дактирования MathCAD удаляет сообщение об ошибке. После щелчка вне уравнения или нажатия клавиши F9 MathCAD повторно вычисляет выражение. Если ошибка устранена, то MathCAD затем повторно вычисляет другие выра- жения, зависящие от измененного. Выражение, отмеченное сообщением об ошибке, не обязательно содержит ее причину. Причиной ошибки могут быть функции или переменные, опреде- ленные в рабочем документе значительно ранее. Для устранения ошибки при- дется отредактировать именно ее. Рассмотрим допустимые в MathCAD имена переменных и функций. Имена могут содержать любые из следующих символов: 13 прописные и строчные латинские буквы; цифры от 0 до 9; знак подчеркивания (_); штрих (`) (не апостроф) находится на одной клавише с тильдой (~); символ процента (%); греческие буквы; есть два способа набрать греческую букву: напечатать римский эквивалент и нажать [Ctrl] + G или щелкнуть по соответствующему символу на палитре греческих символов; символ бесконечности, который можно задать как комбинацию клавиш [Сtrl] + [Shift] + Z. Имена переменных и функций не могут включать пробелы или любые дру- гие символы, не перечисленные выше. Ограничения: имя не может начинаться с цифры, знака подчеркивания, штриха или %; бесконечность может быть только первым символом в имени; любые символы, напечатанные после точки, будут записаны как нижний индекс. MathCAD не делает различий между именами переменных и именами функций. Если определить вначале xf , а затем переменную f, окажется не- возможным использовать xf где-либо ниже определения f. Некоторые имена уже используются MathCAD для встроенных констант, единиц измерения и функций. Хотя имена можно переопределить, это уничтожит их встроенные значения. MathCAD различает в именах символы верхнего и нижнего регистра, а также различные шрифты. Кроме того, среда MathCAD включает так называемые предопределенные переменные. Программа содержит восемь переменных, значения которых опре- делены сразу после запуска программы. Они называются встроенными или предопределенными. Эти переменные имеют или общепринятое значение (например, Пи или e ), или используются как внутренние переменные, управ- ляющие работой MathCAD. Переменные можно переопределять, например, определим 2:е . Ниже этого определения переменная e примет в рабочем до- кументе новое значение. Приведем примеры некоторых встроенных переменных: 3.14159p – число Пи; 2.71828e – основание натурального логарифма; 10E ^307 – машинная бесконечность; % 0.01 – процент. MathCAD интерпретирует все, что начинается цифрой, как число. Цифра может сопровождаться: другими цифрами; десятичной точкой; 14 цифрами после десятичной точки; символами h или o для шестнадцатеричных и восьмеричных чисел; сим- волами i или j для комплексных чисел, которые MathCAD воспринимает в фор- ме bia (или bja ). Специальные функции и операторы для работы с комплексными числами: zRe – вещественная часть числа z ; zIm – мнимая часть числа z ; zArg – аргумент числа z (угол в комплексной плоскости между веще- ственной осью и радиус-вектором, определяемым числом z ); z – модуль числа z . Одиночное число в MathCAD называют скаляром. Столбец чисел называ- ется вектором, а прямоугольная таблица чисел – матрицей. Способы создания массива: заполнить массив пустых полей; использовать дискретный аргумент. Можно различать имена векторов, матриц и скаляров, используя различ- ный шрифт для их описания. Правила создания вектора (матрицы). 1. Щелкните в свободном месте рабочего документа и напечатайте имя вектора V или матрицы M , сопровождаемое символом двоеточия ( : ). 2. Выберите матрицы из меню Вставка (Insert) или нажмите комбинацию клавиш [Ctrl] + m или щелкните мышью на соответствующей палитре. Появит- ся диалоговое окно, где Rows – количество строк, а Columns – количество столбцов. 3. Нажмите Ok . MathCAD создаст вектор (матрицу) с пустыми полями для заполнения. Заполните эти поля скалярными выражениями. Теперь можно использовать имя вектора (матрицы) в любом выражении. Имя вектора и сам вектор взаимозаменяемы. Как только вектор определен, можно определить через него и другие. Можно обращаться к отдельным эле- ментам массива, используя нижние и верхние индексы. Чтобы напечатать ниж- ний индекс, используйте клавишу нижней скобки [. Чтобы вставить оператор верхнего индекса, нажмите комбинацию клавиш [Ctrl] + 6. Нижние индексы, подобно делению и возведению в степень, удерживают ввод. Что бы не печата- лось после [ все остается в нижнем индексе, пока не будет нажат пробел, чтобы выйти оттуда. Когда определены элементы вектора, часть из них можно оста- вить неопределенными. Если V был не определен и третий элемент вектора определяется равным 10, то нулевой, первый и второй элементы не определены. MathCAD заполняет эти элементы нулями, пока в них не будут внесены необ- ходимые значения. 15 Пример 1.4 . Определение и просмотр элементов матрицы (вектора). Можно создавать большие массивы, задавая диапазон изменения нижних индексов. Если массив имеет более чем девяти строк или столбцов, MathCAD автоматически отображает его в виде таблицы вывода с полосами прокрутки. Векторные и матричные операторы. Некоторые из операторов MathCAD имеют особые значения в применении к векторам и матрицам. Например, сим- вол умножения означает просто умножение, когда применяется к двум числам, но он же означает скалярное произведение, когда применяется к векторам, и умножение матриц, когда применяется к матрицам. Многие из этих операто- ров доступны из палитры символов. Обратите внимание, что операторы, кото- рые ожидают в качестве аргумента вектор, всегда ожидают вектор-столбец, а не вектор-строку. MathCAD располагает встроенными операциями над векторами и матрицами. Пример 1.5 . Векторные и матричные функции. 16 Решение матричных уравнений. Матричные уравнения представляют со- бой систему линейных алгебраических уравнений AX B и решаются путем обращения матрицы коэффициентов 1 .X A B Кроме того, в MathCAD есть также функция lsolve, позволяющая решать систему уравнений AX B в случае невырожденной матрицы A . Пример 1.6 . Решение системы линейных уравнений. A 1 3 4 2 2 9 3 1 6 B 35 25 10 X A 1 B X 13.75 17.5 18.75 Y lsolve A B( ) Y 13.75 17.5 18.75 Порядок выполнения работы (включая пример и варианты заданий) Студентам рекомендуется внимательно изучить теоретические сведения, разобрать приведенные там примеры, затем приступить к выполнению постав- ленного задания. Тестовый пример. 1. Попробуем набрать следующее выражение: 23 4 1 x a y и вычислим его значение для 0.1a , 3.5x , 1y . В первую очередь зададим значения переменных, входящих в состав данного выражения. Напечатайте :3.5 : 0.1 :1x a y . Затем наберите 3 ^ 2x a . 17 До сих пор правила старшинства позволяли просто печатать символы под- ряд, дальше так продолжать нельзя, так как маркер ввода находится на двойке, и двойка станет числителем, если нажать /. Чтобы все выражение стало числи- телем, нажмите три раза клавишу [Space]. Маркер ввода охватит выражение целиком. Можно поэкспериментировать с другими клавишами курсора и щел- кать мышью на других частях выражения. Прежде чем перейти к следующему шагу убедитесь, что маркер ввода охватывает все выражение. Нажмите / , чтобы создать дробную черту напечатайте 4 + и щелкните на кнопке корня на арифметической палитре. Затем напечатайте y + 1, чтобы за- вершить знаменатель. Чтобы добавить что-либо снаружи корня нажмите два- жды клавишу [Space]. Чтобы вычислить значение данного выражения нажмите клавишу =. 2. Выполните вычисления. 2.1. : 0..8.j 2.2. 2: 1.jX j 2.3. Наберите : 0; 8.j 2.4. Наберите 2^: jjX [Space] 1. 2.5. Наберите .X Чтобы увидеть все элементы данного вектора используя полосы прокрут- ки, щелкните мышью по получившейся таблице вывода. 3. Выполните вычисления по приведенным ниже формулам. 3.1. Используя переменную типа «дискретный аргумент» задайте элементы вектора. 3.2. Введите с клавиатуры вектора VW , матрицы BA, . Вычислите: W V , W V , сумму элементов векторов VW , и VW , . Вычислите: 1 1 2, , , , 2TA B A B A A A B A B . 3.3. Наберите A: и щелкните мышью на палитре матричных операторов. Заполните поля диалогового окна и нажмите клавишу OK. Затем заполните пу- стые поля матрицы скалярными выражениями. Аналогично задайте матрицу B и векторы ,W V . j 0 2 M i j i 2 j 2 M 0 1 4 1 2 5 4 5 8 18 Проведите необходимые вычисления, используя палитру матриц и векторов. Содержание отчета 1. Краткий обзор по теоретической части. 2. Ответы на контрольные вопросы. 3. Файл MathCAD с выполненными заданиями своего варианта. Контрольные вопросы 1. Палитры символов. 2. Особенности работы с пакетом инженерных расчетов MathCAD. 3. Как определить переменную в пакете MathCAD? Приведите примеры. 4. Переменная типа «дискретный аргумент». Примеры. 5. Как в MathCAD определяется функция? Приведите примеры определе- ния функции. 6. Построение выражения в MathCAD. Цепкие операторы. 7. Редактирование существующего выражения: замена, вставка, удаление оператора; вычисление выражения. 8. Сообщения об ошибках в пакете MathCAD. Исправление ошибок. 9. Допустимые в MathCAD имена переменных и функций. Предопреде- ленные переменные. Числа. 10. Создание вектора (матрицы). Примеры. 11. Векторные и матричные операции (функции). Примеры. A 4 0 5 2 7 9 1 3 6 B 3 7 8 8 1 3 2 0 6 W 2 3 4 V 7 5 2 V 10 W 9 W V 21 W V 26 32 11 A 1 0.327 0.071 0.166 0.014 0.09 0.123 0.062 0.057 0.133 B T 3 8 2 7 1 0 8 3 6 A B 34 25 126 27 2 13 2 18 26 A A 1 1 0 0 0 1 0 0 0 1 2 A B( ) A B 2 849 305 966 248 32 2.664 10 3 141 172 447 19 Варианты заданий Вариант 1 1. Вычислить 2 2 33 2 a b a x x , где 1.01a ; 2.03b ; 0.35x . 2. Используя переменную типа «дискретный аргумент» задать элементы вектора x по правилу 2 1ix i , если : 0..10i . 3. Ввести с клавиатуры векторы 3 2 1 W , 0 1 6 V и матрицы 1 0 2 2 3 2 3 7 1 A , 3 0 1 3 1 7 1 3 2 B . Вычислить: а) скалярное и векторное произведение векторов W и V; б) сумму элементов данных векторов; в) 1,A ,TB ,A B 1,AA 22A B A B ; г) сумму элементов каждой строки матрицы .B Вариант 2 1. Вычислить 3 1 1 3a bx x x a b , где 2.5a ; 0.05b ; 7.86x . 2. Используя переменную типа «дискретный аргумент» задать элементы вектора x по правилу 2 1 3 j j x , если 0..13j . 3. Ввести с клавиатуры векторы 2 1 6 W , 2 0 1 V и матрицы 121 642 414 A , 0 1 1 2 5 0 1 1 2 B . Вычислить: а) скалярное и векторное произведение векторов W и V; б) сумму элементов данных векторов; в) 1,A ,TB ,A B , 1,AA 22 BABA ; г) сумму элементов каждой строки матрицы .B 20 Вариант 3 1. Вычислить 2 2 4 2 1 4.71 1 x x a x b x , где 0.34a ; 3.04b ; 1.03x . 2. Используя переменную типа «дискретный аргумент», задать элементы вектора z по правилу 2 3 k z k , если 10..1:k . 3. Ввести с клавиатуры векторы 2 1 6 W , 2 0 1 V и матрицы 105 321 343 A , 211 052 110 B . Вычислить: а) скалярное и векторное произведение векторов W и V; б) сумму элементов данных векторов; в) 1,A ,TB ,A B 1,AA 22A B A B ; г) сумму элементов каждой строки матрицы .B Вариант 4 1. Вычислить 1 1 2 2 1 e 2 1 / 4 n x n x , где 8.1n ; 4.1.x 2. Используя переменную типа «дискретный аргумент» задать элементы вектора z по правилу 2 10 i i z , если : 2..16i . 3. Ввести с клавиатуры векторы 0 3 1 W , 2 2 1 V и матрицы 3 4 0 4 5 1 2 3 3 A , 1 7 1 0 2 6 2 1 1 B . Вычислить: а) скалярное и векторное произведение векторов W и V; б) сумму элементов данных векторов; в) 1,A ,TB ,A B 1,AA 22A B A B ; г) сумму элементов каждой строки матрицы .B 21 Вариант 5 1. Вычислить 3 1 2 1 3 kx x k k k k , где 2 x ; 7k . 2. Используя переменную типа «дискретный аргумент» задать элементы вектора z по правилу 3 1 jz j j , если : 3..10j . 3. Ввести с клавиатуры векторы 0 3 3 W , 1 3 2 V и матрицы 210 351 243 A , 214 231 441 B . Вычислить: а) скалярное и векторное произведение векторов W и V; б) сумму элементов данных векторов; в) 1,A ,TB ,A B 1,AA 22A B A B ; г) сумму элементов каждой строки матрицы .B Вариант 6 1. Вычислить 3 1 2 1 3 kx x k k k k , где 0.53x ; 2.62k . 2. Используя переменную типа «дискретный аргумент» задать элементы вектора z по правилу 2 1iz i , если : 1..12i . 3. Ввести с клавиатуры векторы 0 2 1 W , 1 2 2 V и матрицы 353 421 121 A , 7 5 1 5 3 1 1 2 3 B . Вычислить: а) скалярное и векторное произведение векторов W и ;V б) сумму элементов данных векторов; в) 1,A ,TB ,A B 1,AA 22A B A B ; г) сумму элементов каждой строки матрицы .B 22 Вариант 7 1. Вычислить 2 3e 0.8 1 0.701 xy x x y x y , где 0.205x ; 0.41y . 2. Используя переменную типа «дискретный аргумент» задать элементы вектора z по правилу 4 kz k k , если : 2..15k . 3. Ввести с клавиатуры векторы 4 2 1 W , 1 1 0 V и матрицы 014 507 485 A , 312 121 551 B . Вычислить: а) скалярное и векторное произведение векторов W и V; б) сумму элементов данных векторов; в) 1,A ,TB ,A B 1,AA 22A B A B ; г) сумму элементов каждой строки матрицы .B Вариант 8 1. Вычислить 2 4e 3 3 5 x xx a a a x , где 8a ; 301.0x . 2. Используя переменную типа «дискретный аргумент» задать элементы вектора z по правилу 5.2 3 j j z , если : 5..15j . 3. Ввести с клавиатуры векторы 1 0 1 W , 2 3 1 V и матрицы 134 142 111 A , 234 352 401 B . Вычислить: а) скалярное и векторное произведение векторов W и V; б) сумму элементов данных векторов; в) 1,A ,TB ,A B 1,AA 22A B A B ; г) сумму элементов каждой строки матрицы .B 23 Вариант 9 1. Вычислить 2 2 2 2 b a a b a b , где 1.3a ; 2.4b . 2. Используя переменную типа «дискретный аргумент» задать элементы вектора х по правилу 2 1 jx j j , если : 1..12j . 3. Ввести с клавиатуры векторы 5 2 0 W , 1 2 1 V и матрицы 011 351 158 A , 210 123 674 B . Вычислить: а) скалярное и векторное произведение векторов W и V; б) сумму элементов данных векторов; в) 1,A ,TB ,A B 1,AA 22A B A B ; г) сумму элементов каждой строки матрицы .B Вариант 10 1. Вычислить 4 2e 4 d x cx x c d , где 0.04c ; 41.0d ; 9.0x . 2. Используя переменную типа «дискретный аргумент» задать элементы вектора z по правилу 2 1/ 3kz k , если 11..0:k . 3. Ввести с клавиатуры векторы 1 4 2 W , 1 2 1 V и матрицы 172 394 412 A , 147 465 400 B . Вычислить: а) скалярное и векторное произведение векторов W и ;V б) сумму элементов данных векторов; в) 1,A ,TB ,A B 1,AA 22A B A B ; г) сумму элементов каждой строки матрицы .B 24 Л а б о р а т о р н а я р а б о т а № 2 ВЫЧИСЛИТЕЛЬНЫЕ ОСОБЕННОСТИ MATHСAD. ОПЕРАТОРЫ И МАТЕМАТИЧЕСКИЕ ФУНКЦИИ Цель работы: изучение вычислительных возможностей символьного па- кета MathСad для научных и инженерных расчетов; приобретение навыков ра- боты с основными панелями инструментов. Теоретические сведения В MathСad используются арифметические операторы, подобные операторам сложения и вычитания, умножения и деления, а также операторы, определенные для матриц, и специальные операторы типа вычисления интегралов и производ- ных. Операторы можно вводить, используя комбинации клавиш или палитры операторов. Пиктограммы на кнопках палитры указывают, какой оператор появ- ляется при нажатии на данную кнопку. При задержке указателя мыши над кноп- кой появляется надпись, указывающая ее назначение. Чтобы вставить оператор из палитры, укажите мышью, где необходимо поместить оператор, затем нажми- те на кнопку необходимого оператора на соответствующей палитре. Операторы вычисления сумм и произведений. Оператор суммирования вычисляет сумму выражений по всем значениям индекса. Оператор произведе- ния работает аналогичным образом. Чтобы создать оператор суммирования в рабочем документе: щелкните в свободном месте рабочего документа; нажмите комбинацию [Ctrl] + [Shift] + 4 или соответствующую кнопку на палитре интегралов и производных; в нижнем поле слева от знака равенства введите имя переменной – индекс суммирования; она определена только внутри оператора суммирования, вне оператора может существовать другая перемен- ная с тем же индексом; в поле справа от знака равенства, а также над знаком суммы введите це- лое число или любое выражение, принимающее целое значение; в оставшемся поле введите выражение, которое необходимо просумми- ровать; оно будет содержать индекс суммирования; если выражение имеет не- сколько членов, используйте скобки ( ). Для создания оператора произведения нажмите комбинацию клавиш [Ctrl] + [Shift] + 3 или щелкните мышью на соответствующей кнопке палитры интегралов «матанализ». Далее применяйте правило, описанное выше. Если индекс суммирования изменяется не с шагом равным единице, то используется обобщенный оператор суммы – обобщенный оператор произведения. 1. Напечатайте i : 1, 1.2 ; 10. 2. Щелкните на свободном месте рабочего документа. Нажмите комбина- цию клавиш [Shift] + 4 или [Shift] + 3. 25 3. Щелкните на поле снизу и введите имя дискретного аргумента, который должен быть определен раньше. 4. Щелкните на поле справа от знака суммирования (знака произведения) и внесите выражение, содержащее дискретный аргумент. 5. Нажмите знак равенства, чтобы увидеть результат. Пример 2.1 . Вычисление сумм и произведений. Численное дифференцирование. Оператор производной MathСAD пред- назначен для нахождения численного значения производной функции в за- данной точке. Сначала определите точку 0x , в которой необходимо найти про- изводную. 1. Щелкните ниже определения 0x . Затем наберите знак «?» или щелкните мышью по соответствующей кнопке палитры интегралов и производных. По- явится оператор производной с двумя полями. 2. Щелкните на поле в знаменателе и наберите 0x . Это имя переменной, по которой производится дифференцирование. 3. Щелкните на поле справа от знака производной и наберите какое-либо выражение, которое нужно дифференцировать. 4. Нажмите знак равенства, чтобы увидеть результат. Чтобы вычислить производную в символьном виде: 1. Наберите знак «?» или [Ctrl] + ?, чтобы задать оператор производной более высокого порядка. 2. В поле оператора введите выражение, которое необходимо продиффе- ренцировать. 3. Охватите все выражение маркером ввода. 4. Нажмите комбинацию клавиш [Shift] + F9 или используйте меню Сим- волы (Symbolics) команда Расчеты (Evaluate). Для дифференцирования выражении, можно также использовать команду Дифференцировать по переменной из меню Символы. Например, чтобы продифференцировать выражение 22x y по перемен- ной x , необходимо: i 0 20 j 1 1.2 4 0 20 n n 210 xi sin 0.1 i 0 20 k k 1( ) 5.109 10 19 0 20 n xn n 63.138 j 4 j 160 j j 6.643 10 5 26 выделить переменную х; выбрать команду Дифференцировать по переменной; при этом MathСAD рассматривает все переменные, за исключением выделенной, как константы. Пример 2.2 . Дифференцирование выражений. Символьное дифференцирование. С помощью встроенного оператора дифференцирования и оператора символьного равенства вычислим частные производные функции двух переменных первого и второго порядка. Чтобы аналитически продифференцировать выражение по некоторой переменной, выделите в нем эту переменную и выберите команду Symbolics / Variable / Differentiate (Символика / Переменная / Дифференцировать) (рис. 2.1). Рис. 2.1 В результате в следующей строке за выражением появится значение ее производной. Для того чтобы найти вторую производную, повторно примените эту последовательность действий, но уже к полученному результату дифферен- цирования. Так же находятся и производные высших порядков. Пакет MathСAD позволяет также вычислять частные производные функ- ций нескольких переменных. Пример 2.3. Вычисление частных производных функции двух пере- менных. x0 1 x0 5x0 2d d 3x0 13 3 x0 cos x0( ) d d 3 0.841 27 Оператор численного интегрирования. Определенные интегралы 1. Щелкните в свободном месте рабочего документа и нажмите комбинацию клавиш [Shift] + 7 или щелкните на соответствующей кнопке палитры. 2. Появится знак интеграла с пустыми полями для подынтегрального выра- жения, пределов интегрирования и переменной интегрирования. 3. Заполните пустые поля. Пределы интегрирования должны быть веще- ственными. 4. Кроме переменной интегрирования все переменные в подынтегральном вы- ражении должны быть определены ранее в другом месте рабочего документа. 5. Переменная интегрирования должна быть простой переменной без индекса. 6. Если переменная интегрирования является размерной величиной, верхний и нижний пределы интегрирования должны иметь ту же самую размерность. Если подынтегральное выражение имеет особенности, разрывы, численное решение, найденное MathСAD, может быть неточно. Можно использовать интеграл совместно с дискретным аргументом, чтобы получить результаты для многих значений параметра. Пример 2.4. Использование интеграла совместно с дискретным аргу- ментом: f x y( ) x 3 ln x y( ) x f x y( ) d d 3 x 2 ln x y( ) x 3 x y( ) y f x y( ) d d x 3 x y( ) 2 y f x y( ) d d 2 x 3 x y( ) 2 2 x f x y( ) d d 2 6 x ln x y( ) 6 x 2 x y( ) x 3 x y( ) 2 x y f x y( ) d d d d 3 x 2 x y( ) x 3 x y( ) 2 y x f x y( ) d d d d 3 x 2 x y( ) x 3 x y( ) 2 i 0 5 f x( ) x 2 3 x 2 gi 0 i xf x( ) d g 0 0.167 4.667 16.5 37.333 69.167 28 Чтобы вычислить двойной интеграл, необходимо: щелкнуть дважды мышью по символу интеграла на соответствующей палитре символов; ввести подынтегральное выражение, пределы и переменные интегриро- вания для каждого интеграла; нажать символ «=». Пример 2.5. Отыскание центра масс треугольника, заданного неравен- ствами 10 x и xy0 , плотность которого пропорциональна расстоянию от начала координат. Неопределенный интеграл. Для вычисления неопределенного интеграла можно использовать палитру инструментов calculus «матанализ», а можно ин- тегрировать выражение, не используя оператор вычисления неопределенного интеграла. Для этого используется комбинация клавиш [Ctrl] + I (или необхо- димо щелкнуть мышью на соответствующей кнопке палитры интегралов и про- изводных). Чтобы вставить оператор неопределенного интеграла и поля ввода его параметров, нужно: заполнить поле ввода для подынтегрального выражения; поместить переменную интегрирования в поле ввода, следующее за «d»; это может быть имя любой переменной; охватить маркером ввода весь интеграл и нажать комбинацию клавиш [Shift] + F9. Команда символьного меню Variable-Integrate (Интегрировать по пере- менной) интегрирует выражение по выделенной переменной. Если не выделить переменную, команда меню будет записана серым. MathСAD не может инте- грировать, не зная переменной интегрирования. Если символьный процессор не может найти неопределенный интеграл, он возвращает интеграл неизмененным. Следует помнить, что результат интегрирования неоднозначен. Если ( )f x – ин- теграл данной функции, то для любой константы С интегралом будет также ( )f x C . Ответ, получаемый MathСAD, может отличаться на константу от от- x y( ) x 2 y 2 mass 0 1 x 0 x yx y( ) d d mass 0.383 xctr 1 mass 0 1 x 0 x yx x y( ) d d xctr 0.75 yctr 1 mass 0 1 x 0 x yy x y( ) d d yctr 0.398 29 вета, который можно найти в таблицах. Если продифференцировать функцию и затем проинтегрировать полученный результат, не обязательно получится в качестве ответа исходная функция. Пример 2.6 . Интегрирование выражений. Символьный знак равенства позволяет MathСad выйти за рамки численно- го вычисления выражений. Для его использования необходимо: убедиться, что режим Automatic Calculations (Автоматический режим) из меню Math (Математика) включен, в противном случае его можно вклю- чить из меню; ввести выражение, которое надо упростить; нажать комбинацию клавиш [Ctrl] -. (точка), MathСAD отобразит сим- вол стрелки; если щелкнуть мышью вне выражения, MathСAD отобразит упро- щенную версию первоначального выражения; если выражение не может быть упрощено, MathСAD просто повторяет его справа от стрелки. Пример 2.7. Использование символьного знака равенства. Замечание 2.1. Символьный знак равенства является оператором, подоб- ным любому оператору MathСAD. Применяется только ко всему выражению. 1 5 xsin x( ) d 0.257 x 2 e x 2 x exp x( ) x 2 exp x( ) xsin x( ) cos x( )( ) d sin x( ) cos x( ) xxd 1 2 x 2 a b xcos x( ) d sin b( ) sin a( ) x e 2 xd d 2 exp 2 x( ) a11 a21 a12 a22 1 a22 a11 a22 a12 a21( ) a21 a11 a22 a12 a21( ) a12 a11 a22 a12 a21( ) a11 a11 a22 a12 a21( ) 30 Встроенные функции. Это основной набор функций, которые поставля- ются вместе с пакетом MathСAD. Чтобы просмотреть их список, выберите ко- манду Function (Функция) из меню Insert (Вставка) или щелкните на f(x) на панели инструментов, или нажмите комбинацию клавиш [Ctrl] + F. Имена встроенных функций чувствительны к регистру. Они должны быть напечатаны с использованием прописных или строчных букв (рис. 2.2). Рис. 2.2 Чтобы задать встроенную функцию в рабочем документе, нужно: щелкнуть мышью в свободном месте рабочего документа; дважды щелкнуть по имени функции, которую необходимо вставить, или пометить ее и щелкнуть по кнопке OK, или набрать с клавиатуры. Левый список диалогового окна показывает все встроенные функции наря- ду с их аргументами. Внизу находится описание выбранной функции. Порядок выполнения работы Студенту рекомендуется внимательно изучить теоретический материал, проделать все примеры, в нем встречающиеся, и после этого приступать к выполнению своего варианта задания. Содержание отчета 1. Краткий обзор по теоретической части. 2. Ответы на контрольные вопросы. 3. Файл MathCAD с выполненными заданиями своего варианта. 31 Контрольные вопросы 1. Какие операторы используются в Mathcad? Как их можно вводить? 2. Операторы вычисления сумм и произведений. Примеры. 3. Оператор производной: способ задания, дифференцирование в точке, символьное дифференцирование. Примеры. 4. Определенный интеграл: способ задания, переменные пределы интегри- рования. Двойной и тройной интегралы. 5. Неопределенный интеграл: способ задания, примеры. 6. Символьный знак равенства, способы его задания, примеры. 7. Встроенные функции. Варианты заданий Вариант 1 1. Вычислить 11 2 3 tg 2.34i i i . 2. Вычислить пределы: а) 1lim (8 sin )n n n ; б) 2 3 ln( 5 7) lim 3x x x x . 3. Продифференцировать функцию 21 lnf x х символьно и в точке 0 0.35x . 4. Вычислить частные производные первого и второго порядка для функ- ции 2( , ) sin( )f x y xy . 5. Вычислить интегралы: а) cos d 3 sin х x х ; б) 2 2 0 4 dx x . 6. Вычислить двойной и тройной интегралы: а) 22 4 2 2 0 0 d d x xy x y x y ; б) 4 2 3 2 0 12 (2 3 )d d dx y z x y z . Вариант 2 1. Вычислить 23 1 cos 3k k k . 2. Вычислить пределы: а) 2 1 lim 2 1 nn n ; б) 20 sin6 lim (arctg 2 )x x x x . 3. Продифференцировать функцию 2( ) arctg e xy x символьно и в точке 0 0.21x . 32 4. Вычислить частные производные первого и второго порядка для функ- ции ( , ) sin( sin )f x y x y . 5. Вычислить интегралы: а) 1 tg d sin 2 х x x ; б) 1 2 0 e d 1 e x x x . 6. Вычислить двойной и тройной интегралы: а) 21 1 2 2 0 0 d ln 1 d x x x y y ; б) 2 0 3 2 1 20 2 d d dxy z x y z . Вариант 3 1. Вычислить 12 0 sin 2 !(3 !)k k k k . 2. Вычислить пределы: а) 3 2 2 3 10 6 7 2 lim 8 4 3 2x x x x x x x ; б) 0 e 1 lim 3 x x x . 3. Продифференцировать функцию 1 ( ) e xy x x символьно и в точке 0 0.205x . 4. Вычислить частные производные первого и второго порядка для функ- ции ( , ) lnyf x y x x . 5. Вычислить интегралы: а) 3ctg dх x ; б) e 1 sin ln d х x x . 6. Вычислить двойной и тройной интегралы: а) 20 25 2 2 5 0 d sin( )d x x x y y ; б) 13 2 3 01 1 d d dx yz x y z . Вариант 4 1. Вычислить 12 0 sin 2 !(3 !)k k k k . 2. Вычислить пределы: а) 2 sin( / 4) lim n n n ; б) 0 9 3 lim sin 6x x x . 3. Продифференцировать функцию ( ) sin cos(sin )y x х х символьно и в точке 0 3 x . 4. Вычислить частные производные первого и второго порядка для функ- ции tg( , ) ctgyf x y x xy . 33 5. Вычислить интегралы: а) 2 ln dx х x ; б) 24 1 1 d y y y . 6. Вычислить двойной и тройной интегралы: а) 2 2 2 2 2 4 2 2 2 4 d e d x x y x x x y y ; б) 3 1 2 2 100 ( )d d dxy z x y z . Вариант 5 1. Вычислить 0.7 0.4 12 20.71 e nn i n n . 2. Вычислить пределы: а) 2lim (2 )! n n n ; б) 2ctg 2 0 lim (cos2 ) x x x . 3. Продифференцировать функцию 2 ( ) ln 1 x y x x символьно и в точке 0 0.621x . 4. Вычислить частные производные первого и второго порядка для функ- ции 3( , ) log cos( )f x y x xy . 5. Вычислить интегралы: а) 3 2 dx x x ; б) 3 2 0 d 1 2sin x х . 6. Вычислить двойной и тройной интегралы: а) 2 2 2 2 1 1 2 2 0 1 ln 1 d d x x x y x y x y ; б) 3 21 2 100 ( )d d dx yz x y z . Вариант 6 1. Вычислить 10 1 ( 1)!n n n . 2. Вычислить пределы: а) 2lim 1 n n n ; б) 2 lim tg 2 x x x . 3. Продифференцировать функцию 2 3( ) ex xy x символьно и в точке 0 0.315x . 4. Вычислить частные производные первого и второго порядка для функ- ции ( , ) arctg 1 x y f x y xy . 34 5. Вычислить интегралы: а) 4 d 1 x x x ; б) 2 0 d 1 sin cos x х х . 6. Вычислить двойной и тройной интегралы: а) 21 1 2 2 1 0 d 1 d x x x y y ; б) 1 0 2 3 2 0 10 ( )d d dx y z x y z . Вариант 7 1. Вычислить 7 2 1 2 4 1 k k k . 2. Вычислить пределы: а) 1 5 2 lim 5 2 n nn ; б) 2 20 1 cos lim sinx x x x . 3. Продифференцировать функцию 2( ) arcsiny x х символьно и в точке 0 0.405x . 4. Вычислить частные производные первого и второго порядка для функ- ции 4 4 2 2( , ) 4f x y x y x y . 5. Вычислить интегралы: а) 2 4 3 d 1 3 x x x x ; б) 0 3 sin cos d 2 2 x x x . 6. Вычислить двойной и тройной интегралы: а) 22 4 2 2 0 0 d cos d x x x y y ; б) 5 34 110 ( )d d dx y z x y z . Вариант 8 1. Вычислить 10 1 2.5e 2 ( 1)! n n n n . 2. Вычислить пределы: а) lim ln( 1) ln x x x x ; б) 24 1 8 lim 4 16x x x . 3. Продифференцировать функцию 1( )y x x x символьно и в точке 0 0.306x . 4. Вычислить частные производные первого и второго порядка для функ- ции ( , ) e ctgxf x y y . 5. Вычислить интегралы: а) d 3sin 4cos x х х ; б) 22 1 1 d x x x . 35 6. Вычислить двойной и тройной интегралы: а) 2 3 0 2 2 3 9 d d x xy x y x y ; б) 21 0 0 0 2 ( 2 )d d dx yz x y z . Вариант 9 1. Вычислить 20 0 1 sin 5i i i . 2. Вычислить пределы: а) 2 3 2 7 6 3 lim 9 8 2x x x x x ; б) 3 0 sin 2lim x x x x . 3. Продифференцировать функцию 1( ) 1 x y x x символьно и в точке 0 0.605x . 4. Вычислить частные производные первого и второго порядка для функ- ции 2( , ) ln( )f x y x y . 5. Вычислить интегралы: а) d d 3 sin cos x x х х ; б) 2 2 1 log dx х x . 6. Вычислить двойной и тройной интегралы а) 2 2 2 2 2 2 ( ) 2 2 d e d x x y x x y ; б) 3 2 1 3 0 10 d d dxy z x y z . Вариант 10 1. Вычислить 10 0 2 sin 10i i i . 2. Вычислить пределы: а) coslim n n n , б) 5 0 1 1 lim x x x . 3. Продифференцировать функцию 2( ) arctg 1y x x символьно и в точ- ке 0 0.404x . 4. Вычислить частные производные первого и второго порядка для функ- ции 2 3 ( , ) tg x f x y y . 5. Вычислить интегралы: а) 2 d sin x x х ; б) 1 0 ln( 1)dx x . 36 6. Вычислить двойной и тройной интегралы: а) 2 2 21 1 2 2 0 0 1 d d 1 x x y x y x y ; б) 5 2 3 2 2 20 1 d d dx y z x y z . Л а б о р а т о р н а я р а б о т а № 3 ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ ПАКЕТА ИНЖЕНЕРНЫХ РАСЧЕТОВ MATHCAD Цель работы: изучение графических возможностей символьного пакета MathCAD; приобретение навыков построения графиков функции и поверхно- стей. Знакомство с возможностями анимации. Теоретические сведения В пакете MathCAD встроены несколько различных типов графиков, кото- рые можно разделить на двумерные (или графики на плоскости) и трехмерные (графики в пространстве). В свою очередь двумерные графики делятся: на XY (декартовый) график (XY Plot); полярный график (Polar Plot). Среди трехмерных выделяют: график трехмерной поверхности (Surface Plot); график линий уровня (Contour Plot); трехмерная гистограмма (3D Bar Plot); трехмерное множество точек (3D Scatter Plot); векторное поле (Vector Field Plot). Деление графиков на типы несколько условно, так как управляя установ- ками многочисленных параметров, можно создавать комбинации типов графи- ков, а также новые типы (например, двумерная гистограмма распределения является разновидностью простого XY-графика). Все графики создаются аналогичным способом с помощью панели ин- струментов Graph (График), различия обусловлены отображаемыми данными. Некорректное определение данных приводит к выдаче сообщения об ошибке. Построение двумерного графика. К двумерным графикам относят графи- ки в декартовой и полярной системах координат. Созданный однажды график одного типа нельзя переделать в график другого типа (в отличие от трехмерных графиков). Для построения XY-графика необходимы два ряда данных, отклады- ваемых по осям ОХ и ОY. Для построения нужно: щелкнуть мышью в свободном месте рабочего документа; нажать комбинацию клавиш [Shift] + 2 или щелкнуть мышью по палитре графических операторов, или выбрать пункт XY Plot из меню Insert (Вставка). 37 Появится шаблон декартова графика с полями ввода для выражений, отоб- ражаемых по осям графика. XY-график двух векторов. Самый простой и наглядный способ получить декартов график – это сфор- мировать два вектора данных, которые будут отложены вдоль осей ОХ и ОY. По- следовательность построения графика двух векторов х и у показана на рис. 3.1. В этом случае в шаблоны возле осей вводятся имена векторов. Также допуска- ется откладывать по осям элементы векторов, т. е. вводить в шаблоны возле осей имена ix и iy соответственно. В результате получается график, на кото- ром отложены точки, соответствующие парам элементов векторов, соединен- ные отрезками прямых линий. Образованная ими ломаная называется рядом данных, или кривой (trace). Пример 3.1 . Построение двумерного графика. XY-график функции. График любой скалярной функции xf можно построить двумя способа- ми. Первый заключается в дискретизации значений функции, присвоении этих значений вектору и прорисовке графика вектора (рис. 3.2). Второй способ, называемый быстрым построением графика, заключается во введении функции в один из шаблонов (например, у оси ординат), а имени аргумента – в шаблон оси абсцисс (рис. 3.3–3.5). В шаблоны слева и справа от аргумента необходимо ввести границы диапазона изменения значений аргумен- та. Если такой диапазон не задан, по умолчанию график будет построен в диа- пазоне значений аргумента от –10 до 10. i 0 10 x i 0.5 i y i cos x i 0 1 2 3 4 1 0 1 y x x 0 0 1 2 3 4 5 6 7 8 9 10 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 y 0 0 1 2 3 4 5 6 7 8 9 10 1 0.878 0.54 0.071 -0.416 -0.801 -0.99 -0.936 -0.654 -0.211 0.284 Рис. 3.1 38 Построение графиков в полярных координатах. Для создания полярного графика необходимо нажать кнопку Polar Plot на панели Graph и вставить в появившиеся шаблоны имена переменных и функций, которые будут нарисо- ваны в полярной системе координат: угол (нижний шаблон) и радиус-вектор (левый шаблон). Аналогично построению графика в декартовых координатах по осям могут быть отложены два вектора, элементы векторов и ранжирован- ные переменные в различных сочетаниях, а также может быть осуществлено быстрое построение графика функции (рис. 3.6, 3.7). x 0 0.1 y x( ) cos x( ) 0 1 2 3 4 1 0 1 y x( ) x 0 1 2 3 0 10 20 30 exp x( ) x Рис. 3.2 Рис. 3.3 y x( ) atan x( ) 10 0 10 0y x( ) x 5 0 5 40 20 0 20 40 cot x( ) x 10 Рис. 3.4 Рис. 3.5 Рис. 3.6 Рис. 3.7 39 График функции в полярных координатах можно построить также с помо- щью преобразований полярных координат в декартовые. На рис. 3.8 показан пример построения графика кардиоиды в полярных ко- ординатах, уравнение которого задано в виде . Уравнения для )(x и )(y – обычное преобразование полярных координат в прямоугольные (декартовые). Рис. 3.8 Размещение нескольких графиков на чертеже. График может содержать несколько выражений по оси ординат в зависимости от одного выражения по оси абсцисс или несколько значений по оси ординат, согласованных с соответ- ствующими выражениями по оси абсцисс. Чтобы представить графически не- сколько выражений по оси ординат относительно одного выражения по оси абсцисс, необходимо ввести первое выражение для оси ординат, а затем нажать клавишу [,] (запятая). Непосредственно под первым выражением появится пу- стое поле (шаблон). В появившемся месте ввода записывается имя второй функции, сопровождаемое другой запятой, и т. д. Все выражения должны ис- пользовать одну и ту же переменную (рис. 3.9, 3.10). Рис. 3.9 Рис. 3.10 40 Чтобы построить несколько независимых кривых на одном чертеже, вве- дите два или более выражений, отделяемых запятыми на оси абсцисс, и то же самое число выражений на оси ординат (рис. 3.11). MathCAD согласует выра- жения попарно: первое выражение оси абсцисс с первым выражением оси ор- динат, второе со вторым и т. д. Можно построить до 16 функций на оси ординат в зависимости от одного аргумента на оси абсцисс. Если для каждой кривой используется свой аргумент, то можно отобразить только до 10 графиков. Все графики на чертеже совместно используют одни границы на осях. Для каждой оси все выражения и границы должны иметь совместимые размерности. Форматирование двумерных графиков. Изменение размеров графика. Чтобы изменить размеры графика, необходимо: заключить его в выделяющий прямоугольник с помощью щелчка мыши; переместить указатель мыши к левому нижнему краю выделяющего прямоугольника; указатель превратится в двойную стрелку; переместить указатель при нажатой кнопке мыши, растягивая графиче- скую область в желаемом направлении; по достижении желаемого размера отпустить кнопку мыши. Для отмены выделения щелкните мышью вне графической области. При двойном щелчке мышью в области графика (либо выборе в кон- текстном меню команды Format) откроется окно форматирования графика с четырь-мя вкладками. 1. На вкладке Trace (Трассировки) предоставляется возможность задать следующие параметры линий: Line (Линия) – стиль линии: solid – сплошная; dot – мелкий пунктир; dadot – штрих-пунктир; dash – крупный пунктир; Рис. 3.11 41 Color (Цвет) – цвет линии и точек данных; Weight (Толщина) – толщина линии и точек данных; Type (Тип) – тип представления ряда данных: line – линия; point – точка; bar – столбик гистограммы; solidbar – закрашенный столбик; step – ступенька; stem – палочка с кружочком; draw – рисованная линия; error – позволяет отложить на графике вычисленную ошибку. 2. Сохранение установок по умолчанию. На вкладке Defaults (По умолчанию) диалога Formatting Currently Selected XY Plot (Форматирование выбранного графика) находятся два элемента управления: – кнопка Change to Defaults (Вернуть установки по умолчанию) позво- ляет изменить все установки выделенного графика на установки по умолчанию, принятые для текущего документа; – флажок проверки Use for Defaults (Использовать для установок по умолчанию) фиксирует установками по умолчанию для данного документа установки выбранного графика. 3. Создание заголовка графика с помощью вкладки Labels. Чтобы создать заголовок графика, необходимо: дважды щелкнуть мышью в области графика; в диалоге Formatting Currently Selected XY Plot (Форматирование вы- бранного графика) перейти на вкладку Labels (Метки); в поле Title (Заголовок) ввести текст заголовка; установить флажок проверки Show Title (Показать заголовок); выбрать переключатель Above (Сверху) или Below (Снизу), чтобы заго- ловок появился сверху или снизу графика; нажать кнопку ОК. 4. Форматирование осей графиков с помощью вкладки XY Axes. Возможности форматирования координатных осей графиков включают в себя управление их внешним видом, диапазоном, шкалой, нумерацией и отображением некоторых значений на осях при помощи маркеров. Изменение диапазона осей. Когда график создается впервые, MathCAD выбирает представленный диапазон для обеих координатных осей автомати- чески. Чтобы изменить этот диапазон, нужно: перейти к редактированию графика, щелкнув в его пределах мышью – график будет выделен, а вблизи каждой из осей появятся два поля с числами, обозначающими границы диапазона; 42 при щелчке мышью в области одного из полей, чтобы редактировать со- ответствующую границу оси (например, верхнего предела оси х); пользуясь клавишами управления курсором и клавишами BackSpace или Del, удалите содержимое поля; введите новое значение диапазона; щелкните за пределами поля, и график будет автоматически перерисован в новых пределах. Предусмотрена удобная возможность просмотра графика в увеличенном масштабе. Для этого необходимо: щелкнуть правой кнопкой мыши и в контекстном меню выбрать команду Zoom (Масштаб) – откроется диалоговое окно XY Zoom (Масштаб по осям Х и Y); обвести указателем мыши при ее нажатой левой кнопке ту область гра- фика, которую необходимо увеличить – эта область окажется обведенной пунк- тирной линией; в открытом окне щелкнуть по кнопке Zoom (Масштабировать) – выде- ленная область увеличится. Чтобы вернуться к исходному виду графика, используются кнопки Unzoom (Отменить масштабирование) или Full View (Вид полностью). Что- бы закрыть окно, оставив график увеличенным, необходимо нажать кла- вишу ОК. Построение графиков поверхностей. Для построения графика поверхно- сти с уравнением ( , )z f x y надо определить матрицу значений аппликат то- чек поверхности, которую необходимо отобразить графически. MathCAD будет использовать номер строки и номер столбца матрицы в качестве координат по осям X и Y. Элементы матрицы будут представлены на графике как высоты выше или ниже плоскости XY. Для построения графика поверхности нужно нажать комбинацию клавиш [Сtrl] + 2 или щелкнуть мышью на графической палитре инструментов, или из меню Вставка (Insert) выбрать команду Grafics (Surface plot). MathCAD покажет рамку с одним полем ввода, в которое вводится имя матрицы. Остается установить указатель мыши вне графического блока и щелкнуть левой кнопкой. По умолчанию ориентация поверхности такова, что первая строка матрицы простирается из дальнего левого угла сетки, а первый столбец из дальнего левого угла по направлению к наблюдателю. MathCAD рисует линии, чтобы соединить точки на графике. Эти линии определяют поверхность. Типичный график поверхности показывает значения функции двух переменных. Чтобы создать такой график, необходимо сначала образовать матрицу, содержащую значения этой функции, а затем построить поверхностный график этой мат- рицы (рис. 3.12). 43 Быстрое построение графика (рис. 3.13). Для быстрого построения гра- фика необходимо: задать функцию двух переменных; установив курсор в то место, где нужно построить график, отрыть па- нель График и щелкнуть по кнопке График поверхности. На экране появится шаблон графика; в месте ввода ввести имя функции без аргументов. Кроме графиков поверхности, MathCAD также может строить карты линий уровня (рис. 3.14), трехмерные гистограммы (рис. 3.15), точечные графики (рис. 3.16) и графики векторных полей (рис. 3.17). G a b( ) 5 2 cos a( )( ) cos b( ) 5 2 cos a( )( ) sin b( ) 2 sin a( ) G Рис. 3.13 M N 20 i 0 N j 0 N x i 1.5 0.15 i y j 1.5 0.15 j f x y( ) sin x 2 y 2 M i j f x i y j Рис. 3.12 44 Пример 3.1 . 0 2 3 5 1 1 2 4 7 0 : 2 3 4 5 7 1 3 3 4 1 2 3 0 8 5 M Форматирование графика поверхности. Форматирование трехмерных графиков выполняется с помощью диалогового окна 3-D Plot Format (Форма- тирование 3-D графика), которое вызывается двойным щелчком мыши в об- ласти графика. Параметры трехмерных графиков всех типов устанавливаются посредством этого диалогового окна. В диалоге 3-D Plot Format доступно большое количество параметров, изменение которых способно сильно повлиять на внешний вид графика. Они сгруппированы по принципу действия на не- скольких вкладках. Изменение типа графика. Чтобы поменять тип уже имеющегося графика (например, построить вместо поверхности график линий уровня и т. д.), соот- ветствующий переключатель в нижней части вкладки General (Общие) уста- новите в необходимое положение. После нажатия кнопки ОК график будет перерисован. M M Рис. 3.16 Рис. 3.17 M M Рис. 3.14 Рис. 3.15 45 Вращение графика. Самый простой способ изменения ориентации систе- мы координат с графиком в трехмерном пространстве – это перетаскивание ее указателем мыши. Попробуйте перемещать при нажатой левой кнопке мыши указатель в пределах графика, и увидите, как поворачивается график. Другой способ изменения ориентации графика – с помощью полей Rotation (Враще- ние), Tilt (Наклон) и Twist (Поворот) на вкладке General, которые в совокуп- ности определяют соответствующие углы (в градусах) и тем самым задают направление всех трех осей координат в пространстве. Оперирование мышью с нажатой клавишей Shift позволяет после отпускания левой кнопки наблюдать анимированную картину вращения поверхности в любом заданном направле- нии. Для остановки вращения надо щелкнуть левой кнопкой мыши. Масштабирование графика. В поле Zoom (Масштаб) вкладки General можно задать числовое значение масштаба. Форматирование осей. Вкладка Axes (Оси) содержит три вложенных вкладки, в которых задаются параметры для каждой из трех координатных осей. В частности, можно включить или отключить показ линий сетки, нумера- ции и задать диапазон по каждой из осей. Смысл этих операций сходен с анало- гичными операциями для двумерных графиков. При помощи вкладки Backplanes (Плоскости заднего плана) задается показ проекций координатной сетки на три скрытые плоскости трехмерного графика. Стиль заливки и линий. С помощью вкладки Appearance (Появление) для контурного и поверхностного графиков можно выбрать стиль заливки ли- ний графика поверхности. При выборе переключателя Fill Surface (Заливка поверхности) из группы Fill Options (Опции заливки) можно получить до- ступ к опциям цвета (Color Options). Если выбрать переключатель Solid Color (Один цвет), то получится однотонная заливка поверхности. Если установить переключатель Color-map (Цветовая схема), то поверхность или контурный график будут залиты разными цветами и оттенками, причем выбрать цветовую схему можно на вкладке Advanced (Дополнительно). Спецэффекты. Во вкладке Advanced (Дополнительно) имеется доступ к управлению несколькими специальными эффектами оформления графиков, благодаря которым они выглядят красивее: Shininess (Сияние) – регулировка сияния от 0 до 128; Fog (Туман) – эффект тумана; Transparency (Прозрачность) – процент прозрачности графика; Perspective (Перспектива) – показ перспективы с определением види- мости расстояния. Еще один спецэффект подсветки графика задается на вкладке Lighting (Подсветка), причем имеются как встроенные схемы подсветки, так и возмож- ность задавать ее цвет и направление самому пользователю. 46 Порядок выполнения работы Студенту рекомендуется внимательно изучить теоретический материал, проделать все примеры, в нем встречающиеся, и после этого приступать к выполнению своего варианта задания. Содержание отчета Отчет должен содержать ответы на контрольные вопросы, результат реше- ния соответствующего варианта. Контрольные вопросы 1. Двумерные графики в MathCAD: построение, изменение размеров. 2. Форматирование двумерных графиков. 3. Построение нескольких графиков на одном чертеже. Имена кривых и отображаемые переменные. 4. Построение поверхностей. 5. Форматирование поверхностей. Варианты заданий Вариант 1 1. Построить график функции 3 2 e 5 x y x x . 2. Построить в одной системе координат при 3; 3x графики функций 1( ) sin 4y x x x , 2( ) cos2 0.5y x x . 3. В полярной системе координат построить график трехлепестковой розы sina k для 1/ 2a , 3k . 4. Построить поверхность 2 24z x y , окрасить ее и выполнить вращение. Вариант 2 1. Построить график функции ln ( ) х y x x . 2. Построить в одной системе координат при ; 2 2 x графики функ- ций 1 2 7 ( ) 2 y x x , 2( ) (3 )siny x x х . 47 3. В полярной системе координат построить график спирали Архимеда 2 для 3. 4. Построить поверхность 2 29z x y , окрасить ее и выполнить вращение. Вариант 3 1. Построить график функции 2 ( ) ln 1 x y x x . 2. Построить в одной системе координат при [1; 9]x графики функций 2 1 3 ( ) 2 x y x x , 2( ) 2 ln 1.2y x x х . 3. В полярной системе координат построить график улитки Паскаля 2 cosa для 3a . 4. Построить поверхность 2 9z x y , окрасить ее и выполнить вращение. Вариант 4 1. Построить график функции 2 3 1 2 ( ) x y x x . 2. Построить в одной системе координат при ; 2 2 x графики функ- ций 1( ) cosy x x х , 2 2( ) 2y x x x . 3. В полярной системе координат построить график розы sina k для 2a , 5 / 3k . 4. Построить поверхность 2 25 3z x y , окрасить ее и выполнить вра- щение. Вариант 5 1. Построить график функции 4 ( ) 2 y x x x . 2. Построить в одной системе координат при [ 2; 2]x графики функций 1( ) siny x x х , 2 1 ( ) 3 y x x . 3. В полярной системе координат построить график спирали Галилея a l для 4a , 1l . 4. Построить поверхность 2sin( )z x y , окрасить ее и выполнить вращение. 48 Вариант 6 1. Построить график функции 1 ln 1 x y x . 2. Построить в одной системе координат при [ 5; 5]x графики функций 1 1 ( ) e ex x y x , 22( ) sin 5y x x . 3. В полярной системе координат построить график строфоиды atg cos a для 1a . 4. Построить поверхность 2 22 1z x y , окрасить ее и выполнить вра- щение. Вариант 7 1. Построить график функции 2 1 2 ( ) 2 x y x x x . 2. Построить в одной системе координат при [ 4 ; 4 ]x графики функ- ций 1( ) tgy x х , 2( ) ctgy x х . 3. В полярной системе координат построить график розы sin 2 a для 3a . 4. Построить поверхность 2 23 4z y x , окрасить ее и выполнить вращение. Вариант 8 1. Построить график функции 2( ) ln 1y x x x . 2. Построить в одной системе координат при [ 3; 3]x графики функций 2 1( ) 2 4y x x x , 2( ) 3sin 7y x х . 3. В полярной системе координат построить график кардиоиды 2 (1 cos )r для 3r . 4. Построить поверхность 215 4z y x , окрасить ее и выполнить вращение. Вариант 9 1. Построить график функции 2 lny x х . 2. Построить в одной системе координат графики функций 21 sin 3y x , 2 1 ( ) sh y x х . 49 3. В полярной системе координат построить график логарифмической спи- рали a для 2a . 4. Построить поверхность 2 23 18z x y , окрасить ее и выполнить вращение. Вариант 10 1. Построить график функции 3 3( ) 1y x x . 2. Построить в одной системе координат при 1;1x графики функций 2 1 3 ( ) arccos x y x х , 2( ) ln 3.y x x 3. В полярной системе координат построить график спирали «жезл» a для 4.5a . 4. Построить поверхность 2 24 3z x y , окрасить ее и выполнить вращение. Вариант 11 1. Построить график функции 2 2( ) 4e x xy x . 2. Построить в одной системе координат при [0; 5]x графики функций 1( ) chy x х , 3 2( ) lny x x x . 3. В полярной системе координат построить график гиперболической спи- рали a для 3a . 4. Построить поверхность 2cosz x y , окрасить ее и выполнить вращение. Вариант 12 1. Построить график функции 3 2 ( ) 1 x y x x . 2. Построить в одной системе координат графики функций 1 1 ( ) arcsin y x х , 2 2 4 ( )y x x . 3. В полярной системе координат построить график циссоиды Диоклеса 2sin 2 cos a для 2.5a . 4. Построить поверхность 2 21 3z x y , окрасить ее и выполнить вращение. 50 Л а б о р а т о р н а я р а б о т а № 4 РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ Цель работы: изучение вычислительных возможностей пакета MathCAD при решении задачи Коши для некоторых типов обыкновенных дифференци- альных уравнений (ОДУ). Теоретические сведения ОДУ n -го порядка имеет вид , , ,... 0 n F x y y y или 1 , , ,... n n y f x y y y , где x – независимая переменная; y – искомая функция; nyyy ,..., – ее производные. Задача нахождения решения уравнения, удовлетворяющего начальным условиям 0 0 0 0, ,y x y y x y 11 0 0 0 0,... , nn y x y y x y называется задачей Коши. Дифференциальные уравнения первого порядка. ОДУ первого порядка имеет вид , , 0F x y y или ,y f x y . Найти такое решение уравнения, которое удовлетворяет начальному усло- вию 0 0y x y . Уравнение с разделяющимися переменными. ОДУ вида 1 1 df x y x 2 2 d 0f x y y или y f x g y называется уравнением с разделяющи- мися переменными. Оно приводится к уравнению с разделенными переменными: d ( )dX x x Y y y , которое решается почленным интегрированием. 51 Пример 4.1. Найти решение уравнения e 1 d e d 0x xy y x , удовле- творяющее начальному условию (0) 1y (задача Коши). Изобразите график решения (интегральную кривую, проходящую через точку (0, 1)). Решение. 1. Разделите в уравнении переменные: e d d e 1 x x y y x . 2. Установите режим автоматических вычислений. 3. Установите режим отображения результатов символьных вычислений по горизонтали, установив метку Horizontally в окне диалога строки Evaluation Style меню Symbolics. 4. Введите начальные условия 0 0( )y x y . 5. Определите подынтегральные функции ( )Y y и ( )X x : 0 0: 0; : 1x y ; e : 1 e x x X x ; :Y y y . 6. Решите уравнение, задающее неявно )(xy как функцию переменной :x Given 0 d x x X t t = 0 d y y Y t t 1 1 2 2Find 2 ln 1 e 1 2 ln(2) 2 ln(1 e ) 1 2 ln(2)x xy . Здесь Given – ключевое слово. Логический знак жирного равенства вводится с палитры Booleans. Завер- шает блок встроенная функция Find y , после которой следует набрать сим- вольный знак равенства из меню Symbolic (подменю Evaluation). Для решения этого уравнения используется символьный процессор MathCAD (аналогично применению вычислительного блока для численного решения нелинейных уравнений). 7. Решение, удовлетворяющее условию (0) 1y : 1 2: 2 ln 1 exp 1 2 ln 2y x x . 8. Постройте график найденного решения. 52 5 0 5 10 5 5 10 10 5 y x ( ) 10 1.54 x Численный метод Рунге–Кутта решения задачи Коши для ОДУ первого порядка. Нахождение точного решения задачи Коши для многих типов ОДУ за- труднительно, иногда невозможно, поэтому было создано множество прибли- женных методов. Один из самых популярных – метод Рунге–Кутта четвертого порядка, дающий приближенное решение в виде таблицы значений этого реше- ния в отдельных точках заданного интервала для независимой переменной x . В пакете MathCAD есть встроенная функция, реализующая этот метод: rkfixed , 1, 2, points,y x x n D , где y – вектор начальных условий (для ОДУ первого порядка – это точка 0 1y y x ; 1, 2x x – границы интервала, на котором ищется решение ДУ; npoints – число точек (не считая начальной), в которых ищется прибли- женное решение; ,D x y – для системы ОДУ первого порядка вектор, состоящий из первых производных неизвестных функций (для ДУ первого порядка ,y f x y – это ,f x y ). Пример 4.2. Решите на отрезке [0, 3] задачу Коши siny xy , (0) 1y методом Рунге–Кутта с постоянным шагом в 100,4020 равностоящих точках отрезка 0, 3 . Решение. 1. Установите режим автоматических вычислений. 2. Присвойте переменной ORIGIN значение, равное 1: 1:ORIGIN . 3. Введите начальное условие: : 1y . 53 4. Определите правую часть уравнения ( , ) :f x y , : sinf x y x y в 20 40, 100 равностоящих точках отрезка 0, 3 . 5. Вычислите решение fy:Y ,19,3,0,rkfixed1 fy:Y ,39,3,0,rkfixed2 fy:Y ,99,3,0,rkfixed3 Y1 1 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 0.15 1.011 0.3 1.046 0.45 1.104 0.6 1.189 0.75 1.301 0.9 1.436 1.05 1.584 1.2 1.727 1.35 1.84 1.5 1.907 1.65 1.924 1.8 1.9 1.95 1.846 2.1 1.771 2.25 1.684 Y2 1 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 0.075 1.003 0.15 1.011 0.225 1.026 0.3 1.046 0.375 1.072 0.45 1.104 0.525 1.143 0.6 1.189 0.675 1.242 0.75 1.301 0.825 1.366 0.9 1.436 0.975 1.509 1.05 1.584 1.125 1.658 Y3 1 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 0.03 1 0.06 1.002 0.09 1.004 0.12 1.007 0.15 1.011 0.18 1.016 0.21 1.022 0.24 1.029 0.27 1.037 0.3 1.046 0.33 1.055 0.36 1.066 0.39 1.078 0.42 1.091 0.45 1.104 6. Постройте на одном графике найденные решения. 0 1 2 3 1 1.5 2 1.924 1 Y1 2 Y2 2 Y3 2 30 Y1 1 Y2 1 Y3 1 Дифференциальные уравнения второго порядка. ОДУ второго порядка имеет вид , , , 0F x y y y или , ,y f x y y . 54 Найти такое решение, которое удовлетворяет начальным условиям 0 0y x y , 0 0y x y . Решение ДУ второго порядка методом Рунге–Кутта. С помощью заме- ны переменных 1 2,y x Y x y x Y x вместо одного ДУ второго порядка yyxfy ,, получим систему двух ДУ первого порядка: 1 2 2 1 2 ; , , Y Y Y f x Y Y с вектором начальных условий 01 02 0 0 0 yY Y yY . Дальше применяем метод Рунге–Кутта с помощью встроенной функции rkfixed 0, 1, 2, points,Y x x n D , где 2 1 2 , , , Y D x Y f x Y Y . Пример 4.3. Решите задачу Коши методом Рунге–Кутта и постройте гра- фик приближенного решения ДУ 2 3 0y y y , 0 1y , 0 1y по 60 точ- кам отрезка 0, 6 . С помощью замены 1y x Y x , 2y x Y x вместо заданного ДУ полу- чим систему ДУ 1 2 2 2 1 ; 2 3 Y Y Y Y Y с вектором начальных условий 1 2 0 0 0 Y Y Y . Решение. 1. ORIGIN: 1. 2. 1 0 : 1 Y . 55 3. 2 2 1 , : 2 3 Y D x Y Y Y . 4. : rkfixed 0, 0, 6, 59,Z Y D , где Z – решение в форме матрицы, I-й столбец которой состоит из значений x , II-й – значений y , III-й – y . 5. Построить график решения. Линейные однородные дифференциальные уравнения второго порядка с постоянными коэффициентами. Структура общего решения ДУ 0 21 yayay зависит от характера корней соответствующего характери- стического уравнения 2 1 2 0a a . Если характеристическое уравнение имеет два различных действительных корня 1 и 2 , то фундаментальная система решений имеет вид 11( ) e x y x и 22( ) e xy x . Если характеристическое уравнение имеет два равных действи- тельных корня 1 2 , то фундаментальная система решений имеет вид 11( ) e x y x и 12( ) e xy x x . Если характеристическое уравнение имеет два комплексных корня 1 i и 2 i , то фундаментальная система ре- шений имеет вид 1( ) e cosxy x x и 2( ) e sinxy x x . Общее решение ДУ 1 21 2y x c y x c y x . Пример 4.4. Найдите общее решение уравнения 2 3 0y y y . Решите задачу Коши с начальными условиями (0) 1y , (0) 1y , решенную прибли- 1.5 0.5 1 0 -0.5 0 2 4 6 2 Z 1.109 -0.12 1 Z 56 женно методом Рунге–Кутта в примере 4.3. Проверьте правильность решения. Изобразите его график. Решение. 1. Установите режим автоматических вычислений. 2. ORIGIN: 1. 3. Найдите корни характеристического уравнения. 2 Given л 2 л 3 0 Find л 1 i 2 1 i 2 4. 1 : e cos 2xy x x , 2 : e sin 2xy x x – функции фундамен- тальной системы решений. 5. Запишите общее решение уравнения (как функцию переменных x , 1c и 2c ). 6. Для определения значений 1c и 2c , при которых выполняются началь- ные условия, найдите 0y и 0y : 1210, c,ccy d d 1 1 2 : , 1, 2 d y x,c ,c y x c c x d 1 0, 1, 2 1 exp 0 cos 0 1 exp 0 sin 0 2 2 exp 0 sin 0 2 exp 0 cos 0 2. y c c c c c c Упростим это выражение d 1 0, 1, 2 simplify 1 2 2y c c c c . 7. Используйте вычислительный блок для нахождения 1c и 2c , учитывая, что 0 1; 0 1. y y Given 1c = 1 221 cc = 1 2 1 2,1Find cc 57 Таким образом, искомое решение: : 1 2 2 exp cos 2 2 exp sin 2 . yc x y x y x yc x x x x x 8. Проверьте решение подстановкой в уравнение. 2 2 d d d 1 : d 2 : d d d 2 2 d 1 3 0. yc x yc x yc x yc x x x yc x yc x yc x 9. Проверьте выполнение начальных условий 101 10 dyc yc 10. Постройте график решения: , 1, 2 : 1 1 2 2 , 1, 2 1 exp cos 2 2 exp sin 2 . y x c c c y x c y x y x c c c x x c x x 10 0 10 0 50 50 25 yc x( ) 1010 x 11. Сравните графики точного и приближенного решений. Линейные неоднородные ДУ второго порядка с постоянными коэффи- циентами и правой частью специального вида. Общее решение линейного неоднородного уравнения записывается как сумма общего решения однородно- го уравнения и любого частного решения неоднородного уравнения. Вид частного решения устанавливается по виду правой части уравнения 1 2y a y a y f x , 58 при этом 1) для 22 1 0f x A x A x A , если 1 2 0 , то частное решение ДУ имеет вид 2 2, 2, 1, 0 2 1 0ycn x b b b x b x b x b ; если 1 0 или 2 0 , то частное решение ДУ 2, 2, 1, 0 2 1 0ycn x b b b x b x b x b ; если 1 20, 0, то частное решение ДУ 2, 2, 1, 0 2 1 0ycn x b b b b x b x b ; 2) для e xf x A , если 1 2 , то частное решение ДУ имеет вид 2, e xycn x B Bx ; если 1 или 2 , то частное решение ДУ , e xycn x B B x ; если 1 20, 0 , то частное решение ДУ , e xycn x B B ; 3) для 1 1e sin e cos x xf x A x B x (в частности, при 1 0A или 1 0B ), если 1 2,i i , то частное решение ДУ имеет вид , 2, 2 2e sin 2e cosx xycn x A B A x B x ; если 1 i или 2 i , то частное решение ДУ имеет вид 2 2, , 2 e sin 2 e cos x xycn x A B x A x B x ; Пример 4.5. Найдите общее решение неоднородного уравнения 22 3 1y y y x . Проверьте правильность решения. 59 Решение. 1. ORIGIN: 1. 2–3. Найдите общее решение соответствующего однородного уравнения вашего задания (см. пункты 2–5 решения задачи 4.4). 4. Запишите выражение для частного решения как функцию переменной х и неизвестных коэффициентов по виду правой части неоднородного уравнения: 2, 2, 1, 0 : 2 1 0ycn x A A A A x A x A . 5. Подставьте выражение частного решения в левую часть уравнения: 2 2 d d 1 , 2, 1, 0 : , 2, 1, 0 d d d 2 , 2, 1, 0 : , 2, 1, 0 d ycn x A A A ycn x A A A x ycn x A A A ycn x A A A x d 2 , 2, 1, 0 2d 1 , 2, 1, 0 3 , 2, 1, 0ycn x A A A ycn x A A A ycn x A A A 22 2 4 2 2 1 3 2 3 1 3 0A A x A A x A x A . 6. В полученном выражении приведите подобные относительно степеней х, для чего выделите переменную х и щелкните по строке Collect в меню Symbolics: 2 2 2 2 4 2 2 1 3 2 3 1 3 0 3 2 3 1 4 2 2 2 3 0 2 1. A A x A A x A x A A x A A x A A A 7. Приравняв коэффициенты при степенях x полученного выражения левой части уравнения и выражения правой части, запишите и решите систему относительно параметров 2a , 1a , 0a : 2 23 2 3 1 4 2 2 2 3 0 2 1 1.A x A A x A A A х Given 3 2a =1 3 1 4 2a a =0 2 2 3 0 2 1a a a =1 1 3 4 Find 2, 1, 0 9 11 27 a a a 60 8. Запишите частное решение с найденными коэффициентами 2a , 1a , 0a : 21 4 11: 3 9 27 ycn x x x . 9. Запишите общее решение неоднородного уравнения: 21 4 11, 1, 2 : 1 exp cos 2 2 exp sin 2 3 9 27 ycno x c c c x x c x x x x . 10. Проверьте решение подстановкой: d d 1 1 2 1 2 d ycno x,c ,c : ycno x,c ,c x 2 2 d d 2 1 2 1 2 d ycno x,c ,c : ycno x,c ,c x 2d 2 1 2 2 d 1 1 2 3 1 2 1ycno x,c ,c ycno x,c ,c ycno x,c ,c x . Замечание. В примере 4.5 правая часть имеет вид многочлена 2 2 1 0f x A x A x A . Если в задании ( ) e xf x или sin cosf x A x B x , соответственно измените в решении пункты 4–9. Порядок выполнения работы Студенту рекомендуется внимательно изучить теоретический материал, проделать все примеры, в нем встречающиеся, и после этого приступать к выполнению своего варианта задания. Содержание отчета 1. Краткий обзор по теоретической части. 2. Файл MathCAD с выполненными заданиями своего варианта. Варианты заданий Вариант 1 1. Найти решение уравнения с разделяющимися переменными 3e d dx y y x x , удовлетворяющее начальному условию 1)0(y (задача Коши). Изобразить график решения (интегральную кривую, проходящую через точку (0,1)). 61 2. Решить задачу Коши 2 3e ( ) 0, ( 1) 0.103451, ( 1) 0.1xy y y y y y на интервале [1, 3]. 3. Найти решение однородного уравнения 3 2 0 0 4 0 1y y y , y , y . Проверить правильность решения. Изобразить его график. 4. Найти общее решение неоднородного уравнения 4 8 16y y x . Про- верить правильность решения. 5. Найти общее решение неоднородного уравнения 47 12 3e xy y y . Проверить правильность решения. 6. Найти общее решение неоднородного уравнения 5 39cos3 105sin3y y x x . Проверить правильность решения. Вариант 2 1. Найти решение уравнения с разделяющимися переменными 'sin lny x y y , удовлетворяющее начальному условию 2 2 y (задача Коши). Изобразить график решения (интегральную кривую, проходящую через точку 2, 2 ). 2. Решить задачу Коши 2 3e ( ) 0, ( 1) 0.103451,xy y y y y ( 1) 0.1y на интервале [–1, 1]. 3. Найти решение однородного уравнения 4 4 0 0 0 0 2y y y , y , y . Проверить правильность решения. Изобразить его график. 4. Найти общее решение неоднородного уравнения 2y y y 3 24 24 22 4x x x . Проверить правильность решения. 5. Найти общее решение неоднородного уравнения 26 3e xy y y . Проверить правильность решения. 6. Найти общее решение неоднородного уравнения 16 8cos4y y x . Проверить правильность решения. Вариант 3 1. Найти решение уравнения с разделяющимися переменными (2 1)ctgy x y , удовлетворяющее начальному условию 0)0(y (задача Коши). Изобразить график решения (интегральную кривую, проходящую через точку (0, 0)). 2. Решить задачу Коши 2 0, (0) 1, (0) 1y y x y y y для значений па- раметра на интервале [0, 4]. 3. Найти решение однородного уравнения 4 4 0 0 3 0 1 y y y , y , y . Проверить правильность решения. Изобразить его график. 62 4. Найти общее решение неоднородного уравнения 336 36 66 36y y x x . Проверить правильность решения. 5. Найти общее решение неоднородного уравнения 58 25 18e xy y y . Проверить правильность решения. 6. Найти общее решение неоднородного уравнения 8 20y y y 16(sin 2 cos2 )x x . Проверить правильность решения. Вариант 4 1. Найти решение уравнения с разделяющимися переменными (1 e ) d e d 0x yy y x , удовлетворяющее начальному условию 3)0(y (задача Коши). Изобразить график решения (интегральную кривую, проходящую через точку (0, 3)). 2. Решить задачу Коши 2 2 1 0y y y y для значений парамет- ров 0,1, 0,2 при начальных условиях (0) 1, (0) 1y y на интервале [0, 10]. 3. Найти решение однородного уравнения 5 6 0 0 2 0 3y y y , y , y . Проверить правильность решения. Изобразить его график. 4. Найти общее решение неоднородного уравнения 2 37y y y 237 33 74x x . Проверить правильность решения. 5. Найти общее решение неоднородного уравнения 4 20y y y 4cos4 52sin4x x . Проверить правильность решения. 6. Найти общее решение неоднородного уравнения 4 15exy y . Прове- рить правильность решения. Вариант 5 1. Найти решение уравнения с разделяющимися переменными 2 e3 d d 0 x y x y y x , удовлетворяющее начальному условию e)1(y (задача Коши). Изобразить график решения (интегральную кривую, проходящую через точку 1, e ). 2. Решить задачу Коши 3 cosy y y f t для значений параметров 1f , 2.0 , 5.0,1 при начальных условиях 00y , 00y на интервале [0, 10 ]. 3. Найти общее решение однородного уравнения 6 13 0 0 2y y y , y , 0 4y . Проверить правильность решения. Изобразить его график. 4. Найти решение неоднородного уравнения 2 9cos 7siny y y x x . Проверить правильность решения. 63 5. Найти общее решение неоднородного уравнения 4 29 26e xy y y . Проверить правильность решения. 6. Найти общее решение неоднородного уравнения 26 9 9 39 65y y y x x . Проверить правильность решения. Вариант 6 1. Найти решение уравнения с разделяющимися переменными sin cos dy x y cos sin dy x x , удовлетворяющее начальному условию 3 4 y (задача Ко- ши). Изобразить график решения (интегральную кривую, проходящую через точку 4 , 3 ). 2. Решить задачу Коши 32 cosy y y y f t для значений пара- метров 1f , 2.0 , 5.0 , 1.0 при начальных условиях 00y , 00y на интервале [0, 10 ]. 3. Найти решение однородного уравнения 0 0 1 0 2y y , y , y . Проверить правильность решения. Изобразить его график. 4. Найти общее решение неоднородного уравнения 22 6 12 24y y x x . Проверить правильность решения. 5. Найти общее решение неоднородного уравнения 6 34y y y 18cos5 60sin5x x . Проверить правильность решения. 6. Найти общее решение неоднородного уравнения xyyy 3e7296 . Проверить правильность решения. Вариант 7 1. Найти решение уравнения с разделяющимися переменными xyy tg)12( , удовлетворяющее начальному условию 0)(y (задача Ко- ши). Изобразить график решения (интегральную кривую, проходящую через точку 0, ). 2. Решить задачу Коши 0cos12 yxmyy для значений пара- метров 2.0m , 1.2 , 1.0 при начальных условиях 10y , 00y на интервале [0, 10 ]. 3. Найти решение однородного уравнения 4 13 0, 0 3 0 9y y y y , y . Проверить правильность решения. Изобразить его график. 4. Найти общее решение неоднородного уравнения 12 36y y y 32cos2 24sin2x x . Проверить правильность решения. 64 5. Найти общее решение неоднородного уравнения 8 16y y y 3 216 24 10 8x x x . Проверить правильность решения. 6. Найти общее решение неоднородного уравнения 39 10e xy y . Прове- рить правильность решения. Вариант 8 1. Найти решение уравнения с разделяющимися переменными 21 e ex xy y , удовлетворяющее начальному условию 2 )0(y (задача Ко- ши). Изобразить график решения (интегральную кривую, проходящую через точку 2 ,0 ). 2. Решить задачу Коши 01 22 yxy для значений параметров при начальных условиях 5.05.0y на интервале 5.2,5.0 . 3. Найти решение однородного уравнения 0 3 2 y y , y , р 2 2 y . Проверить правильность решения. Изобразить его график. 4. Найти общее решение неоднородного уравнения xyy 4e3216 . Про- верить правильность решения. 5. Найти общее решение неоднородного уравнения 2 38 16 48 128y y x x . Проверить правильность решения. 6. Найти общее решение неоднородного уравнения 3 2y y y sin 7cosx x . Проверить правильность решения. Вариант 9 1. Найти решение уравнения с разделяющимися переменными d sin tg d 0 sin y x y x x , удовлетворяющее начальному условию 2)0(y (задача Коши). Изобразить график решения (интегральную кривую, проходящую через точку (0, 2)). 2. Решить задачу Коши 2 33 1 0y x x y для значений параметров при начальных условиях 01y на интервале 10,1 . 3. Найти решение однородного уравнения 2 2 0 0 1 0 1y y , y , y . Проверить правильность решения. Изобразить его график. 4. Найти общее решение неоднородного уравнения 6 10 51e xy y y . Проверить правильность решения. 65 5. Найти общее решение неоднородного уравнения xxyy sin2cos4 . Проверить правильность решения. 6. Найти общее решение неоднородного уравнения 24 5 5 32 5y y y x x . Проверить правильность решения. Вариант 10 1. Найти решение уравнения с разделяющимися переменными 2e ln x y y , удовлетворяющее начальному условию 2(0) ey (задача Коши). Изобразить график решения (интегральную кривую, проходящую через точку 20, e ). 2. Решить задачу Коши 2 3 0y x xy при начальном условии 00y на интервале [0, 1]. 3. Найти общее решение однородного уравнения 4 0 1 2 р y y , y , 0 2 р y . Проверить правильность решения. Изобразить его график. 4. Найти общее решение неоднородного уравнения 12xyy . Прове- рить правильность решения. 5. Найти общее решение неоднородного уравнения 14 49 144sin7y y y x . Проверить правильность решения. 6. Найти общее решение неоднородного уравнения xyyy e42 . Про- верить правильность решения. 66 Л а б о р а т о р н а я р а б о т а № 5 ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ И ОПТИМИЗАЦИЯ ФУНКЦИЙ Цель работы: изучение вычислительных возможностей пакета MathCAD для решения нелинейных уравнений и систем и оптимизационных задач. Теоретические сведения Решение уравнения с одним неизвестным. Метод простых итераций. Пусть задана непрерывная функция xf и требуется найти корни уравнения ( ) 0.f x (5.1) Уравнение (5.1) заменим эквивалентным ему уравнением ( )x x . Выберем некоторое нулевое приближение и вычислим последующие приближения по формулам 1 0,1, 2...n nx x n . Процесс итераций сходится lim n n x , если выполнено условие 1)( qx на отрезке [a, b], содержащем корень . Метод Ньютона. Пусть дано уравнение 0xf , корень которого ],[ ba отделен. Суть метода состоит в том, что дуга кривой )(xfy заменяется каса- тельной к ней и за приближение корня берется абсцисса точки пересечения ка- сательной с осью OX. В методе касательных e1n приближение вычисляется по формуле 1 ( ) '( ) n n n n f x x x f x , ...2,1,0n , в которой за нулевое приближение 0x принимается такое значение из отрезка [a, b], для которого выполняется условие 0 0( ) ( ) 0f x f x . Оценка абсолютной погрешности определяется формулой n n f x x , где max ( ) , ( ) 0 a x b f x f x . 67 Средства пакета MathCAD для решения нелинейных уравнений вида f ( x ) 0 . Для решения уравнений MathCAD имеет встроенную функцию root, которая, в зависимости от типа задачи, может включать либо два, либо четыре аргумента и, соответственно, работает по-разному. root (f(х), х); root (f(х), х, а, b), где f(х) – скалярная функция, определяющая уравнение; х – скалярная переменная, относительно которой решается уравнение; а, b – границы интервала, внутри которого происходит поиск корня. Первый тип функции root требует дополнительного задания начального значения (guess value) переменной х. Для этого нужно предварительно присвоить этой переменной некоторое число, в окрестности которого будет производиться поиск корня. Таким образом, присвоение начального значения требует априор- ной информации о примерной локализации корня. Отделить корень можно, по- строив график функции f(х) и с помощью опции Trace (см. лабораторную рабо- ту № 3) определить примерно абсциссу пересечения графиком оси ОХ. Пример 5.1. Рассмотрим уравнение sin 0х , корни которого известны заранее. Примем начальное значение 0.5x . Решение. Поиск корня уравнения в заданном интервале. Когда root имеет четыре аргумента, следует помнить о двух ее особенностях: внутри интервала ba, не должно находиться более одного корня, иначе будет найден один из них (заранее неизвестно, какой именно); значения af и bf должны иметь разный знак, иначе будет выдано сообщение об ошибке. 68 Пример 5.2. Найти корень уравнения 0sin x из интервала 1;1 . Решение. f x( ) sin x( ) solution root f x( ) x 1 1( ) solution 0 Поиск мнимых корней уравнения. Если уравнение не имеет действитель- ных корней, но имеет мнимые, то их также можно найти. Пример 5.3. Решить уравнение 2 1 0x . Решение. x 0.5 root x 2 1 x i x 0.5 root x 2 1 x i Замечание. Явный вид функции xf может быть определен непосред- ственно в теле функции root. Корни полинома. Если функция xf является полиномом, то все его кор- ни можно определить, используя встроенную функцию polyroots(v), где v – вектор, составленный из коэффициентов полинома. Поскольку полином n-й степени имеет ровно n корней (некоторые из них могут быть кратными), вектор v должен состоять из 1n элементов. Результа- том действия функции polyroots является вектор, составленный из n корней рассматриваемого полинома. При этом не требуется вводить какое-либо начальное приближение, как для функции root. Пример 5.4. Найти корни полинома 3 10 2x x . Решение. 1. Задаем полином 3( ) : 10 2p x x x . 2. Определяем вектор коэффициентов полинома 1 0 10 2 :v . 69 3. Находим вектор корней полинома )(: vpolyrootsr 057.3 201.0 258.3 r . 4. Представляем результаты на графике. 4 2 0 2 4 40 20 0 20 40 p x( ) 0 p rj x x rj Некоторые уравнения можно решить точно с помощью символьного про- цессора MathCAD. Делается это очень похоже на численное решение систем уравнений с применением вычислительного блока (см. пункт «Средства пакета MathCad для решения систем уравнений»). Присваивать неизвестным началь- ные значения нет необходимости. Пример 5.5. Given 2 4 7 0x x Find 112112)(x Вместо знака равенства после функции Find в листингах следует стрелка – знак символьных вычислений, который можно ввести с панели Symbolic (Сим- волика) или, нажав клавиши +<.>. При этом уравнения должны иметь вид логических выражений (знаки равенства нужно вводить с помощью панели Booleans (Булевы операторы) – жирные знаки равенства). С помощью символьного процессора решить уравнение с одним неизвест- ным можно и другим способом. 1. Введите уравнение, пользуясь панелью Booleans (Булевы операторы) или нажав клавиши +<.> для получения логического знака равенства. 70 2. Щелчком мыши выберите переменную, относительно которой требуется решить уравнение. 3. Выберите в меню Symbolics (Символика) пункт Variable / Solve (Пере- менная / Решить). После строки с уравнением появится строка с решением или сообщение о невозможности символьного решения этого уравнения. Символьные вычисления могут производиться и над уравнениями, кото- рые помимо неизвестных содержат различные параметры. Решение систем нелинейных уравнений. Метод простых итераций (последовательных приближений). Систему нелинейных уравнений можно записать в векторном виде 0)(xf  (5.2) или подробно в координатном виде 1 2( , ,..., ) 0, 1k nf x x x k n . Нулевое приближение в случае двух переменных находится графически: на плоскости 1 2( , )x x строят кривые 1 1 2( , ) 0f x x и 2 1 2( , ) 0f x x и находят точ- ки их пересечения. Для трех и более переменных удовлетворительных способов подбора ну- левых приближений нет. Заменим нелинейную систему (5.2) эквивалентной системой вида )(xx  . или 1 1 2( , ,..., ), 1 s s s s k nx x x x k n . Если итерации сходятся, то они сходятся к решению уравнения (предпола- гается, что решение существует). Заканчивать итерации можно по критерию сходимости: 2 1 1 2 ( ) 2 n n n n n x x x x x , выполнение которого необходимо проверить для каждой компоненты. Средства пакета MathCAD для решения систем нелинейных уравне- ний. При решении систем нелинейных уравнений, а также задач оптимизации используется специальный вычислительный блок, открываемый ключевым сло- вом Given и имеющий следующую структуру: 71 Начальные условия Given Уравнения Ограничительные условия Выражения с функциями Find, Minner (Maximize, Minimize). Начальные условия определяют начальные значения искомых переменных и задаются в виде var:=value, т. е. обычным присваиванием переменным задан- ных значений. Уравнения задаются в виде expr_left=expr_right с применением жирного знака равенства между левой и правой частями каждого уравнения, который вводится либо с палитры Boolean (Булевы операторы), либо сочетанием кла- виши +<=>. Встроенная функция Find (x1, ... , xn) возвращает значение одной или не- скольких переменных для точного решения. Таким образом, число элементов вектора решений равно числу аргументов функции Find. Пример 5.6. Решить систему уравнений 2 2 2 21 1 5,5; 0,95 x y x y в окрестности точки )1,0( . Решение. x 0 y 1 Given x 2 1 2 y 2 1 2 5.5 x y 0.95 z Find x y ( ) z 0.106 1.056 Выполним проверку 2 2 2 2 0 11 1 5.5z z 0 1 0.95.z z Ответ: решением системы является точка 056.1,106.0 . 72 Замечание. Вычислительный блок использует константу CTOL в качестве погрешности выполнения уравнений, введенных после ключевого слова Given. Например, если CTOL 0.001, то уравнение 10x будет считаться выполнен- ным и при 001.10x , и при 999.9x . Вычислительным блоком с функцией Find можно найти и корень уравне- ния с одним неизвестным. Действие Find в этом случае совершенно аналогично уже рассмотренным примерам. Задача поиска корня рассматривается как реше- ние системы, состоящей из одного уравнения. Единственным отличием будет скалярный, а не векторный тип числа, возвращаемого функцией Find (см. при- мер 5.5). Если окрестность, в которой требуется найти решение системы, не задана, начальное приближение для решения можно задать, построив в одной графиче- ской области графики кривых, задаваемых уравнениями системы. Пример 5.7. Найти решение системы уравнений 4 5cos( ) 0; 3 2sin( ) 0. x x y y x y Решение. Зададим функции yxf , и yxg , , соответствующие первому и второму уравнениям: , : 4 5cosf x y x x y yxyyxg sin23:, . Построим графики поверхностей, описываемых этими уравнениями (рис. 5.1). f g Рис. 5.1 73 На графике видно, что в качестве начального приближения можно вы- брать, например, точку (0, 0). 0:x 0:y . Given 0),( yxf 0),( yxg ),(Find: yxz 653.0 118.1 z Выполним проверку, подставив найденные значения в функции yxf , и yxg , : 7 0 1( , ) 1.316 10f z z 7 0 1( , ) 2.175 10g z z . Ответ: решением системы является точка 653.0,118.1 . Если не удается решить точно систему уравнений с помощью функции Find, можно попытаться найти ее приближенное решение, заменив в вычислительном блоке функцию Find на функцию Minerr с тем же набором параметров. Пример 5.8. 1x 1y Given 122 yx 1.0x 2.0y 246.0 969.0 ),(Minerr yx Минимизация функций. Система нелинейных уравнений в векторной форме 1 2 ( ) 0; ( , ,..., ) 0, 1 .k n f x f x x x k n (5.3) 74 Рассмотрим функцию 2 1 ( ) ( ) n k k x f x . Она неотрицательна и обращает- ся в нуль в том и только в том случае, если 0)(xf  . Таким образом, решение исходной системы уравнений (5.3) будет одновременно нулевым минимумом скалярной функции многих переменных )(x  . Иногда проще искать такой ми- нимум, чем решать систему уравнений. Задачи минимизации функций принято называть задачами оптимизации, так как основной целью их решения обычно является достижение оптимального режима работы. При этом минимизируе- мую функцию называют целевой. Решение задач оптимизации складывается из следующих элементов: со- здания математической модели явления, определения целевой функции и важ- нейших параметров, подлежащих оптимизации, непосредственной минимиза- ции некоторой функции (обычно большого числа переменных). Функции MathCAD для решения задач оптимизации. В MathCAD с по- мощью встроенных функций решается только задача поиска локального экс- тремума. Чтобы найти глобальный максимум (или минимум), требуется либо вычислить все их локальные значения и потом выбрать из них наибольший (наименьший), либо предварительно просканировать с некоторым шагом рас- сматриваемую область, чтобы выделить из нее подобласть наибольших (наименьших) значений функции и осуществить поиск глобального экстрему- ма, уже находясь в его окрестности. Второй вариант «таит в себе опасность» уйти в окрестность другого локального экстремума, но часто может быть предпочти- тельнее при решении практических задач. Для поиска локальных экстремумов имеются две встроенные функции, которые могут применяться как в пределах вычислительного блока, так и автономно: Minimize (f, x1, ..., хn) – вектор значений аргументов, при которых функ- ция f достигает минимума; Maximize (f, x1, ..., хn) – вектор значений аргументов, при которых функ- ция f достигает максимума; f(x1, ..., хn)– заданная целевая функция; x1, ..., хn – аргументы, по которым производится минимизация (максими- зация). Всем аргументам функции f предварительно следует присвоить некоторые значения, причем для тех переменных, по которым производится минимизация, они будут восприниматься как начальные приближения. Пример 5.9. Поиск локального экстремума в окрестности заданной точки. Найти максимум функции 2 2( , ) 2 2 2f x y x y x y в окрестности точ- ки (4; 5). 75 Решение. 2 2( , ) : 2 2 2f x y x y x y 4:x ; 5:y Given : Maximize ( , , )P f x y 1 1 P 0 1( , ) 4f P P Ответ: функция имеет максимум, равный 4, в точке 1;1 . Пример 5.10. Поиск условного экстремума функции. Найти минимум функции 0 1 2 3 4 5( ) 8 10 7 6 11 9f x x x x x x x при условиях 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 12 9 25 20 17 13 60; 35 42 18 31 56 49 150; 37 53 28 24 29 20 125; 0, 1, 0, ..., 5.i i x x x x x x x x x x x x x x x x x x x x i . Решение. 1. Задаем целевую функцию, матрицу системы ограничений и вектор пра- вой части этой системы: 0 1 2 3 4 5: 8 10 7 6 11 9f x x x x x x x 12 9 25 20 17 13 60 : 35 42 18 31 56 49 : 150 37 53 28 24 29 20 125 M v . 2. Задаем начальное приближение решения: 1 1 1 1 1 1 :x . 3. С помощью вычислительного блока находим вектор R, на котором до- стигается минимальное значение функции )(Rf . 76 Given vxM 1x 0x : Minimize ( , )R f x 1 048.0 1 343.0 623.0 1 R 155.32)(Rf Ответ: минимум функции равен 32.155 и достигается в точке 1; 0.623; 0.343; 1; 0.048; 1 . Порядок выполнения работы Ответить на контрольные вопросы. Выполнить примеры из практической части. Выполнить задачи своего варианта. Содержание отчета Отчет должен содержать ответы на контрольные вопросы и результат ре- шения соответствующего варианта. Контрольные вопросы 1. Что значит отделить корень уравнения 0)(xf ? 2. Какие функции могут быть использованы для решения нелинейных урав- нений? 3. Конструкция вычислительного блока. 4. В чем различие между функциями Find и Minner для решения систем нелинейных уравнений? 5. Где необходимо расположить ограничительные условия при решении задачи оптимизации? Варианты заданий Вариант 1 77 1. Решить уравнение 2 1 32 x x x используя встроенные функции root и Find. Сравнить полученные решения. 2. Найти все корни полинома 4 33 12 5,6x x x . Проиллюстрировать ре- шение графически. 3. Решить систему нелинейных уравнений: sin 1.32 0; cos 0.85 0. x y y x . 4. Найти максимум функции 2 2 21 2 3 1 2 3 1 2 1 3 2 3( , , ) 6 23 4 6 20f x x x x x x x x x x x x . Вариант 2 1. Решить уравнение 3 cosx x используя встроенные функции root и Find. Сравнить полученные решения. 2. Найти все корни полинома 3 24 2.34 13x x . Проиллюстрировать реше- ние графически. 3. Решить систему нелинейных уравнений: 3 3 3 3 6 2 0; 6 3 0. x y y x y y 4. Найти максимум функции 22),( yxyxf при ограничении 2 23 6 4 140x y xy , 0 6x , 0 1y . Вариант 3 1. Решить уравнение ln 2x x используя встроенные функции root и Find. Сравнить полученные решения. 2. Найти все корни полинома 3 22 9 60 1x x x . Проиллюстрировать ре- шение графически. 3. Решить систему нелинейных уравнений: sin( 1) 1; 2 cos 2. x y x y . 4. Найти максимум функции 2 3( , , )f x y z xy z при ограничении 6x y z , 0 1x , 0 2y , 0 6z . Вариант 4 1. Решить уравнение 2 cos2 1x x используя встроенные функции root и Find. Сравнить полученные решения. 2. Найти все корни полинома 4 3 23 8 9 2.9x x x . Проиллюстрировать ре- шение графически. 78 3. Решить систему нелинейных уравнений: 2 3 0.5 0.5; 1 2 1.6. 6 y x x x y y . 4. Найти максимум функции 2 ( ) 1 x f x x . Вариант 5 1. Решить уравнение e 3x x используя встроенные функции root и Find. Сравнить полученные решения. 2. Найти все корни полинома 4 3 22 5 6.5x x x x . Проиллюстрировать решение графически. 3. Решить систему нелинейных уравнений: 5 6 20ln 16 0; 2 10ln 4 0. x y x x y y 4. Найти минимальное и максимальное значения функции 2( ) ( 1)f x x x . Вариант 6 1. Решить уравнение 2 2ln 1 1x x используя встроенные функции root и Find. Сравнить полученные решения. 2. Найти все корни полинома 4 3 23 4 12 5x x x , проиллюстрировать ре- шение графически. 3. Решить систему нелинейных уравнений: 2 3 0.5 1 0; 3 0. x y xy y 4. Найти максимум функции 2 21 2 1 1 2 2( , ) 2 0.2 824 0.2f x x x x x x при условиях 1 22 10x x , 2 2 1 2 100x x , 1 0x , 2 8x , 1 0( ) 0x , 2 0( ) 8x . Вариант 7 1. Решить уравнение 24 cos 1x x используя встроенные функции root и Find. Сравнить полученные решения. 2. Найти все корни полинома 4 21.2 10.5x x . Проиллюстрировать реше- ние графически. 3. Решить систему нелинейных уравнений: 2 2 2 2 2 2 6 0; 0.5 0. x y xy x y y x Выполнить проверку. 79 4. Найти минимум функции 2 21 2 1 1 2 2( , ) 5.6 0.4 8.8 0.4f x x x x x x при ус- ловиях 10 6x , 2 2 1 2 144x x , 1 2x x , 1 0( ) 6x , 2 0( ) 7x . Вариант 8 1. Решить уравнение 5 3 0x x используя встроенные функции root и Find. Сравнить полученные решения. 2. Найти все корни полинома 87.035.13 xx . Проиллюстрировать реше- ние графически. 3. Решить систему нелинейных уравнений: cos( 1) 0.8; cos 2. x y x y Выполнить проверку. 4. Найти минимум функции 2 21 2 1 1 2 2( , ) 3.2 0.2 3.6 0.2f x x x x x x при условиях 1 22 20x x , 2 2 1 1 2 26 10 66x x x x , 2 2 1 1 2 220 10 25x x x x , 1 0( ) 9x , 2 0( ) 11x . Вариант 9 1. Решить уравнение 22 2 1xx используя встроенные функции root и Find. Сравнить полученные решения. 2. Найти все корни полинома 4 3 26 3.2 5.92x x x . Проиллюстрировать решение графически. 3. Решить систему нелинейных уравнений: 1 cos 2 0; 3( ) 1 sin 2 0. 3( ) y x y x x y Выпол- нить проверку 4. Найти минимум функции 2 21 2 1 1 2 2( , ) 3.6 0.2 0.8 0.2f x x x x x x при условиях 1 22 10x x , 2 2 1 1 210 75x x x , 2 0x , 1 0( ) 1x , 2 0( ) 9x . Вариант 10 1. Решить уравнение, предварительно отделив корни 27ln 3x x исполь- зуя встроенные функции root и Find. Сравнить полученные решения. 2. Найти все корни полинома 4 36 8 35x x x . Проиллюстрировать реше- ние графически. 80 3. Решить систему нелинейных уравнений: 2 sin0.5( ) 0; 2 cos0.5( ) 0. x x y y x y Выпол- нить проверку. 4. Найти минимум функции 2 21 2 1 1 2 2( , ) 3 0.25 0.4 0.25f x x x x x x при ус- ловиях 2 21 2 210 75x x x , 2 2 1 1 210 75x x x , 1 2 10x x , 1 0( ) 5x , 6)( 02x . Л а б о р а т о р н а я р а б о т а № 6 ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ В ПАКЕТЕ ИНЖЕНЕРНЫХ РАСЧЕТОВ MATHCAD Цель работы: изучение возможностей символьного пакета MathCAD для программирования условных и циклических выражений; приобретение навыков написания простейших программ. Теоретические сведения Пакет инженерных расчетов MathCAD предлагает использовать средства программирования, которые позволяют пользователю создавать свои собствен- ные функции, используя оператор присваивания, условный оператор, операто- ры цикла, операторы прерывания вычислений и оператор обработки ошибок, что оптимизирует работу пользователя и улучшает читаемость программы. Для написания функций используется понятие программный блок (програм- мный модуль). Программный блок пишется с помощью инструкций (операторов) програм- мирования. Они находятся на палитре компонент Programming, которую мож- но вызвать щелчком мыши по кнопке палитры компонент Math либо вы- брать пункт главного меню View ► Toolbars ► Programming. Палитра компонент программирования имеет вид, изображенный на рис. 6.1. Рис. 6.1 81 Основной инструкцией программирования является инструкция Add Line, которая создает программный блок и позволяет добавлять инструкции в про- граммный блок. Маска программного блока выглядит следующим образом: , где черные квадраты – это поля для ввода инструкций. Следующей по значимости инструкцией является инструкция локального присваивания ( ). При присваивании значения переменной внутри программного блока используется не обычный оператор присваивания (:=), а оператор локаль- ного присваивания ( ). Если в программном блоке переменной присвоено зна- чение, то областью действия данной переменной будет только программный блок. Вне данного программного блока может существовать другая переменная с тем же именем (глобальная переменная), но при этом они являются различными. Если глобальная переменная перед выполнением программного блока имела некото- рое значение, то оно не изменится, если в следом идущем программном блоке локальная переменная с тем же именем будет принимать другие значения. В про- граммном блоке могут фигурировать и переменные, которым раньше в нем не было присвоено никакого значения, в таком случае данные переменные должны быть определены глобально – до выполнения программного блока. Результатом выполнения программного блока есть значение, которое явля- ется последним вычисленным в программном блоке. Пример 6.1. Найти значение выражения 2x y при 20x и 11y . Программный блок, вычисляющий данное значение, приведен на рис. 6.2. Переменной x присваивается значение 20 x 20 y 11 x 2 y 20.273 Переменной y присваивается значение 11 Вычисляется значение требуемого выражения Рис. 6.2 Разумеется, значения программных блоков можно присваивать перемен- ным (рис. 6.3). Res x 20 y 11 x 2 y В переменной Res хранится вычисленное значение Res 20.273 Значение вычисленного выражения Рис. 6.3 82 Следующий фрагмент документа MathCAD (рис. 6.4) показывает, что ло- кальная переменная отличается от глобальной с тем же именем. x 1 y 2 Значения переменных x и y перед выполнением программного блока В программном блоке переменной x присваивается значение 20 x 20 y 11 x 2 y 20.273 В программном блоке переменной y присваивается значение 11 Видно, что глобальные переменные x и y не изменили свои значения после выполнения программного блока x 1 y 2 Рис. 6.4 При написании следующего программного блока используются как локаль- ные, так и глобальные переменные. Пример 6.2. Найти значение выражения 3 4 sin cos 2 a b b a при 1a и 2b . Программный блок, вычисляющий данное значение, приведен на рис. 6.5. a 1 Глобальные переменные b 2 s a 3 u sin b( ) Num s u v b 4 w cos a( ) Den v w 2 Num Den 0.075 Значение выражения Числитель вычисляемого выражения Знаменатель вычисляемого выражения Рис. 6.5 Программный блок используется (его основное предназначение) для напи- сания собственно разработанных пользователем функций. В этом случае пере- менные, которые используются внутри программного блока, могут быть либо локальными, либо глобальными, либо параметрами функций. Параметры функ- ций существуют только во время выполнения программного блока, где их зна- чения можно изменять и они могут совпадать с названиями глобальных пере- менных, но это различные переменные. Пример 6.3. Вычислить значение функции 2 3 sin cos 2 x x f x x при 1x , 0x и 1x . Программный блок данной задачи приведен на рис. 6.6. 83 f x( ) a sin x( ) 2 b cos x( ) c x 3 a b c 2 Значения функции f(x) f 1( ) 1.248 f 0( ) 0.5 f 1( ) 0.416 Рис. 6.6 Инструкции if и otherwise используются для написания условных операто- ров. Инструкция if (если) имеет следующую маску ввода: if , где справа от инструкции пишется условие (булевское выражение), при выпол- нении которого выполняются операторы, стоящие слева от нее. Инструкция otherwise (иначе, в противном случае) имеет следующую маску ввода: otherwise и всегда пишется после последовательно идущих инструкций if. Слева от инст- рукции otherwise пишутся операторы, которые выполняются тогда и только тогда, когда условия всех непосредственно идущих инструкций if перед инст- рукцией otherwise не выполняются. Булевские выражения пишутся с помощью булевских операторов, располо- женных на палитре компонент Boolean, которую можно вызвать щелчком мы- ши по кнопке палитры компонент Math либо выбрать пункт главного меню View ► Toolbars ► Boolean. Палитра булевских компонент приведена на рис. 6.7. Рис. 6.7 Назначение булевских операций следующее: – равенство двух выражений; – знак меньше; 84 – знак больше; – знак меньше либо равно; – знак больше либо равно; – знак неравенства двух выражений; – отрицание логического выражения; – конъюнкция (операция И) логических выражений; – дизъюнкция (не исключающее ИЛИ) логических выражений (прини- мает значение ИСТИНА, если хотя бы одно из высказываний ИСТИНА, в про- тивном случае принимает значение ЛОЖЬ); – операция исключающего ИЛИ над логическими выражениями: прини- мает значение ИСТИНА, когда одно из высказываний принимает значение ИСТИНА, а другое высказывание принимает значение ЛОЖЬ, и принимает зна- чение ЛОЖЬ, когда оба высказывания одновременно принимают значение либо ИСТИНА, либо ЛОЖЬ. Пример 6.4. Вычислить значение функции e , если 2, 5 1 , если 2, 3 ln x x x f x x x x x при 3x и 4x . Данная задача решена двумя различными способами (рис. 6.8, 6.9), однако программный код на рис. 6.9 считается более грамотным. f x( ) e x x 5 x 2if x 1 x 3 ln x( ) x 2if f 3( ) 6.223 10 3 f 4( ) 0.358 f x( ) e x x 5 x 2if x 1 x 3 ln x( ) otherwise f 3( ) 6.223 10 3 f 4( ) 0.358 Рис. 6.8 Рис. 6.9 Пример 6.5. Вычислить значение функции ,2 или1если, 1 3 ,21если,12 xx x xx xf x при 4.1x , 1.5x и 3.2x . Решение данной задачи приведено на рис. 6.10. 85 f x( ) x 2 1 x 1( ) x 2( )if 3 x x 1 otherwise f 4.1( ) 2.169 10 3 f 1.5( ) 3.25 f 3.2( ) 15.289 Рис. 6.10 Пример 6.6. Вычислить значение функции 2 2 sin 2 , если 1, , 1, если 1 3, , если 3, x y x y x y f x y x y x y x xy x y при 3x и 1y , 0.15x и 1.25y , 2x и 3y . Решение данной задачи приведено на рис. 6.11, 6.12, однако программный блок на рис. 6.12 считается более грамотным. f x y( ) x sin y( )( ) x 2y( ) x y 1if x y( ) 2 1 x y 1( ) x y 3( )if x 2 x y x y 3if f 3 1( ) 2.159 f 0.15 1.25( ) 2.21 f 2 3( ) 2 f x y( ) x sin y( )( ) x 2y( ) x y 1if x y( ) 2 1 x y 1( ) x y 3( )if x 2 x y otherwise f 3 1( ) 2.159 f 0.15 1.25( ) 2.21 f 2 3( ) 2 Рис. 6.11 Рис. 6.12 К инструкциям цикла относят инструкцию for и инструкцию while. Инструкция for (цикл с заданным числом повторений) имеет следующую маску ввода: for 86 Более подробно: маска ввода инструкции for имеет следующий вид: for i Begin, Next .. End <операторы>. Здесь переменная i, которая называется параметром цикла for, последова- тельно принимает значение с одним и тем же шагом: сначала значение Begin, потом значение Next, и так далее, пока значение i будет не больше значения End. При каждом значении i выполняются операторы, написанные ниже инст- рукции for. Если параметр Next инструкции for не указан, то шаг цикла равен 1. Напомним, чтобы набрать двоеточие (..) в инструкции for, надо нажать кла- вишу ; (точку с запятой). Пример 6.7. Функция f, зависящая от трех параметров Begin, End и h, находит сумму квадратов всех чисел от Begin до End с шагом h. Решение зада- чи приведено на рис. 6.13. Инструкции можно вкладывать друг в друга (если это возможно). f Begin End h( ) Sum 0 Sum Sum i 2 i Begin Begin h Endfor Sum В переменной Sum накапливается результирующая сумма квадратов чисел Например сумма квадратов чисел от 1 до 2 с шагом 0,1 равна 25,85 f 1 2 0.1( ) 25.85 Рис. 6.13 Пример 6.8. Параметром функции f является матрица A. Результатом функции f является вектор-столбец, состоящий из трех координат: первая – минимальное значение матрицы A, вторая и третья – номер строки и номер столбца матрицы A, в которых находится минимальный элемент матрицы A (если матрица A обладает несколькими минимальными элементами, то номер строки и номер столбца матрицы A, в которых находится минимальный элемент матрицы, выбирается произвольным образом). Решение задачи приведено на рис. 6.14. 87 f A( ) Min A0 0 MinRow 0 MinCol 0 Min Ai j MinRow i MinCol j Ai j Minif j 0 cols A( ) 1for i 0 rows A( ) 1for Min MinRow MinCol В переменной Min хранится минимальное значение матрицы A, а в переменных MinRow и MinCol хранятся номер строки и номер столбца матрицы, в которых содержится минимальный элемент матрицы Пример A 3 11 3 1 0 12 8 5 6 4 9 13 f A( ) 9 1 3 Рис. 6.14 В этом примере инструкция for, в которую вложена инструкция if, явля- ется вложенной в инструкцию for. При этом при выполнении условия в инст- рукции if выполняются три оператора. Для набора таких операторов надо выде- лить ячейку ввода, стоящую слева от инструкции if и выбрать инструкцию Add Line. Также при написании программного блока использовались две функции rows(A) и cols(A), которые соответственно вычисляют количество строк и столб- цов матрицы A. Инструкция while (цикл с предусловием) имеет следующую маску ввода: while . Справа от инструкции while пишется условие, снизу инструкции while пи- шется набор операторов. Инструкция while «работает» по следующему алго- ритму: проверяется условие; если оно верно, то переходим к пункту 2, если ус- ловие не верно, то переходим к пункту 4; выполняется набор операторов; переходим к пункту 1; конец выполнения инструкции while. Пример 6.9. Функция f, зависящая от двух параметров x и , вычисляет значение следующего выражения: 88 2 3 1 2! 3! ! nx x x x n , где число n выбирается таким, что ! nx n , а !1 1 n x n . Решение задачи приведено на рис. 6.15. f x( ) Sum 0 Num 1 Den 1 Frac 1 Counter 0 Sum Sum Frac Num Num x Counter Counter 1 Den Den Counter Frac Num Den Fracwhile Sum Рис. 6.15 Инструкция break вызывает прерывание (прекращение) выполнения цикла (for или while), внутри которого она находится. Если инструкция break не на- ходится внутри цикла, то она вызывает прекращение выполнения програм- много блока. Пример 6.10. Параметром функции f является матрица A. Результатом функции f является вектор-столбец, i-й элемент которого содержит номер первого столбца строки i матрицы A, в котором содержится нулевой элемент матрицы A; если i-я строка матрицы A не содержит нулевого элемента, то i-й элемент полу- ченного вектор-столбца равен 1. Решение задачи приведено на рис. 6.16. Инструкция continue обеспечивает досрочное завершение очередного про- хода цикла, что эквиваленто передаче управления в самый конец циклического оператора. Если инструкция continue находится в инструкции while, то пос- ле выполнения инструкции continue цикл while начинает выполняться заново, т. е. с проверки условия; если инструкция continue находится в инструкции for, то после выполнения инструкции continue параметр цикла увеличивается на свой шаг. 89 f A( ) nCol 1 nCol j break Ai j 0if j 0 cols A( ) 1for xi nCol i 0 rows A( ) 1for x Пример A 1 0 4 2 0 2 33 5 0 0 0 24 7 4 0 3 19 9 0 0 f A( ) 2 0 1 1 0 Рис. 6.16 Инструкцию continue можно использовать, например, вместо инструкции otherwise с вложенной в нее инструкцией if. Пример 6.11. Параметром функции minmax является матрица A. Резуль- татом выполнения функции является вектор-столбец размерности 2, первый эле- мент которого равен минимальному элементу матрицы A, а второй – макси- мальному. Решение задачи приведено на рис. 6.17 с инструкцией otherwise и на рис. 6.18 с инструкцией continue. Инструкция return прерывает выполнение программного блока и выводит значение выражения, стоящего справа от инструкции return. Маска инструкции return имеет следующий вид: return . 90 minmax A( ) min A0 0 max A0 0 min Ai j Ai j minif max Ai j Ai j maxif otherwise j 0 cols A( ) 1for i 0 rows A( ) 1for min max Пример A 5 0 5 10 8 3 2 5 9 17 0 3 1 6 1 2 minmax A( ) 17 10 minmax A( ) min A0 0 max A0 0 min Ai j continue Ai j minif max Ai j Ai j maxif j 0 cols A( ) 1for i 0 rows A( ) 1for min max Пример A 5 0 5 10 8 3 2 5 9 17 0 3 1 6 1 2 minmax A( ) 17 10 Рис. 6.17 Рис. 6.18 Пример 6.12. Параметром функции f является матрица A. Результатом функции f является вектор-столбец, содержащий номер строки и номер столбца матрицы A, в которых находится первый нулевой элемент матрицы. Элементы матрицы идут в следующем порядке: слева верхнего угла матрицы по строчкам вниз. Если матрица A не содержит элемента, равного 0, то функция f выводит вектор-столбец с двумя координатами – 1. Решение задачи приведено на рис. 6.19. Инструкция on error позволяет создавать процедуры обработки ошибок. Эта инструкция задается в виде Выражение_1 on error Выражение_2. Если при выполнении «Выражение_2» возникает ошибка, то выполняется «Выражение_1». 91 f A( ) i j return Ai j 0if j 0 cols A( ) 1for i 0 rows A( ) 1for 1 1 Примеры A 1 4 11 4 7 6 13 0 5 12 34 7 B 7 6 11 2 1 13 4 9 5 f A( ) 3 1 f B( ) 1 1 Рис. 6.19 Пример 6.13. Написать программу, которая вычисляет значение следую- щей функции: .0при,1 ,0при, sin x x x x xf Решение приведено на рис. 6.20. f x( ) 1 1 x sin x( )on error Примеры f 3( ) 0.047 f 0( ) 1 f 5( ) 0.192 Рис. 6.20 Для обработки ошибок полезна также функция error(S), которая, будучи помещенной в программный блок, при возникновении ошибки выводит всплы- вающую подсказку с сообщением, хранящемся в символьной строке S. 92 Пример 6.14. Написать функцию, которая вычисляет значение функции x xf 1 при 0x , а при 0x выдает всплывающую подсказку «Division by zero». Решение приведено на рис. 6.21. Рис. 6.21 Разработанные пользователем функции обладают тем свойством, что внут- ри функций можно вызывать как встроенные в MathCAD функции, так и функ- ции, написанные пользователем раньше в этом документе MathCAD. Пример 6.15. Написать программу, которая вычисляет функцию 2 3 4 1y f x y y y , где 2 4sin cos 1y x x . Решение приведено на рис. 6.22. g x( ) sin x( ) 2 cos x( ) 4 1 f x( ) g x( ) 2 1 g x( ) 3 g x( ) 4 1 Cia?aiey ooieoee f(x) i?e iaeioi?uo cia?aieyo x f 0( ) 1.208 f 0.3( ) 1.227 f 1.1( ) 1.249 Рис. 6.22 Порядок выполнения работы Студенту рекомендуется внимательно изучить теоретический материал, про- делать все примеры, в нем встречающиеся, и после этого приступать к выпол- нению своего варианта задания. 93 Содержание отчета 1. Краткий обзор по теоретической части. 2. Файл MathCAD с выполненными заданиями своего варианта. Варианты заданий Вариант 1 1. Составьте функцию, которая будет менять местами две строки матрицы. 2. Используя встроенную функцию error вычислите значение функции 2 2 1 x z x x либо выведите всплывающую подсказку «Division by zero». 3. Напишите функцию, которая возвращает значение 1, если аргумент функции есть число отрицательное; значение 0, если аргумент функции равен 0; значение 1, если аргумент функции есть число положительное. Вариант 2 1. Составьте функцию, которая будет выводить сумму конечной геометри- ческой прогрессии при следующих значениях аргументов: 1b – первый член геометрической прогрессии, n – количество членов прогрессии, q – знамена- тель геометрической прогрессии. 2. Напишите функцию, которая возвращает квадратную матрицу размер- ности n , на побочной диагонали которой стояли бы 1, а все остальные элемен- ты матрицы равнялись бы 0. 3. Вычислите значение функции 2, 0, , 0. x x y x x x Вариант 3 1. Напишите функцию, которая вычисляет сумму чисел 2 2 21 2 n , где n – натуральное число. 2. Для числа x , изменяющегося от –2 до 2 с шагом 1,0h , вычислите зна- чение функции e cos2xf x х . 3. Составьте функцию для вычисления длины вектора. Вариант 4 1. Напишите функцию pr(n), которая вычисляет произведение чисел 1 2 n , где n – натуральное число, без использования оператора – факториал. 2. Создайте функцию для вычисления корней многочлена 4 2f x ax bx c . 94 3. Используя оператор on error вычислите функцию, которая равняется tg x x при 0x и 1 при 0x . Вариант 5 1. Создайте функцию для вычисления корней квадратного многочлена 2f x ax bx c . 2. Напишите функцию, вычисляющую значение выражения 2sin sin sinnS x x x , которое зависит от действительного числа x и натурального числа n . 3. Напишите функцию, которая возвращает знак «+», если значение 0sin yx , и знак «–», если значение 0sin yx . Вариант 6 1. Напишите функцию, которая будет выводить единичную (квадратную) матрицу. Аргументом функции является размерность матрицы. 2. Вычислите значение x a используя итерационную формулу 1 1 1 2 n n n a x x x , 0x a , 1, 2, 3,n . В качестве приближенного значения квадратного корня берется такое зна- чение nx , которое удовлетворяет условию 1n nx x , где – заданная точ- ность вычисления. Аргументами функции являются числа a и . 3. Используя разработанную функцию вычислите 7 sin i , где i изме- няется от 0 до 10 с шагом 1. Вариант 7 1. Составьте функцию, которая будет выводить сумму арифметической про- грессии при заданных значениях: 1 a – первый член арифметической прогрес- сии, n – количество членов арифметической прогрессии, d – разность ариф- метической прогрессии. 2. Составьте программу для вычисления функции z по формуле 3 2 , 3, , 3 4, ln , 4. t t z t t t t t 95 3. Напишите программу, которая выводит абсолютное значение функции sinf x x . Вариант 8 1. Определите функцию, которая равна 1, если ее аргумент есть четное число либо размещен между четным и нечетным числом, и 0 в противном случае. 2. Вычислите сумму бесконечной геометрической прогрессии с первым членом 1b и знаменателем q . 3. Напишите функцию, которая по данным матрицам M и N вычисляет матрицу A , элементы которой равны , , , , , i j i j i j i j i j m n a m n . Вариант 9 1. Напишите функцию, возвращающую диагональную матрицу, с наперед заданным значением величины, стоявшей на главной диагонали. 2. Составьте функцию для вычисления скалярного произведения двух век- торов. 3. Напишите функцию, которая по заданному натуральному числу n вы- числяет следующую сумму: 2 1 1 n k S k k . Вариант 10 1. Напишите функцию, которая возвращает единичную матрицу с элемен- том 2,2 5a . 2. Используя встроенную функцию error вычислите значение функции x z y либо выведите всплывающую подсказку «Division by zero». 3. Напишите программу, которая возвращает число 5, если функция 23 6 4z t t t t отлична от нуля, и число 5 , если функция z t рав- на нулю. 96 Учебное издание МАТЕМАТИКА Лабораторный практикум для студентов механико-технологического факультета В 2 частях Часть 1 Составители : БОКУТЬ Людмила Валентиновна ПРИХАЧ Наталья Константиновна ЛИТОВКО Александр Анатольевич и др. Редактор Т. В. Кипель Компьютерная верстка Н. А. Школьниковой Подписано в печать 15.08.2012. Формат 60 84 1/8. Бумага офсетная. Ризография. Усл. печ. л. 11,04. Уч.-изд. л. 4,32. Тираж 200. Заказ 545. Издатель и полиграфическое исполнение: Белорусский национальный технический университет. ЛИ № 02330/0494349 от 16.03.2009. Пр. Независимости, 65. 220013, г. Минск.