Численное решение уравнений в MathCAD
Все задачи, с которыми вам приходилось сталкиваться в школе или изучать в университете, решались символьно. То есть вы тем или иным образом преобразовывали и упрощали выражения, использовали какие-то стандартные формулы и методы, умножали, делили, сокращали — и в результате приходили к какому-то аналитически несложному результату. Так, например, при решении квадратного уравнения вы использовали формулы Виета; пытаясь найти корни кубического уравнения, вы разлагали выражение на линейные множители (или, в крайнем случае, использовали формулу Кардано), для бикубических уравнений прибегали к замене. В общем, для того, чтобы решить даже очень несложное нелинейное уравнение, от вас требовалось знание великого множества разнообразных формул и подходов. Но, увы, как бы вы хорошо ни ориентировались во всех этих методах и подходах, зачастую это мало вам помогало, так как использование большинства из них крайне трудоемко и подходит для решения очень немногих (специально подобранных) уравнений. На практике же, как правило, приходится работать с уравнениями, включающими разнородные функции (что, как правило, автоматически означает невозможность символьного решения) или с очень неудобными коэффициентами. Справиться со многими из них привычным преобразованием или заменами никак не получится. Что же делать?
Естественно, если вам попадется такое «нерешаемое» уравнение, вы попытаетесь просто подобрать корни. Для этого вы будете подставлять какие-то значения переменной (выбор которых, скорее всего, в основном будет определяться вашей интуицией) в надежде на то, что какое-то из них обратит уравнение в нуль. К сожалению, и такой способ весьма малоэффективен на практике: подставив десяток-другой значений, вы почти наверняка предпочтете удовлетвориться мыслью о том, что данное уравнение не имеет решений вовсе, чем продолжать эту чрезвычайно неинтересную работу.
Но если у вас есть компьютер с системой MathCAD, то никаких проблем с поиском решения не будет вне зависимости от сложности уравнения. Конечно, аналитическое решение компьютер вряд ли найдет даже для очень простых уравнений (в этом пока человек значительно превосходит машину), но зато ввиду колоссальной по сравнению с человеческой скоростью обработки данных очень эффективными становятся так называемые численные методы.
В основе всех численных методов решения уравнений лежит принцип подбора. Но, в отличие от подбора возможных корней человеком, в численных методах этот процесс является строго направленным. Основным понятием численных методов является итерация. Итерация — это буквально повторение, то есть все численные методы построены на принципе повторения одного и того же действия или последовательности действий, результатом которых является большее или меньшее приближение некоторого рабочего значения переменной к корню. Поэтому численные методы решения уравнений называются еще итерационными. Число необходимых итераций определяется скоростью сходимости алгоритма (эффективностью). Эффективность различных численных алгоритмов может различаться весьма значительно, но это не значит, что всегда стоит избирать из них наиболее быстрый: чем выше скорость сходимости к решению, тем, как правило, чувствительность алгоритма к различного рода трудностям (многочисленным экстремумам, разрывам или недифференцируемости в некоторых точках) выше. Поэтому очень важно иметь представление (хотя бы самое поверхностное) о том, какие принципы лежат в основе работы той или иной функции: это поможет выбрать наиболее подходящий в рамках данной задачи алгоритм и тем самым избежать лишних ошибок и проблем.
Немного о выборе типа алгоритма. В общем случае, конечно, гораздо лучше получить решение в результате символьных преобразований, так как при этом можно найти сразу все корни (при использовании встроенных функций MathCAD — только один), причем без какой-либо погрешности. Но, увы, аналитическое решение имеет относительно небольшое количество задач, а символьный процессор MathCAD сможет справиться вообще с мизерным процентом уравнений. Так что применение численных методов — это печальная необходимость. Но особо огорчаться по этому поводу не стоит: все недостатки численных алгоритмов MathCAD можно легко преодолеть.
Для численного поиска решений алгебраических уравнений с одним неизвестным в MathCAD существует специальная встроенная функция root (корень). Функция эта может использоваться с различными начальными условиями, при этом реализуются разные численные алгоритмы. Так, если определена только одна точка приближения к корню, поиск решений будет осуществляться так называемым методом секущих. Если же задан интервал, на котором предположительно локализовано решение, то поиск его будет осуществлен с применением метода деления пополам (или метода Больцано).
Если необходимо найти корень некоторого уравнения, причем известен интервал, в котором находится корень, проще всего использовать функцию root с 4 аргументами: root(f(x), x, a, b), где f ( x ) — функция, определяющая уравнение, x — переменная, a и b — границы интервала локализации. Обязательным условием является то, что значения функции на концах интервала должны быть противоположных знаков.
Попробуем протестировать функцию root и для этого найдем корни какого-нибудь уравнения, точное решение которого очевидно. К примеру, возьмем уравнение
все корни которого имеют вид p × N/4 (N=1, 2, . ). Попробуем найти первое положительное решение. Очевидно, что таковым будет x=p /4 (что очень хорошо видно на графике).
Посмотрим, однако, найдет ли этот корень функция root. Интервал локализации определим от 0 до p /3:
MathCAD не подвел на этот раз: решение найдено в точности. Попробуем решить это уравнение с другим интервалом локализации:
Полученный результат отличается от первого решения, хотя корень х =0.25 (находится в данном интервале. Все дело в том, что в этом же промежутке находится еще 4 корня, и заранее предсказать, какой именно из них будет выдан в качестве ответа, совершенно невозможно. Поэтому следует ввести еще одно ограничение для применения функции root в рассматриваемой интерпретации: на промежутке должен быть локализован только один корень. В тех случаях, когда определить границы такой локализации невозможно, следует применять функцию root с одной точкой приближения (то есть перейти от метода Больцано к методу секущих). Хотя практически всегда определить нужный промежуток можно и чисто визуально, предварительно задав график. Вообще, строить график всегда желательно, когда вы используете численные методы: это самый надежный способ избежать ошибок и не потерять корни. Другой вопрос, что в случае систем уравнений это может помочь очень мало (так как сделать какие-то более или менее точные выводы по двум пересекающимся поверхностям совершенно невозможно).
Очень важной характеристикой решения является его точность. В MathCAD можно регулировать величину погрешности решения, изменяя значение специальной системной переменной TOL (от английского tolerance — точность). Строго говоря, TOL — это параметр, определяющий условие прекращения итераций. То есть цикл численного алгоритма остановит свою работу и выдаст последнее значение x, если f ( x ) примет значение, меньшее, чем TOL. Изменить величину этой встроенной переменной можно либо при помощи команды Math/Options/Built-in variables/TOL (Математические/Опции/Системные переменные/TOL), либо выполнив соответствующее присваивание непосредственно слева или сверху функции численного решения. Посмотрим, как влияет изменение величины TOL (по умолчанию равной 10 -3 ) на точность поиска корня. Пусть дана следующая функция:
Для того чтобы определить существование у нее нулей, а также, при их наличии, приблизительные границы интервала локализации корней, построим график:
Один корень вполне очевиден — это 0. Посмотрим, однако, сможет ли найти его функция root. Попробуем провести такой расчет при различных значениях TOL:
Для такой невысокой точности результат получился на удивление неплохим (значение функции в точке, определенной как корень, на 3 порядка меньше TOL — условия остановки цикла алгоритма). Но все равно 0.066 — это довольно далеко от настоящего значения корня. А то, что значение f ( x ) в этой точке весьма близко к нулю, совсем неудивительно: это связано с особенностью поведения функции в окрестности 0, где она буквально «скользит» по оси X .
При уменьшении TOL на три порядка приблизительно во столько же порядков увеличилась и точность решения (что вполне закономерно). Новое значение корня может удовлетворить большинству требований к точности, возникающих на практике. Но все же мы попытаемся получить максимально точное решение. Для этого еще более уменьшим значение TOL:
Значение корня уже крайне близко к нулю. Попробуем задать высшую точность, возможную в MathCAD (TOL=10 -15 ):
Только в этом предельном случае наконец удалось получить правильное решение. Проанализируем, с чем были связаны трудности в поиске нуля этой функции (как вы помните, решения для косинуса находились очень просто и без применения условия особой точности). Для этого построим график, на котором ясно видно прохождение кривой через точку корня. Сделать это проще всего можно при помощи инструмента ZOOM, который позволяет увеличивать отдельные фрагменты графика.
Более 30 раз пришлось повторить операцию с этим инструментом, пока наконец кривая перестала сливаться с осью X ! В результате получился следующий график:
Теперь совсем несложно понять причину возникших трудностей: просто кривая в окрестности 0 слишком близко подходит к оси X . А, как вы помните, корень считается найденным, когда значение функции в некоторой точке меньше TOL. В случае же рассматриваемой функции для стандартной точности (10 -3 ) такие точки появятся на относительно большом расстоянии от точки решения. Поэтому результат получается неверным. Но, с другой стороны, утверждать, что решение в рассмотренных выше случаях находилось ошибочное, совершенно некорректно. Ведь по условию в точке корня значение функции должно быть меньше TOL. Для большинства численных методов это основное, а в случае метода бисекции (схожий с ним алгоритм лежит в основе работы функции root с четырьмя аргументами) — единственное условие определения некоторой точки x как корня. Условие же это при всех значениях точности было выполнено, причем TOL и f ( x ) отличались на несколько порядков. Просто, строго говоря, получаемые значения корней следует округлять до порядка, равного порядку продекларированной точности (ведь значение функции не может быть точнее входных данных). Если бы мы это сделали, то во всех случаях, в том числе и при TOL=10 -1 , ответ получился бы верным (хотя, надо признать, в случае TOL=10 -1 это было бы, скорее, счастливое совпадение).
Из всего вышесказанного можно сделать вывод: нахождение корня функцией root совсем не означает его действительного существования. Очень даже возможна такая ситуация, когда кривая функции очень близко подходит к оси Х, но при этом не пересекает ее. Если же установленный уровень точности окажется больше того расстояния, на которое она приближается к оси, то точку, в которой это сближение происходит, MathCAD определит как корень.
Что же делать, чтобы избежать таких ошибок? Во-первых, всегда строить график. В системе MathCAD это делается предельно быстро и просто, а неприятностей позволяет избежать очень многих. Во-вторых, если вы видите, что график как бы скользит по оси Х (очень неясная ситуация: возможно и пересечение в 2-х точках, и касание в одной, и отсутствие общих точек вообще), попробуйте увеличить точность по максимуму: в большинстве случаев этого бывает вполне достаточно. И в-третьих, если сомнения все равно остаются, используйте инструмент ZOOM в области предполагаемого расположения корня. Пожалуй, способ этот самый надежный: ведь увеличение можно производить практически до бесконечности.
Найти решение уравнения в MathCAD можно применяя другую форму встроенной функции root, имеющую только 2 аргумента (имя функции и переменной). При использовании этого варианта выше или правее самой функции root следует задать начальное приближение для x:
Определить величину начального приближения можно либо чисто интуитивно, либо (лучше) построив график.
Вы можете задать резонный вопрос: если существует весьма верный и простой метод бисекции, зачем использовать другие, менее надежные (как будет показано далее) методы? Тут все дело вот в чем: во-первых, не всегда существованию корня сопутствует интервал с различными по знаку значениями функции в точках его границ (есть возможность простого касания); во-вторых, метод бисекции не очень удобно использовать при программном поиске всех корней уравнения сканированием некоторой широкой области; в-третьих, ввиду того, что построенные при помощи компьютерных программ графики отражают вид функции довольно искаженно, определение при их помощи интервала локализации корня нельзя считать абсолютно надежным.
Однако можно утверждать, что лучше воздержаться от использования метода секущих (то есть функции root в варианте с начальным приближением) в случае периодических функций (особенно сложного вида), очень осторожно следует применять ее при наличии локальных экстремумов (и ни в коем случае не определять начальное приближение вблизи таких точек, а также точек перегиба) и точек разрыва. Также следует учитывать поведение функции на бесконечности. Поэтому во всех сложных случаях куда лучше применять метод бисекции.
Дмитрий Гурский, Юрий Стрельченко, dot@omen.ru
Компьютерная газета. Статья была опубликована в номере 07 за 2003 год в рубрике soft :: текст
Вычисления в Mathcad
В практике инженерных расчетов наиболее массовыми являются расчетно-графические работы. Удобной средой для их выполнения является система компьютерной математики Mathcad [26]. Поэтому сначала дается описание основных правил работы в этой среде и демонстрируются простейшие вычисления.
Главной отличительной особенностью и преимуществом системы Mathcad является то, что описание решаемых задач и результаты их решения представляются в ней с помощью общепринятых математических знаков и символов — интегралов, производных, радикалов сумм и пр. Это значительно расширяет число пользователей Mathcad, так как не требует от них изучения специального языка программирования.
Основные правила работы и простейшие вычисления. Для работы в Mathcad используется «графический» язык, «словами» в котором являются так называемые пиктограммы. Они представляют собой картинки — символы, обозначающие определенные действия: интегрирование, дифференцирование, построение графика и пр. С их помощью можно строить решение разнообразных задач, не составляя традиционной программы.
На рис. II 1.1 показано рабочее окно Mathcad и основные панели инструментов, содержащие наборы пиктограмм: 1 — Калькулятор (Calculator); 2 — Логические (Boolean); 3 — Графические (Graph); 4 — Матричные (Matrix); 5 — Вычислительные (Calculus); 6 — Программные (Programming); 7 — Греческие (Greek). Последняя панель инструментов, снабженная символом «академическая шапочка», содержит набор пиктограмм для выполнения символьно-аналитических вычислений.

Рис. П1.1
Белое поле, называемое рабочим документом Mathcad, используется для размещения текстовых областей (содержащих комментарии), математических областей (с формулами) и графических областей (с графиками). Они создаются с помощью описанных ниже операций.
Определение переменной. В Mathcad используются переменные различных типов: обычная, глобальная, дискретная, индексная и др. Значение обычной переменной может быть использовано только правее или ниже того места на рабочем документе Mathcad, где эта переменная была определена. Чтобы определить переменную нужно:
- 1) напечатать имя переменной, подлежащей определению;
- 2) напечатать символ «двоеточие» (:) — при этом на экране появится знак определения переменной «двоеточие равно» (:=);
- 3) напечатать выражение, определяющее переменную.
Вводим с клавиатуры:
Наблюдаем на экране:
s .*= 100
W: 1/2[пробел] * т*и Л 2
Примечание. Для отделения дробной части числа от его целой части в Mathcad используется символ «точка» (.)
Кроме обычной переменной в Mathcad можно задать глобальную переменную. Ее значение можно использовать в любом месте рабочего документа Mathcad. Для этого вместо обычного оператора присваивания (:=) используется оператор глобального присваивания (=).
Вычисление выражений. Если переменные определены, то их значения можно использовать при вычислении выражений, которые должны располагаться правее или ниже мест определения переменных, участвующих в формировании выражений. Для вычисления выражения нужно его напечатать и нажать клавишу «вывод числового результата» (=). Mathcad вычисляет выражение и показывает его значение справа от этого знака.
t := 11.5
s := 100 v:= — t
v — 8.696 m := 15
Повторяющиеся вычисления. Для выполнения повторяющихся вычислений Mathcad использует специальный тип переменной — дискретный аргумент. Такая переменная имеет ряд равноотстоящих друг от друга значений, т.е. представляет собой массив чисел.
Чтобы задать дискретный аргумент, нужно:
- 1) напечатать имя переменной;
- 2) нажать клавишу «двоеточие» (:) — в результате появится знак присваивания (:=);
- 3) напечатать первое значение, принимаемое переменной;
- 4) нажать клавишу «запятая» (,);
- 5) напечатать второе (соседнее) значение переменной;
- 6) нажать клавишу «точка с запятой» (;) — в результате появится символ «две точки подряд» (..);
- 7) напечатать последнее значение переменной.
Вводим с клавиатуры:
Наблюдаем на экране:
а : .5; 8
а := 0.5..8
d : -5 , -3.5 ; 5
d := -5-3.5. .5
Дискретный аргумент изменяет свои значения в сторону возрастания (см. переменные ау b, d)y или убывания (переменная с).
Когда соседнее значение дискретного аргумента не указано (как это сделано при определении переменной /;), то шаг его изменения равен +1, если последнее значение аргумента больше начального, или -1, если последнее значение аргумента меньше начального.
Для просмотра значений дискретного аргумента нужно напечатать имя соответствующей переменной и нажать клавишу «вывод числового результата» (=). В результате выводится таблица значений дискретного аргумента.

Пример П1.5 демонстрирует применение дискретного аргумента для присвоения значений переменной с индексом (индексной переменной).

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

Определение функции. При определении функции у- f(x) необходимо указать ее имя / и аргумент х (или список аргументов для функции нескольких переменных).

Построение графика функции. Чтобы создать график функции одной переменной нужно выполнить следующие операции:
- 1) поместить курсор (щелкнуть мышью) там, где требуется создать график — обязательно правее или ниже того места, где определялась функция;
- 2) выбрать команду XY — Plot из меню Graph, или нажать соответствующую кнопку на пиктограмме. В рабочем документе Mathcad появится заготовка для графика с полями ввода в виде двух черных прямоугольников (рис. П 1.2);
- 3) в поле, расположенное левее оси ординат, ввести имя функции (рис. П1.3), или выражение, определяющее ее значения (рис. П1.4);
- 4) в поле, расположенное под осью абсцисс, ввести имя аргумента х.
Рис. П1.2
Для того чтобы увидеть график, нужно нажать клавишу [F9] или щелкнуть мышью вне поля графика.
Для того чтобы задать диапазон изменения аргумента х, нужно заполнить поля ввода, появляющиеся по краям оси абсцисс, или заранее (выше или левее) задать аргумент как дискретную переменную (см. пример П1.3), например х := -3, — 2.9..5.
Если этого не сделать, то переменная х будет изменяться в интервале -10 _3 .

Рис. П1.3
Рис. П1.4
Чтобы построить на одном рисунке несколько графиков (семейство графиков), нужно разделить запятыми имена соответствующих переменных (по оси абсцисс) и функций (по оси ординат) (рис. 111.5).
Построить и отформатировать графики функций
[1] [2] [3] [4]
Если (как в данном примере) несколько функций имеют общий аргумент, то можно указать имя только этого аргумента (рис. П1.5, а).
Если на графике необходимо создать горизонтальную линию (например, линию у = 0), нужно поместить дискретную переменную (х) в среднее поле на оси абсцисс и константу (0) в поле на оси ординат (рис. П1.5, б).

Рис. П1.5
Другая возможность — при форматировании графика активизировать опцию Show Markers (показывать маркеры) для оси Y. В этом случае слева от этой оси появятся два дополнительных поля ввода. Заполняя одно из них, можно получить желаемую горизонтальную линию. Точно так же можно создавать (две) вертикальные линии в нужном месте графика.
Для того чтобы переместить график, необходимо:
- 1) выделить график пунктирной рамкой (см. выше);
- 2) поместить курсор в поле рамки (при этом изображение курсора заменяется жирным черным крестом);
- 3) нажав левую клавишу мыши, переместить рамку с графиком в нужное место и отпустить клавишу.
Для форматирования (изменения параметров) графика нужно установить в его область курсор мыши и дважды быстро щелкнуть ее левой клавишей. В результате появится окно задания форматов, определяющих параметры графика (рис. П1.6).

Рис. П1.6
Используя опции этого окна, можно изменять масштабы по осям системы координат (например, вводить логарифмический масштаб), создавать масштабную сетку, задавать нумерацию осей, создавать надписи на графиках и пр. (см. рис. П1.6, а), а также изменять тип, толщину и цвет линий (см. рис. П1.6, б).
В качестве примера на рис. П1.5, б показаны результаты форматирования семейства графиков, показанных на рис. П1.5, а. После форматирования они имеют увеличенную толщину и другой тип линии графика функции /2(х), горизонтальную линию (ось абсцисс) и масштабную сетку.
Если функция принимает комплексное значение, то на график выводится лишь его действительная часть. При этом сообщение об ошибке не появляется. Продемонстрируем на примере, что это свойство графического редактора Mathcad является удобным для построения некоторых графиков.
Этот пример иллюстрирует возможность построения графика окружности (единичного радиуса) х + у = 1 в декартовой системе координат (рис. П1.7). Для этого необходимо, используя у равнение окружности, определить зависимость у отх. В данном случае имеем у = ±Vl-x, т.е. график окружности образован графиками двух функций /<(х) = у1 -х и /2(х) = yj-x , которые в области х > 1 принимают комплексные значения.

Рис. П1.7
Уравнение такой окружности можно задать в параметрической форме (рис. П1.8) или с помощью полярной системы координат (рис. П1.9).

Рис. П1.8
Рис. П1.9
Чтобы создать график функции двух переменных z — z(x, у), например график функции z(x, у) = (х 2 + y 2 )sin(xy/5), необходимо:
- (х-уЛ
- 1) задать функцию z(x, у):=(х 2 + ;у 2 )-sin —— ;
2) установить курсор в свободном месте рабочей области правее или ниже места определения функции и с помощью команды Surfance Plot вставить шаблон трехмерного графика (рис. ГТ 1.10). В отличие от рис. П1.2, он имеет только одно поле для ввода, куда нужно ввести имя функции (в данном случае z). Затем нужно щелкнуть мышью вне шаблона. Результат показан на рис. П1.11.

Puc.nt.tO Рис. П1.11
По умолчанию диапазон изменения аргументов устанавливается равным |х| 2 + у 2 )$т(ху/5) для случая хп = -4, xv = 3, уп = -2.

Рис. 111.12
Для построения графика функции z = z(xf у) в криволинейной области G, ограниченной заданными «верхней» и «нижней» кривыми уп = уп<х) и yv = yv(x), можно средствами Mathcad задать «обрезанную» функцию

а затем применить к ней команду CreateMesh, выбирая параметры хп, xvy уп, yv гак, чтобы соответствующая прямоугольная область xn (решить уравнение /(х) = 0). В этом случае Mathcad находит точное решение уравнения (см. Пример 1.1.2.4). К сожалению, эта возможность ограничена, особенно в тех случаях, когда уравнение является трансцендентным и (или) имеет несколько корней. В этих случаях нередко появляется сообщение did not find solution — «решение не найдено» или выводится только одно из нескольких возможных решений. Исключением является вычисление корней полинома (П2.9).
Для численного решения уравнения /(х) = 0 используется команда root (Дх), х). Она определяет значение переменной х, при котором выражение /(х) обращается в нуль с заданной точностью. Последняя определяется значением встроенной переменной TOL. По умолчанию TOL = 10 _3 .
Переменной х перед использованием команды root необходимо присвоить числовое начальное значение. Это значение используется в качестве начального приближения и его выбор влияет на решение, если уравнение имеет несколько корней.
Наличие нескольких вещественных корней устанавливается по результатам просмотра графика функции у = /(х) (рис. П1.13). Ниже приведен пример, в котором команда root возвращает различные корни в зависимости от разного начального приближения.
Пример П1.12

Рис. П1.13
х .*= -2 х .*= 0 х3
root(f(x), х) = -3.258 root(f(x), х) = 0.201 root(f(x), х) = 3.057.
Начиная с версии Mathcad 2000, для вычисления корня х = х1 уравнения f(x) = 0, появилась расширенная команда root вида

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

Такое применение команды root исключает необходимость начального приближения и, кроме того, позволяет исключить вывод нежелательных корней уравнения.
В Mathcad можно находить комплексные корни уравнений. В этом случае в качестве начального приближения следует использовать комплексное число.
Часто необходимо вычислять корни степенного уравнения (полинома)

Число корней такого уравнения совпадает со степенью полинома п. Для их вычисления можно использовать команду polyroots, которая применяется к вектору коэффициентов полинома А г = [а0,а1у. ап Например, для полинома f(x) = х 3 -х + 2, имеющего три вещественных корня (см. пример П1.12), имеем

Для полинома /(х) = х 3 + 10х + 2 имеем

Видно, что в первом случае все корни полинома вещественные (действительные), во втором случае один корень вещественный, а два других — комплексно-сопряженные.
Решение этих уравнений с помощью команды solve дает

В этом примере команда solve применяется в сочетании с командой float, т (вывод результата с точностью т знаков), что избавляет от возможности вывода громоздкого точного ответа.
Если решение не найдено, то появляется сообщение об ошибке did not find solution (решение не найдено). Эта ошибка может быть вызвана следующими причинами:
- 1) уравнение не имеет корней;
- 2) корни расположены далеко от начального приближения;
- 3) функция у = f(x) имеет локальные максимумы (минимумы) или разрыв между начальным приближением и корнями;
- 4) выражение f
имеет комплексный корень, но начальное приближение было вещественным, или наоборот.
В заключение приведем несколько советов по использованию команды root:
- 1) для повышения точности вычисления корня можно уменьшить значение встроенной переменной TOL (по умолчанию TOL = 0,001), однако эта процедура может увеличить время вычислений;
- 2) если график функции у = f(x) имеет малый наклон вблизи искомого корня, то вместо уравнения f(x) = 0 следует решить уравнение
3) для выражения f(x) с известным корнем х = а нахождение дополнительных корней равносильно поиску корней уравнения

Этот прием бывает особенно полезен для нахождения корней, расположенных близко один к другому, так как использование различных начальных приближений в этом случае затруднено.
Решение системы алгебраических уравнений. С решением систем уравнений приходится сталкиваться столь же часто, как и с решением обычных уравнений. Для численного решения системы алгебраических уравнений в Mathcad необходимо:
- 1) задать начальное приближение для всех неизвестных, входящих в систему;
- 2) напечатать ключевое слово Given, указывающее на то, что далее (правее, или ниже) следует система уравнений;
- 3) ввести уравнения, используя сочетание клавиш [Ctrl] и [=] для печати символа «равно», при этом на экране появится символ «жирное равно» (=), означающий логическое равенство;
- 4) ввести выражение, определяющее результат решения системы, с помощью команд Find или Мгпегг.
Выполнение перечисленных пунктов задает так называемый блок решения уравнений Given . Find или Given . Minerr. Если команда Find имеет только один аргумент, то ее использование равносильно использованию команды root. В качестве примера ниже рассматривается решение уравнения х 1 +10 = е х с помощью команд Find и root.
Пример П1.13

Если команда Find имеет более одного аргумента, например Find (х, у), то она
возвращает вектор , содержащий значения переменных .г и г/, являющихся реше-
нисм системы уравнений и неравенств (если они есть), расположенных в блоке решения уравнений.
Система нелинейных алгебраических уравнений может иметь несколько различных решений. В этом случае для определения всех решений можно использовать различные начальные приближения (которые должны быть по возможности близкими к искомым решениям) или вводить в блок решения уравнений ограничения в виде неравенств, позволяющих исключить нежелательные решения.
Пример П1.14
Решить систему уравнений 
Первое уравнение этой системы задает окружность радиуса R = 2 с центром в начал е системы координат. Верхняя часть окружности описывается кривой У<(х)
-Ja-x 2 , нижняя часть — кривой у2(х) =
У(х) (см. пример 111.11). Второму уравнению системы соответствует прямая у = -х. Она пересекает окружность в двух точках, координаты (Х^ Y<) и (Х2, У2) которых являются решениями рассматриваемой системы уравнений системы (рис. П1.14). Найдем эти координаты.

Для определения первого решения зададим начальное приближение (-2, 2), близкое к верхней точке пересечения прямой с окружностью. Аналогично для определения второго решения зададим начальное приближение (2, -2), близкое к нижней точке пересечения прямой с окружностью

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

Определение экстремумов функции. Наибольшее или наименьшее значения непрерывной функции одной переменной у = f(x), заданной на сегменте [а, Ь], достигается либо в критической точке, где производная этой функции равна нулю или не существует, либо в граничных точках а, b сегмента. Поэтому для обнаружения экстремумов полезно просмотреть график функции и график ее производной, составив, таким образом, представление о количестве и расположении критических точек. После этого уточнение координат точек сводится к определению вещественного уравнения

Если функция имеет п переменных, то координаты ее экстремумов находятся решением системы п уравнений

Для этого можно использовать команду Minerr (от MINimal ERRor — «минимальная ошибка»), которая, как и команда Find, работает в связке с ключевым словом Given. Отличие состоит в том, что команда Minerr возвращает такие значения своих аргументов, при которых левые и правые части уравнений, записанных в блоке решения уравнений Given — Minerr, минимально различаются. Описанное свойство команды Minerr позволяет успешно использовать ее вместо команд root и Find для решения алгебраических уравнений и систем, так как нуль — самое минимальное отклонение.
В современных версиях Mathcad для определения значений переменных х<, х2, хгг при которых функция f(xt, х2, х„) имеет экстремум, можно
использовать команды Maximize(f, xif х2. хп) или Minimize(f, хи х2. хп). Эти команды завершают блок решения, открываемый директивой Given, и возвращают вектор аргументов хх, х2, . хп, при котором функция f(xx, х2. хп) имеет экстремум (максимум или минимум соответственно).
Внутри блока могут размещаться условия, уточняющие (ограничивающие) область изменения переменных хх, х2, . хп. Непосредственно перед блоком им нужно задать начальное приближение. Чем ближе это приближение к искомой точке экстремума, тем точнее и быстрее будет найден результат.
Пример П1.15
Определить координаты точек экстремумов функции

Просмотр графика функции (рис. П1.15, а) и графика ее производной (рис. П1.15,6) показывает наличие двух критических точек: максимума при х 0.

Рис. П1.15
Определим координаты этих точек с использованием команд root, Mitierr, Maximize и Minimize.
1. Решение задачи с использованием команды root:

2. Решение задачи с использованием команды Minerr

При поиске максимума значения функции у = у(х) в области х ) или специальные команды. Операции, относящиеся к работе символьного процессора, содержатся в подменю позиции Symbolics (Символика) главного меню (рис. П1.16) или в меню команд, возникающих на экране монитора после активизации пиктограммы «академическая шапочка» (рис. П1.17).

Рис. П1.16

Ниже приведены примеры использования некоторых из этих команд.
Пример 111.16
Команда evaluate или —> (вычислить): • вычислить в символах

• вычислить с п знаками после запятой, evaluate float, п или float, п -> :

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

Команда coeJJs (полиномиальные коэффициенты):

Примечание: вычисляются коэффициенты полинома по переменной х, получающегося после раскрытия скобок.
Пример П1.22
Команда differentiate (дифференцирование по выделенной переменной):

Пример П1.23
Команда integreate (интегрирование по выделенной переменной):

Пример П1.24
Команда solve (решить относительно выделенной переменной):

Пример П1.25
Команда expand to series (разложить в ряд):

Команда convert to partial fraction (разложить на элементарные дроби):

Пример П1.27
Команда matrix transpose (транспонирование матрицы):

Пример П1.28
Команда matrix determinant (вычисление определителя):

Пример П1.29
Команда matrix invert (обращение матрицы):

Пример П1.30
Команды Fourier и invers Foureir (прямое и обратное преобразования Фурье):

Пример П1.31
Команды laplace и invlaplace (преобразования Лапласа): • прямое
Учебное пособие: Пособие MathCAD

При щелчке на кнопке математической панели инструментов открывается дополнительная панель:
Панель калькулятора
Панель исчислений
Панель графики
Булевая панель
Панель векторов и матриц
Панель греческих символов
Панель оценки
Панель программирования
2. Элементы языка MathCAD
К основным элементам математических выражений MathCAD относятся операторы, константы, переменные, массивы и функции.
2.1 Операторы
Операторы — элементы MathCAD, с помощью которых можно создавать математические выражения. К ним, например, относятся символы арифметических операций, знаки вычисления сумм, произведений, производной, интеграла и т.д.
а) действие, которое должно выполняться при наличии тех или иных значений операндов;
б) сколько, где и какие операнды должны быть введены в оператор.
Операнд — число или выражение, на которое действует оператор. Например, в выражении 5!+3 числа 5! и 3 — операнды оператора «+» (плюс), а число 5 — операнд факториала (!).
Любой оператор в MathCAD можно ввести двумя способами:
· нажав клавишу (сочетание клавиш) на клавиатуре;
· используя математическую панель.
Для присвоения или вывода содержимого ячейки памяти, связанной с переменной, используются следующие операторы:
— знак присвоения (вводится нажатием клавиши : на клавиатуре (двоеточие в английской раскладке клавиатуры) или нажатием соответствующей кнопки на панели Калькулятор);
Такое присвоение называется локальным. До этого присваивания переменная не определена и ее нельзя использовать.
— глобальный оператор присвоения. Это присвоение может производиться в любом месте документа. К примеру, если переменной присвоено таким образом значение в самом конце документа, то она будет иметь это же значение и в начале документа.
— оператор приближенного равенства (x1). Используется при решении систем уравнений. Вводится нажатием клавиши; на клавиатуре (точка с запятой в английской раскладке клавиатуры) или нажатием соответствующей кнопки на Булевой панели.
= — оператор (простое равно), отведенный для вывода значения константы или переменной.
Простейшие вычисления
Процесс вычисления осуществляется при помощи:
Панели Калькулятора,
Панели Исчислений и
Панели Оценки.
Внимание. Если необходимо поделить все выражение в числителе, то его нужно первоначально выделить, нажав пробел на клавиатуре или поместив в скобки.
2.2 Константы
Константы — поименованные объекты, хранящие некоторые значения, которые не могут быть изменены.
Например, p = 3.14.
Размерные константы — это общепринятые единицы измерения. Например, метры, секунды и т.д.
Чтобы записать размерную константу, необходимо после числа ввести знак * (умножить), выбрать пункт меню Вставка подпункт Юнит. В измерениях наиболее известные вам категории: Length — длина (м, км, см); Mass — вес (гр, кг, т); Time — время (мин, сек, час).
2.3 Переменные
Переменные являются поименованными объектами, имеющими некоторое значение, которое может изменяться по ходу выполнения программы. Переменные могут быть числовыми, строковыми, символьными и т.д. Значения переменным задаются с помощью знака присвоить (: =).
Внимание. MathCAD прописные и строчные буквы воспринимает как разные идентификаторы.
Системные переменные
В MathCAD содержится небольшая группа особых объектов, которые нельзя отнести ни к классу констант, ни к классу переменных, значения которых определены сразу после запуска программы. Их правильнее считать системными переменными. Это, например, TOL [0.001]- погрешность числовых расчетов, ORIGIN [0] — нижняя граница значения индекса индексации векторов, матриц и др. Значения этим переменным при необходимости можно задать другие.
Ранжированные переменные
Эти переменные имеют ряд фиксированных значений, либо целочисленных, либо изменяющихся с определенным шагом от начального значения до конечного.
Для создания ранжированной переменной используется выражение:
Name =Nbegin,(Nbegin+Step)..Nend,
где Name — имя переменной;
Nbegin — начальное значение;
Step — заданный шаг изменения переменной;
Nend — конечное значение.
Ранжированные переменные широко применяются при построении графиков. Например, для построения графика некоторой функции f(x) прежде всего необходимо создать ряд значений переменной x — для этого она должна быть ранжированной переменной.
Внимание. Если в диапазоне изменения переменной не указывать шаг, то программа автоматически примет его равным 1.
Пример. Переменная x изменяется в диапазоне от –16 до +16 с шагом 0.1
Чтобы записать ранжированную переменную, нужно ввести:
— имя переменной (x);
— первое значение диапазона (–16);
— второе значение диапазона, которое является суммой первого значения и шага (–16+0.1);
— многоточие (..) изменение переменной в заданных пределах (многоточие вводится нажатием точки с запятой в английской раскладке клавиатуры);
— последнее значение диапазона (16).
В результате у вас получится: x := –16,–16+0.1..16.
Таблицы вывода
Любое выражение с ранжированными переменными после знака равенства инициирует таблицу вывода.
В таблицы вывода можно и вставлять числовые значения и корректировать их.
Переменная с индексом
Переменная с индексом — это переменная, которой присвоен набор не связанных друг с другом чисел, каждое из которых имеет свой номер (индекс).
Ввод индекса осуществляется нажатием левой квадратной скобки на клавиатуре или при помощи кнопки xn на панели Калькулятор.
В качестве индекса можно использовать как константу, так и выражение. Для инициализации переменной с индексом необходимо ввести элементы массива, разделяя их запятыми.
Пример. Ввод индексных переменных.
i:= 0..2 — индекс изменяется от 0 до 2 (индексная переменная будет содержать 3 элемента).
— ввод числовых значений в таблицу производится через запятую;
— вывод значения первого элемента вектора S;
— вывод значения нулевого элемента вектора S.
Массив — имеющая уникальное имя совокупность конечного числа числовых или символьных элементов, упорядоченных некоторым образом и имеющих определенные адреса.
В пакете MathCAD используются массивы двух наиболее распространенных типов:
Вывести шаблон матрицы или вектора можно одним из способов:
· выбрать пункт меню Вставка — Матрица;
· нажать комбинацию клавиш Ctrl + M;
· нажать кнопку
на Панели векторов и матриц.
В результате появится диалоговое окно, в котором задается необходимое число строк и столбцов:

Rows — число строк
Columns — число столбцов
Если матрице (вектору) нужно присвоить имя, то вначале вводится имя матрицы (вектора), затем оператор присвоения и после — шаблон матрицы.



Например:
![]()

![]()
Матрица — двухмерный массив с именем Мn,m, состоящий из n строк и m столбцов.
С матрицами можно выполнять различные математические операции.
2.5 Функции
Функция — выражение, согласно которому производятся некоторые вычисления с аргументами и определяется его числовое значение. Примеры функций: sin(x), tan(x) и др.
Функции в пакете MathCAD могут быть как встроенными, так и определенными пользователем. Способы вставки встроенной функции:
· Выбрать пункт меню Вставка – Функция.
· Нажать комбинацию клавиш Ctrl + E.
·
Щелкнуть по кнопке на панели инструментов.
· Набрать имя функции на клавиатуре.
Функции пользователя обычно используются при многократных вычислениях одного и того же выражения. Для того чтобы задать функцию пользователя необходимо:
· ввести имя функции с обязательным указанием в скобках аргумента, например, f(x);
· ввести оператор присвоения (:=);
· ввести вычисляемое выражение.
Пример. f(z) := sin(2z2)
3. Форматирование чисел
В MathCAD можно изменить формат вывода чисел. Обычно вычисления производятся с точностью 20 знаков, но выводятся на экран не все значащие цифры. Чтобы изменить формат числа, необходимо дважды щелкнуть на нужном численном результате. Появится окно форматирования чисел, открытое на вкладке Number Format (Формат чисел) со следующими форматами:
o General (Основной) — принят по умолчанию. Числа отображаются с порядком (например, 1.22´105). Число знаков мантиссы определяется в поле Exponential Threshold (Порог экспоненциального представления). При превышении порога число отображается с порядком. Число знаков после десятичной точки меняется в поле Number of decimal places.
o Decimal (Десятичный) — десятичное представление чисел с плавающей точкой (например, 12.2316).
o Scientific (Научный) — числа отображаются только с порядком.
o Engineering (Инженерный) — числа отображаются только с порядком, кратным трем (например, 1.22´106).
Внимание. Если после установления нужного формата в окне форматирования чисел выбрать кнопку Ок, формат установится только для выделенного числа. А если выбрать кнопку Set as Default, формат будет применен ко всем числам данного документа.
Автоматически числа округляются до нуля, если они меньше установленного порога. Порог устанавливается для всего документа, а не для конкретного результата. Для того чтобы изменить порог округления до нуля, необходимо выбрать пункт меню Форматирование Результат и во вкладке Tolerance, в поле Zero threshold ввести необходимое значение порога.
Текстовые фрагменты представляют собой куски текста, которые пользователь хотел бы видеть в своем документе. Это могут быть пояснения, ссылки, комментарии и т.д. Они вставляются при помощи пункта меню Вставка – Текстовый регион.
Вы можете отформатировать текст: поменять шрифт, его размер, начертание, выравнивание и т.д. Для этого нужно его выделить и выбрать соответствующие параметры на панели шрифтов или в меню Форматирование – Текст.
5. Работа с графикой
При решении многих задач, где производится исследование функции, часто возникает необходимость в построении ее графика, где наглядно будет отражено поведение функции на определенном промежутке.
В системе MathCAD существует возможность построения различных видов графиков: в декартовой и полярной системе координат, трехмерных графиков, поверхностей тел вращения, многогранников, пространственных кривых, графиков векторного поля. Мы рассмотрим приемы построения некоторых из них.
5.1 Построение двухмерных графиков
Для построения двухмерного графика функции необходимо:
· задать диапазон значений аргумента;
· установить курсор в то место, где должен быть построен график, на математической панели выбрать кнопку Graph (график) и в открывшейся панели кнопку X-Y Plot (двухмерный график);
· в появившемся шаблоне двухмерного графика, представляющем собой пустой прямоугольник с метками данных, в центральную метку данных по оси абсцисс (ось X) ввести имя переменной, а на месте центральной метки данных по оси ординат (ось Y) ввести имя функции (рис. 2.1);\
Рис. 2.1. Шаблон двухмерного графика
щелкнуть мышью вне шаблона графика — график функции будет построен.
Диапазон изменения аргумента состоит из 3-х значений: начальное, второе и конечное.
Пусть необходимо построить график функции на интервале [-2,2] с шагом 0.2. Значения переменной t задаются в виде диапазона следующим образом:
t:= –2, –1.8 .. 2,
где: –2 — начальное значение диапазона;
–1.8 (–2 + 0.2) — второе значение диапазона (начальное значение плюс шаг);
2 — конечное значение диапазона.
Внимание. Многоточие вводится нажатием точки с запятой в английской раскладке клавиатуры.
Пример. Построение графика функции y = x2 на интервале [–5,5] с шагом 0.5 (рис. 2.2).

Рис. 2.2. Построение графика функции y = x2
При построении графиков необходимо учитывать следующее:
° Если диапазон значений аргумента не задан, то по умолчанию график строится в диапазоне [–10,10].
° Если в одном шаблоне необходимо разместить несколько графиков, то имена функций указываются через запятую.
° Если две функции имеют различные аргументы, например f1(x) и f2(y), то на оси ординат (Y) через запятую указываются имена функций, а по оси абсцисс (X) имена обеих переменных тоже через запятую.
° Крайние метки данных на шаблоне графика служат для указания предельных значений абсцисс и ординат, т.е. они задают масштаб графика. Если оставить эти метки незаполненными, то масштаб будет установлен автоматически. Автоматический масштаб не всегда отражает график в нужном виде, поэтому предельные значения абсцисс и ординат приходится редактировать, изменяя вручную.
Примечание. Если после построения график не принимает нужный вид, можно:
· изменить интервал построения графика.
· уменьшить на графике предельные значения абсцисс и ординат.
Пример. Построение окружности с центром в точке (2,3) и радиусом R = 6.
Уравнение окружности с центром в точке с координатами (x0,y0) и радиусом R записывается в виде:

Выразим из этого уравнения y:

Таким образом, для построения окружности необходимо задать две функции: верхнюю и нижнюю полуокружности. Диапазон значений аргумента вычисляется следующим образом:
— начальное значение диапазона = x0 – R;
— конечное значение диапазона = x0 + R;
— шаг лучше взять равным 0.1 (рис. 2.3.).

Рис. 2.3. Построение окружности
Параметрический график функции
Иногда бывает удобнее вместо уравнения линии, связывающего прямоугольные координаты x и y, рассматривать так называемые параметрические уравнения линии, дающие выражения текущих координат x и y в виде функций от некоторой переменной величины t (параметра): x(t) и y(t). При построении параметрического графика на осях ординат и абсцисс указываются имена функций одного аргумента.
Пример. Построение окружности с центром в точке с координатами (2,3) и радиусом R = 6. Для построения используется параметрическое уравнение окружности
x = x0 + Rcos(t) y = y0 + Rsin(t) (рис. 2.4.).

Рис.2.4. Построение окружности
Форматирование графиков
Чтобы отформатировать график, необходимо дважды щелкнуть по области графика. Откроется диалоговое окно форматирования графика. Ниже перечислены вкладки окна форматирования графика:
— X—Y Axes — форматирование осей координат. Установив нужные флажки можно:
· Log Scale — представить численные значения на осях в логарифмическом масштабе (по умолчанию численные значения наносятся в линейном масштабе)
· Grid Lines — нанести сетку линий;
· Numbered — расставить числа по координатным осям;
· Auto Scale — автоматический выбор предельных численных значений на осях (если этот флажок снят, предельными будут максимальные вычисленные значения);
· Show Marker — нанесение меток на график в виде горизонтальных или вертикальных пунктирных линий, соответствующих указанному значению на оси, причем сами значения выводятся в конце линий (на каждой оси появляются 2 места ввода, в которые можно ввести численные значения, не вводить ничего, ввести одно число или буквенные обозначения констант);
· Auto Grid — автоматический выбор числа линий сетки (если этот флажок снят, надо задать число линий в поле Number of Grids);
· Crossed — ось абсцисс проходит через нуль ординаты;
· Boxed — ось абсцисс проходит по нижнему краю графика.
— Trace — форматирование линии графиков функций. Для каждого графика в отдельности можно изменить:
· символ (Symbol) на графике для узловых точек (кружок, крестик, прямоугольник, ромб);
· вид линии (Solid — сплошная, Dot — пунктир, Dash — штрихи, Dadot штрих-пунктир);
· цвет линии (Color);
· тип (Туре) графика (Lines — линия, Points — точки, Ваr или Solidbar — столбики, Step — ступенчатый график и т.д.);
· толщину линии (Weight).
— Label — заголовок в области графика. В поле Title (Заголовок) можно записать текст заголовка, выбрать его положение — вверху или внизу графика (Above вверху, Below — внизу). Можно вписать, если надо, названия аргумента и функции (Axis Labels).
— Defaults — с помощью этой вкладки можно вернуться к виду графика, принятому по умолчанию (Change to default), либо сделанные вами изменения на графике использовать по умолчанию для всех графиков данного документа (Use for Defaults).
5.2 Построение полярных графиков
Для построения полярного графика функции необходимо:
· задать диапазон значений аргумента;
· установить курсор в то место, где должен быть построен график, на математической панели выбрать кнопку Graph (график) и в открывшейся панели кнопку Polar Plot (полярный график);
· в местах ввода появившегося шаблона необходимо ввести угловой аргумент функции (внизу) и имя функции (слева).
Пример. Построение лемнискаты Бернулли:
(рис. 2.6.)

Рис.2.6. Пример построения полярного графика
5.3 Построение графиков поверхностей (трехмерные или 3D-графики)
При построении трехмерных графиков используется панель Graph (График) математической панели. Можно построить трехмерный график с помощью мастера, вызываемого из главного меню; можно построить график, создав матрицу значений функции двух переменных; можно задействовать ускоренный метод построения; можно вызвать специальные функции CreateMech и CreateSpase, предназначенные для создания массива значений функции и построения графика. Мы рассмотрим ускоренный метод построения трехмерного графика.
Быстрое построение графика
Для быстрого построения трехмерного графика функции необходимо:
· установить курсор в то место, где должен быть построен график, на математической панели выбрать кнопку Graph (График) и в открывшейся панели кнопку
(Поверхностный график);
· в единственное место шаблона введите имя функции (не указывая переменные);
· щелкнуть мышью вне шаблона графика — график функции будет построен.
Пример. Построение графика функции z(x,y) = x2 + y2 – 30 (рис. 2.7).

Рис. 2.7. Пример быстрого построения поверхностного графика
Построенным графиком можно управлять:
° вращение графика выполняется после наведения на него указателя мыши при нажатой левой кнопке мыши;
° масштабирование графика выполняется после наведения на него указателя мыши при одновременном нажатии левой кнопки мыши и клавиши Ctrl (если двигать мышь, график приближается или удаляется);
° анимация графика выполняется аналогично, но при нажатой дополнительно клавише Shift. Необходимо только начать вращение графика мышью, дальше анимация будет выполняться автоматически. Для остановки вращения следует щелкнуть левой кнопкой мыши внутри области графика.
Существует возможность построения сразу нескольких поверхностей на одном рисунке. Для этого необходимо задать обе функции и через запятую указать имена функций на шаблоне графика.
При быстром построении графика по умолчанию выбираются значения обоих аргументов в пределах от –5 до +5 и число контурных линий, равное 20. Для изменения этих значений необходимо:
· дважды щелкнуть по графику;
· в открывшемся окне выбрать вкладку Quick Plot Data;
· ввести новые значения в области окна Range1 для первого аргумента и Range2 для второго аргумента (start начальное значение, end — конечное значение);
· в поле # of Grids изменить число линий сетки, покрывающих поверхность;
· щелкнуть на кнопке Ок.
Пример. Построение графика функции z(x,y) = –sin(x2 + y2) (рис. 2.9).
При построении этого графика пределы изменения значений обоих аргументов лучше выбрать от –2 до +2.

Рис. 2.9. Пример построения графика функции z(x,y) = –sin(x2 + y2)
Форматирование трехмерных графиков
Для форматирования графика необходимо дважды щелкнуть по области построения появится окно форматирования с несколькими вкладками: Appearance, General, Axes, Lighting, Title, Backplanes, Special, Advanced, Quick Plot Data.
Назначение вкладки Quick Plot Data было рассмотрено выше.
Вкладка Appearance позволяет менять внешний вид графика. Поле Fill Options позволяет изменить параметры заливки, поле Line Option — параметры линий, Point Options — параметры точек.
Во вкладке General (общие) в группе View можно выбрать углы поворота изображенной поверхности вокруг всех трех осей; в группе Display as можно поменять тип графика.
Во вкладке Lighting (освещение) можно управлять освещением, установив флажок Enable Lighting (включить освещение) и переключатель On (включить). Одна из 6-ти возможных схем освещения выбирается в списке Lighting scheme (схема освещения).
6. Способы решения уравнений в MathCAD
В данном разделе мы узнаем, каким образом в системе MathCAD решаются простейшие уравнения вида F(x) = 0. Решить уравнение аналитически — значит найти все его корни, т.е. такие числа, при подстановке которых в исходное уравнение получим верное равенство. Решить уравнение графически — значит найти точки пересечения графика функции с осью ОХ.
6.1 Решение уравнений с помощью функции root(f(x),x)
Для решений уравнения с одним неизвестным вида F(x) = 0 существует специальная функция
root(f(x),x),
где f(x) выражение, равное нулю;
х — аргумент.
Эта функция возвращает с заданной точностью значение переменной, при котором выражение f(x) равно 0.
Внимание. Если правая часть уравнения ¹0, то необходимо привести его к нормальному виду (перенести все в левую часть).
Перед использованием функции root необходимо задать аргументу х начальное приближение. Если корней несколько, то для отыскания каждого корня необходимо задавать свое начальное приближение.
Внимание. Перед решением желательно построить график функции, чтобы проверить, есть ли корни (пересекает ли график ось Ох), и если есть, то сколько. Начальное приближение можно выбрать по графику поближе к точке пересечения.
Пример. Решение уравнения
с помощью функции root представлено на рисунке 3.1. Перед тем как приступить к решению в системе MathCAD, в уравнении все перенесем в левую часть. Уравнение примет вид:
.

Рис. 3.1. Решение уравнения при помощи функции root
6.2 Решение уравнений с помощью функции Polyroots(v)
Для одновременного нахождения всех корней полинома используют функцию Polyroots(v), где v — вектор коэффициентов полинома, начиная со свободного члена. Нулевые коэффициенты опускать нельзя. В отличие от функции root функция Polyroots не требует начального приближения.
Пример. Решение уравнения
с помощью функции polyroots представлено на рисунке 3.2.

Рис. 3.2. Решение уравнения с помощью функции polyroots
6.3 Решение уравнений с помощью функции Find(x)
Функция Find (Найти) работает в ключевой связке с ключевым словом Given (Дано). Конструкция Given – Find использует расчетную методику, основанную на поиске корня вблизи точки начального приближения, заданной пользователем.
Если задано уравнение f(x) = 0, то его можно решить следующим образом с помощью блока Given – Find:
– задать начальное приближение
– ввести служебное слово
– записать уравнение, используя знак жирное равно

– написать функцию find с неизвестной переменной в качестве параметра
В результате после знака равно выведется найденный корень.
Если существует несколько корней, то их можно найти, меняя начальное приближение х0 на близкое к искомому корню.
Пример. Решение уравнения
с помощью функции find представлено на рисунке 3.3.

Рис. 3.3. Решение уравнения с помощью функции find
Иногда возникает необходимость отметить на графике какие-либо точки (например, точки пересечения функции с осью Ox). Для этого необходимо:
· указать значение x данной точки (по оси Ох) и значение функции в этой точке (по оси Оy);
· дважды щелкнуть по графику и в окне форматирования во вкладке Traces для соответствующей линии выбрать тип графика — points, толщину линии — 2 или 3.
Пример. На графике отмечена точка пересечения функции
с осью Ох. Координата х этой точки была найдена в предыдущем примере: х = 2.742 (корень уравнения
) (рис. 3.4).

Рис. 3.4. График функции
с отмеченной точкой пересечения
В окне форматирования графика во вкладке Traces для trace2 изменены: тип графика — points, толщина линии — 3, цвет — черный.
7. Решение систем уравнений
7.1 Решение систем линейных уравнений
Систему линейных уравнений можно решить матричным методом (или через обратную матрицу или используя функцию lsolve(A,B)) и с использованием двух функций Find и функции Minerr.
Матричный метод
Пример. Дана система уравнений:
.
Решение данной системы уравнений матричным методом представлено на рисунке 4.1.

Рис. 4.1. Решение системы линейных уравнений матричным методом
Использование функции lsolve(A,B)
Lsolve(A,B) — это встроенная функция, которая возвращает вектор Х для системы линейных уравнений
при заданной матрице коэффициентов А и векторе свободных членов В.
Пример. Дана система уравнений:
.
Способ решения данной системы с использованием функции lsolve(A,B) приведен на рисунке 4.2.

Рис. 4.2. Решение системы линейных уравнений с использованием функции lsolve
Решение системы линейных уравнений с помощью функции Find
При данном методе уравнения вводятся без использования матриц, т.е. в «натуральном виде». Предварительно необходимо указать начальные приближения неизвестных переменных. Это могут быть любые числа, входящие в область определения. Часто за них принимают столбец свободных членов.
Для того чтобы решить систему линейных уравнений с помощью вычислительного блока Given – Find, необходимо:
1) задать начальные приближения для всех переменных;
2) ввести служебное слово Given;
3) записать систему уравнений, используя знак жирное равно(=);
4) написать функцию Find, перечислив неизвестные переменные в качестве параметров функции.
В результате расчетов выведется вектор решения системы.
Пример. Дана система уравнений:
.
Решение данной системы с помощью вычислительного блока Given – Find приведено на рисунке 4.3.

Рис. 4.3. Решение системы линейных уравнений с помощью функции Find
Приближенное решение системы линейных уравнений
Решение системы линейных уравнений с помощью функцию Minerr аналогично решению с помощью функции Find (используется тот же алгоритм), только функция Find дает точное решение, а Minerr — приближенное. Если в результате поиска не может быть получено дальнейшее уточнение текущего приближения к решению, Minerr возвращает это приближение. Функция Find в этом случае возвращает сообщение об ошибке.
Общие рекомендации по решению уравнений и систем уравнений
Ниже перечислены некоторые рекомендации, которые следует выполнять, если MathCAD не может самостоятельно найти решение.
· Можно подобрать другое начальное приближение.
· Можно увеличить или уменьшить точность расчетов. Для этого в меню выбрать Math ► Options (Математика – Опции), вкладка Built—In Variables (Встроенные переменные). В открывшейся вкладке необходимо уменьшить допустимую погрешность вычислений (Convergence Tolerance (TOL)). По умолчанию TOL = 0.001.
Внимание. При матричном методе решения необходимо переставить коэффициенты согласно возрастанию неизвестных х1, х2, х3, х4.
7.2 Решение систем нелинейных уравнений
Системы нелинейных уравнений в MathCAD решаются с помощью вычислительного блока Given – Find.
Конструкция Given – Find использует расчетную методику, основанную на поиске корня вблизи точки начального приближения, заданной пользователем.
Для решения системы уравнений с помощью блока Given – Find необходимо:
1) задать начальные приближения для всех переменных;
2) ввести служебное слово Given;
3) записать систему уравнений, используя знак жирное равно(=);
4) написать функцию Find, перечислив неизвестные переменные в качестве параметров функции.
В результате расчетов выведется вектор решения системы.
Если система имеет несколько решений, алгоритм следует повторить с другими начальными приближениями.
Примечание. Если решается система из двух уравнений с двумя неизвестными, перед решением желательно построить графики функций, чтобы проверить, есть ли корни у системы (пересекаются ли графики заданных функций), и если есть, то сколько. Начальное приближение можно выбрать по графику поближе к точке пересечения.
Пример. Дана система уравнений
.
Перед решением системы построим графики функций: параболы (первое уравнение) и прямой (второе уравнение). Построение графика прямой и параболы в одной системе координат приведено на рисунке 4.5:

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

Рис. 4.6. Нахождение корней системы нелинейных уравнений
Для того чтобы отметить на графике точки пересечения параболы и прямой, координаты точек, найденные при решении системы, введем по оси Ох (значения х) и по оси Оу (значения у) через запятую. В окне форматирования графика во вкладке Traces для trace3 и trace4 изменим: тип графика — points, толщина линии — 3, цвет — черный (рис. 4.7).

Рис. 4.7. Графики функций с отмеченными точками пересечения
8. Примеры использования основных возможностей MathCAD для решения некоторых математических задач
В данном разделе приведены примеры решения задач, для решения которых необходимо решить уравнение или систему уравнений.
8.1 Нахождение локальных экстремумов функций
Необходимое условие экстремума (максимума и/или минимума) непрерывной функции формулируется так: экстремумы могут иметь место только в тех точках, где производная или равна нулю, или не существует (в частности, обращается в бесконечность). Для нахождения экстремумов непрерывной функции сначала находят точки, удовлетворяющие необходимому условию, то есть находят все действительные корни уравнения
.
Если построен график функции, то можно сразу увидеть — максимум или минимум достигается в данной точке х. Если графика нет, то каждый из найденных корней исследуют одним из способов.
1-й способ. Сравнение знаков производной. Определяют знак производной
в окрестности точки (в точках, отстоящих от экстремума функции по разные стороны на небольших расстояниях). Если знак производной при этом меняется от «+» к «–», то в данной точке функция имеет максимум. Если знак меняется от «–» к «+» , то в данной точке функция имеет минимум. Если знак производной не меняется, то экстремумов не существует.
2-й способ. Вычисление второй производной. В этом случае вычисляется вторая производная
в точке экстремума. Если она меньше нуля, то в данной точке функция имеет максимум, если она больше нуля, то минимум.
Пример. Нахождение экстремумов (минимумов/максимумов) функции
.
Сначала построим график функции (рис. 6.1).

Рис. 6.1. Построение графика функции
Определим по графику начальные приближения значений х, соответствующих локальным экстремумам функции f(x). Найдем эти экстремумы, решив уравнение
. Для решения используем блок Given – Find (рис. 6.2.).

Рис. 6.2. Нахождение локальных экстремумов
Определим вид экстремумов первым способом, исследуя изменение знака производной в окрестности найденных значений (рис. 6.3).

Рис. 6.3. Определение вида экстремума
Из таблицы значений производной и из графика видно, что знак производной в окрестности точки x1 меняется с плюса на минус, поэтому в этой точке функция достигает максимума. А в окрестности точки x2 знак производной поменялся с минуса на плюс, поэтому в этой точке функция достигает минимума.
Определим вид экстремумов вторым способом, вычисляя знак второй производной (рис. 6.4).

Рис. 6.4. Определение вида экстремума с помощью второй производной
Видно, что в точке x1 вторая производная меньше нуля, значит, точка х1 соответствует максимуму функции. А в точке x2 вторая производная больше нуля, значит, точка х2 соответствует минимуму функции.
Площадь криволинейной трапеции, ограниченной графиком функции f(x), отрезком [a,b] на оси Ox и двумя вертикалями х = а и х = b, a < b, определяется по формуле:
.
Пример. Нахождение площади фигуры, ограниченной линиями f(x) = 1 – x2 и y = 0.

Рис. 6.5. Нахождение площади фигуры, ограниченной линиями f(x) = 1 – x2 и y = 0
Площадь фигуры, заключенной между графиками функций f1(x) и f2(x)и прямыми х = а и х = b, вычисляется по формуле:


Внимание. Чтобы избежать ошибок при вычислении площади, разность функций надо брать по модулю. Таким образом, площадь будет всегда положительной величиной.
Пример. Нахождение площади фигуры, ограниченной линиями
и
. Решение представлено на рисунке 6.6.
1. Строим график функций.
2. Находим точки пересечения функций с помощью функции root. Начальные приближения определим по графику.
3. Найденные значения x подставляем в формулу
как пределы интегрирования.

8.3 Построение кривых по заданным точкам
Построение прямой, проходящей через две заданные точки
Для составления уравнения прямой, проходящей через две точки А(x0,y0) и B(x1,y1), предлагается следующий алгоритм:
1. Прямая задается уравнением y = ax + b,
где a и b коэффициенты прямой, которые нам требуется найти.
Подставляем в это уравнение заданные координаты точек и получаем систему:

2. Данная система является линейной. В ней две неизвестные переменные: a и b. Систему можно решить матричным способом.
Пример. Построение прямой, проходящей через точки А(–2,–4) и В(5,7).
Подставим в уравнение прямой координаты данных точек и получим систему:

Решение этой системы в MathCAD представлено на рисунке 6.7.

Рис. 6.7.Решение системы
В результате решения системы получаем: а = 1.57, b = –0.857. Значит, уравнение прямой будет иметь вид: y = 1.57x – 0.857. Построим эту прямую (рис. 6.8).

Рис. 6.8. Построение прямой
Построение параболы, проходящей через три заданные точки
Для построения параболы, проходящей через три точки А(x0,y0), B(x1,y1) и C(x2,y2), алгоритм следующий:
1. Парабола задается уравнением
y = ax2 + bх + с, где
а, b и с — коэффициенты параболы, которые нам требуется найти.
Подставляем в это уравнение заданные координаты точек и получаем систему:
.
2. Данная система является линейной. В ней три неизвестные переменные: a, b и с. Систему можно решить матричным способом.
3. Полученные коэффициенты подставляем в уравнение и строим параболу.
Пример. Построение параболы, проходящей через точки А(–1,–4), B(1,–2) и C(3,16).
Подставляем в уравнение параболы заданные координаты точек и получаем систему:

Решение этой системы уравнений в MathCAD представлено на рисунке 6.9.

Рис. 6.9. Решение системы уравнений
В результате получены коэффициенты: a = 2, b = 1, c = –5. Получаем уравнение параболы: 2x2 +x 5 = y. Построим эту параболу (рис. 6.10).

Рис. 6.10. Построение параболы
Построение окружности, проходящей через три заданные точки
Для построения окружности, проходящей через три точки А(x1,y1), B(x2,y2) и C(x3,y3), можно воспользоваться следующим алгоритмом:
1. Окружность задается уравнением
,
где x0,y0 — координаты центра окружности;
R — радиус окружности.
2. Подставим в уравнение окружности заданные координаты точек и получим систему:
.
Данная система является нелинейной. В ней три неизвестные переменные: x0, y0 и R. Система решается с применением вычислительного блока Given – Find.
Пример. Построение окружности, проходящей через три точки А(–2,0), B(6,0) и C(2,4).
Подставим в уравнение окружности заданные координаты точек и получим систему:

Решение системы в MathCAD представлено на рисунке 6.11.

Рис. 6.11. Решение системы
В результате решения системы получено: x0 = 2, y0 = 0, R = 4. Подставим полученные координаты центра окружности и радиус в уравнение окружности. Получим:
. Выразим отсюда y и построим окружность (рис. 6.12).