5.2.2. Уравнение с одним неизвестным: функция root
Для решения уравнения с одним неизвестным в Mathcad, помимо вычислительного блока
/, предусмотрена встроенная функция , которая, в зависимости от типа задачи, может включать либо два, либо четыре аргумента и, соответственно, использует разные алгоритмы поиска корней.
Два варианта уравнения методом секущих
В чем же отличие встроенной функции от функции ? Оно состоит в том, что для решения одних и тех же задач используются различные численные алгоритмы (градиентные и метод секущих соответственно). В примерах уравнений с одним неизвестным, которые мы рассматривали до сего
момента, выбор метода не влиял на окончательный результат, поскольку фигурировавшие в них функции были «хорошими», т. е. достаточно гладкими для поиска корня одним из градиентных методов, требующих, как известно, вычисления производных. Между тем бывают ситуации, когда применение того или иного метода имеет решающее значение.
Приведем пример простой функции f(x), корни которой удается отыскать только при помощи функции
(листинг 5.14). Она определена в первой строке этого листинга, а ее корень вычислен во второй строке. Из графика, представленного на рис. 5.5, видно, что f (х) имеет особенность в окрестности своего корня, являясь в ней разрывной. В завершающей части листинга 5.14 предпринимается попытка отыскать нулевое значение f (х) посредством вычислительного блока
, которая оказывается неудачной.
Пример уравнения, которое удается решить
только методом секущих
Рис. 5.5. Модельная функция f (х) (продолжение листинга 5.14)
Остается добавить, что f (х) может быть функцией не только , а любого количества аргументов. Именно поэтому в самой функции
необходимо определить, относительно какого из аргументов следует решить уравнение. Эта возможность проиллюстрирована листингом 5.15 на примере функции двух переменных. В нем сначала решается уравнение
f (х, 0) =0 относительно переменной а потом — другое уравнение
f (0, у) =0 относительно переменной у, причем, благодаря удачному подбору начальных значений, вычисляются все корни данного квадратичного уравнения.
Таким образом, в обоих случаях один из аргументов функции воспринимается как неизвестное, а другой — как параметр. Не забывайте при численном решении уравнений относительно одной из переменных предварительно определить значения остальных переменных. Иначе попытка вычислить уравнения приведет к появлению ошибки
«This variable or function is not defined above», в данном случае говорящей о том, что другая переменная ранее не определена.
Для того чтобы отыскать зависимость корней уравнения, вычисленных по одной переменной, от других переменных, разработаны специальные эффективные алгоритмы. Об одной из возможностей читайте в разд. 5.3.3.
Поиск корней уравнения, зависящего от двух
переменных
Лекция посвящена численному и аналитическому решению уравнений и систем уравнений в среде MathCAD. Продемонстрированы приемы численного решения уравнений и систем с использованием встроенных функций. Рассмотрены различные способы аналитического решения систем линейных уравнений. Приведены методы решения задач оптимизации.
Цель лекции. Показать технику численного решения нелинейных уравнений с использованием сервисов MathCAD. Показать различные методы аналитического решения систем линейных уравнений.
- Численное решение нелинейных уравнений
- Функция поиска корней полинома polyroots()
- Решение уравнения с помощью функции root в mathcad
- Для чего предназначена функция root в mathcad
- Встроенные функции MathCAD для решения нелинейных алгебраических и трансцендентных уравнений
- Отделение корней нелинейного уравнения
- Уточнение корней нелинейного уравнения
- Системы линейных алгебраических уравнений
- Решение систем нелинейных уравнений
Численное решение нелинейных уравнений
Рассмотрим решение простейших уравнений вида . Решить уравнение – значит найти все его корни, т.е. такие числа, при подстановке которых в исходное уравнение получим верное равенство. Если функция нескольких аргументов F(x, у, ..)=0. , все остальные значения должны быть заданы для искомого . Для локализации корней (исследования их количества и примерного расположения) полезно построить график функции и определить все точки пересечения графика функции с осью OX.
Функция вычисляет значение переменной, при котором F(x, у, ..)=0. Если уравнение имеет несколько корней, функцию надо вызывать соответствующее число раз. Вычисления реализуются итерационным методом. Данный метод заключается в постепенном приближении к искомому корню с некоторой точностью от начального значения переменной. Точность вычислений задаётся системной переменной , определённой в меню Tools/ Worksheet Options.. По умолчанию равной 0.001.
Пример 4

Рис.
4.1.
Листинг решения примера 4.1
Если корней уравнения много (больше двух) или надо исследовать определенную область на наличие корней, применяют сканирование. Оно состоит в последовательном поиске корня, начиная из множества пробных точек, покрывающих расчетную область.
Осуществляется решение уравнения при помощи функции root, для нескольких последовательных начальных значений корней. Результат выдается в виде табулированных значений – таблицы.
Начальное значение корня :

Рис.
4.2.
Листинг решения примера 4.2
Функция поиска корней полинома polyroots()
Для поиска корней обычного полинома р(х) степени n MathCAD содержит очень удобную функцию:
polyroots(V) возвращает вектор корней многочлена (полинома) степени n, коэффициенты которого находятся в векторе V, имеющем длину равную n+1.
Осуществляется решение уравнения при помощи функции polyroots() (Рис.4.3).
8.3. Системы уравнений
Рассмотрим решение системы N нелинейных уравнений с M неизвестными
. . . (1)
f(x)=0,
(2)
Для решения систем имеется специальный вычислительный блок, состоящий из трех частей, идущих последовательно друг за другом:
В листинге 8.6. приведен пример решения системы двух уравнений.
Листинг 8.6. Решение системы уравнений
В первых двух строках листинга вводятся функции, которые определяют систему уравнений. Затем переменным х и у, относительно которых она будет решаться, присваиваются начальные значения. После этого следует ключевое слово Given и два логических оператора, выражающих рассматриваемую систему уравнений. Завершает вычислительный блок функция Find, значение которой присваивается вектору v. Следующая строка показывает содержание вектора v, т. е. решение системы. Первый элемент вектора есть первый аргумент функции Find, второй элемент — ее второй аргумент. В последних двух строках осуществлена проверка правильности решения уравнений.
Часто бывает очень полезно проверить точность решения уравнений, вычислив
значения образующих их функций в найденных вычислительным процессором корнях,
как это сделано в конце листинга 8.6.
Отметим, что уравнения можно определить непосредственно внутри вычислительного блока. Таким образом, можно не определять заранее функции f (x,y) и д(х,у), как это сделано в первых двух строках листинга 8.6, а сразу написать:
х4 + у2 =3
х+ 2 у = 0
Такая форма представляет уравнения в более привычной и наглядной форме, особенно подходящей для документирования работы.
Графическая интерпретация рассмотренной системы представлена
на рис. 8.3. Каждое из уравнений показано на плоскости XY графиком. Первое —
сплошной кривой, второе — пунктиром. Поскольку второе уравнение линейное, то
оно определяет на плоскости XY прямую. Две точки пересечения кривых соответствуют
одновременному выполнению обоих уравнений, т. е. искомым действительным корням
системы. Как нетрудно убедиться, в листинге найдено только одно из двух решений
— находящееся в правой нижней части графика Чтобы отыскать и второе решение,
следует повторить вычисления, изменив начальные значения так, чтобы они лежали
ближе к другой точке пересечения графиков, например x=-1, y=-1.
Рис. 8.3. Графическое решение системы двух уравнений
Пока мы рассмотрели пример системы из двух уравнений и таким же числом неизвестных, что встречается наиболее часто. Но число уравнений и неизвестных может и не совпадать. Более того, в вычислительный блок можно добавить дополнительные условия в виде неравенств. Например, введение ограничения на поиск только отрицательных значений х в рассмотренный выше листинг 8.6 приведет к нахождению другого решения, как это показано в листинге 8.7.
Листинг 8.7. Решение системы уравнений и неравенств
Обратите внимание, что, несмотря на те же начальные значения, что и в листинге 8.6, мы получили в листинге 8.7 другой корень. Это произошло именно благодаря введению дополнительного неравенства, которое определено в блоке Given в предпоследней строке листинга 8.7.
Если предпринять попытку решить несовместную систему, Mathcad выдаст сообщение об ошибке, гласящее, что ни одного решения не найдено, и предложение попробовать поменять начальные значения или значение погрешности.
Вычислительный блок использует константу CTOL в качестве погрешности выполнения
уравнений, введенных после ключевого слова Given. Например, если CTOL=0.001,
то уравнение х=10 будет считаться выполненным и при х=10.001, и при х=9.999.
Другая константа TOL определяет условие прекращения итераций численным алгоритмом
(см. разд. 8.4). Значение стоъ может быть задано пользователем так же как и
TOL, например, CTOL:=0.01. По умолчанию принято, что CTOL=TOL=0.001, но Вы по
желанию можете переопределить их.
Особенную осторожность следует соблюдать при решении систем с числом неизвестных
большим, чем число уравнений. Например, можно удалить одно из двух уравнений
из рассмотренного нами листинга 8.6, попытавшись решить единственное уравнение
g(х,у)=о с двумя неизвестными х и у. В такой постановке задача имеет бесконечное
множество корней: для любого х и, соответственно, у=-х/2 условие, определяющее
единственное уравнение, выполнено. Однако, даже если корней бесконечно много,
численный метод будет производить расчеты только до тех пор, пока логические
выражения в вычислительном блоке не будут выполнены (в пределах погрешности).
После этого итерации будут остановлены и выдано решение. В результате будет
найдена всего одна пара значений (х,у), обнаруженная первой.
О том, как найти все решения рассматриваемой задачи, рассказывается в разд.
8.7.
Вычислительным блоком с функцией Find можно найти и корень уравнения с одним неизвестным. Действие Find в этом случае совершенно аналогично уже рассмотренным в данном разделе примерам. Задача поиска корня рассматривается как решение системы, состоящей из одного уравнения. Единственным отличием будет скалярный, а не векторный тип числа, возвращаемого функцией Find. Пример решения уравнения из предыдущего раздела приведен в листинге 8.8.
Листинг 8.8. Поиск корня уравнения с одним неизвестным с помощью функции Find
В чем же отличие приведенного решения от листинга 8.1 с функцией root? Оно
состоит в том, что одна и та же задача решена различными численными методами.
В данном случае выбор метода не влияет на окончательный результат, но бывают
ситуации, когда применение того или иного метода имеет решающее значение.
8.1. Одно уравнение с одним неизвестным
Рассмотрим одно алгебраическое уравнение с одним неизвестным х.
f(x)=0, (1)
Для решения таких уравнений Mathcad имеет встроенную функцию root, которая, в зависимости от типа задачи, может включать либо два, либо четыре аргумента и, соответственно, работает несколько по-разному.
Первый тип функции root требует дополнительного задания начального значения
(guess value) переменной х. Для этого нужно просто предварительно присвоить
х некоторое число. Поиск корня будет производиться вблизи этого числа. Таким
образом, присвоение начального значения требует априорной информации о примерной
локализации корня.
Приведем пример решения очень простого уравнения sin(x)=o, корни которого известны заранее.
Листинг 8.1. Поиск корня нелинейного алгебраического уравнения
Рис. 8.1. Графическое решение уравнения sin(x)=0
Рис. 8.2. Иллюстрация метода секущих
Результат, показанный на рис. 8.2, получен для погрешности вычислений,
которой в целях иллюстративности предварительно присвоено значение TOL=0.5.
Поэтому для поиска корня с такой невысокой точностью оказалось достаточно одной
итерации. В вычислениях, приведенных в листинге 8.1, погрешность TOL=0.001 была
установлена по умолчанию, и решение, выданное численным методом, лежало намного
ближе к истинному положению корня х=0. Иными словами, чем меньше константа TOL,
тем ближе к нулю будет значение f (x) в найденном корне, но тем больше времени
будет затрачено вычислительным процессором Mathcad на его поиск.
Соответствующий пример можно найти в Быстрых шпаргалках, на странице Ресурсов
Mathcad. Он расположен в разделе «Solving Equations» (Решение уравнений)
и называется «Effects of TOL on Solving Equations» (Влияние константы
TOL на решение уравнений).
Если уравнение неразрешимо, то при попытке найти его корень будет выдано сообщение об ошибке. Кроме того, к ошибке или выдаче неправильного корня может привести и попытка применить метод секущих в области локального максимума или минимума f (х). В этом случае секущая может иметь направление, близкое к горизонтальному, выводя точку следующего приближения далеко от предполагаемого положения корня. Для решения таких уравнений лучше применять другую встроенную функцию Minerr (см. разд. 8.5). Аналогичные проблемы могут возникнуть, если начальное приближение выбрано слишком далеко от настоящего решения или f (х) имеет особенности типа бесконечности.
Для решения уравнения с одним неизвестным применимы и градиентные методы,
относящиеся в Mathcad к системам уравнений. Информация об этом приведена в разд.
8.3.
Листинг 8.2. Поиск корни алгебраического уравнения заданном интервале
Обратите внимание, что явный вид функции f (х) может быть определен непосредственно в теле функции root.
Когда root имеет четыре аргумента, следует помнить о двух ее особенностях:
Если уравнение не имеет действительных корней, но имеет мнимые, то их также
можно найти. В листинге 8.3 приведен пример, в котором уравнение x2+i=0,
имеющее два чисто мнимых корня, решается два раза с разными начальными значениями.
При задании начального значения 0.5 (первая строка листинга) численный метод
отыскивает первый корень (отрицательную мнимую единицу -i), а при начальном
значении -0.5 (третья строка листинга) находится и второй корень (i).
Листинг 8.3. Поиск мнимого корня
Для решения этого уравнения второй вид функции root (с четырьмя, а не с двумя
аргументами) неприменим, поскольку f (х) является положительноопределенной,
и указать интервал, на границах которого она имела бы разный знак, невозможно.
Остается добавить, что f (х) может быть функцией не только х, а любого количества
аргументов. Именно поэтому в самой функции root необходимо определить, относительно
какого из аргументов следует решить уравнение. Эта возможность проиллюстрирована
листингом 8.4 на примере функции двух переменных f (х,у)=х2-y2+3.
В нем сначала решается уравнение f(x,0)=0 относительно переменной х, а потом
— другое уравнение f (1,у) =0 относительно переменной у.
Листинг 8.4. Поиск корня уравнения, заданного функцией двух переменных
В первой строке листинга определяется функция f (x,y), во второй
и третьей — значения, для которых будет производиться решение уравнения по у
и х, соответственно. В четвертой строке решено уравнение f (x,0)=0, а в последней
—уравнение f (1,y)=0. Не забывайте при численном решении уравнений относительно
одной из переменных предварительно определить значения остальных переменных.
Иначе попытка вычислить уравнения приведет к появлению ошибки «This variable
or function is not defined above», в данном случае говорящей о том, что
другая переменная ранее не определена. Конечно, можно указать значение других
переменных непосредственно внутри функции root, беспрепятственно удалив, например,
вторую и третью строки листинга 8.4 и введя его последние строки в виде root(f
(x,0) ,х)= и root(f (1,у) ,у)=, соответственно.
Для того чтобы отыскать зависимость корней уравнения, вычисленных по одной
переменной, от других переменных, разработаны специальные эффективные алгоритмы.
Об одной из возможностей читайте в разд. 8.8.
Решение уравнения с помощью функции root в mathcad
Глава 4. Решение уравнений
4.1 Функция root
Функция root используется для решения одного уравнения с одним неизвестным. Перед началом решения желательно построить график функции, чтобы проверить, есть ли корни, то есть пересекает ли график ось абсцисс. Начальное приближение лучше всего выбрать по графику поближе к корню, так как итерационные методы весьма чувствительны к выбору начального приближения.
Обращение к функции осуществляется следующим образом:
root ( f ( x ), x ), где f ( x ) – выражение, равное нулю; x – аргумент, варьируя который, система ищет значение, обращающее в нуль ( рис. 4.1 ).
Задан интервал поиска корней
Рис. 4. 1 Использование функции root
Функция f ( x ) и аргумент x должны быть скалярами, то есть результат вычисления функции – число, а не вектор или матрица. Функция root использует метод секущих. Корень уравнения – ближайшее к начальному приближению значение x , обращающее функцию f ( x ) в нуль. Если корней несколько, то для отыскания каждого корня необходимо задавать свое начальное приближение.
Mathcad позволяет вместо начального приближения задавать диапазон значений аргумента, в котором лежит значение искомого корня. В этом случае обращение к функции root должно иметь четыре параметра:
root ( f ( x ), x , а, b ),
где a и b – границы интервала, в котором лежит один корень уравнения. Внутри интервала не должно быть больше одного корня, так как Mathcad выводит на экран лишь один корень, лежащий внутри интервала.
Значение функции на границах интервала должно быть разного знака, иначе, возможно, корень не будет найден.
Если уравнение не имеет действительных корней, то есть на графике функция f ( x ) нигде не равна нулю, то для вывода комплексных корней надо ввести начальное приближение в комплексной форме (рис. 4.2) .
Если функция имеет мнимый корень,
то начальное приближение задается комплексным числом
— начальное приближение
Рис. 4. 2 Решение уравнения с комплексными корнями
Для ввода мнимой единицы надо ввести с клавиатуры 1 i или 1 j .
Если уравнение имеет несколько корней, то для их нахождения можно использовать разложение функции f ( x ) на простые множители:
где x 1, x 2 , , xn – корни уравнения. Начальное приближение можно задать только для первого корня. В качестве функции f ( x ) нужно взять
и т. д. (рис. 4.3)
у этой функции 3 корня
диапазон значений х для вывода графика
Рис. 4. 3 Определение трех корней уравнения
Если функция f ( x ) имеет малый наклон вблизи искомого корня, то функция root ( f ( x ), x ) может сходиться к значению, довольно далеко отстоящему от корня. В таком случае для уточнения корня необходимо уменьшить значение погрешности вычислений, задаваемое встроенной переменной TOL . Для этого:
2) в открывшемся окне поменяйте значение Convergence Tolerance ( TOL ) (Погрешность сходимости).
Чем меньше константа TOL , тем ближе к нулю будет значение функции при найденном корне уравнения, но тем больше будет время вычисления корня.
Для повышения точности расчета корня можно заменить f ( x ) на
Корень можно найти и по графику, увеличив масштаб. Для этого необходимо:
1) выделить график, щелкнув левой кнопкой мыши внутри графика;
3) при нажатии левой кнопки мыши обвести пунктирной линией область графика вблизи искомого корня, которую надо увеличить;
4) в открытом окне X – Y Zoom (Масштаб по осям X – Y ) нажать кнопку Zoom .
Прямо с графика можно передать в буфер обмена численное значение корня. Для этого выполните следующие действия:
1) Выделите график, щелкнув левой кнопкой мыши внутри графика,
3) щелкните левой кнопкой мыши внутри графика – появится перекрестье осей,
4) двигая мышь при нажатой левой кнопке, установите перекрестье на пересечении графика с осью абсцисс. При этом численные значения координат перекрестья появляются в открытом окне X – Y Trace (Трассировка X и Y ).
5) правильно выбрав положение перекрестья, нажмите кнопки Copy X и Copy Y – численные значения будут помещены в буфер
6) вне поля графика запишите имя, которое хотите дать корню, и оператор присваивания :=. Нажмите кнопку Paste (Вставить) в стандартном меню Mathcad или в контекстном меню, открывающемся при нажатии правой кнопки мыши.
Рис. 4. 4 Определение корня уравнения по графику
В окне X – Y Trace есть пункт Track Data Points (Отмечать расчетные точки). Если установить этот флажок, при перемещении мыши пунктирное перекрестье на графике будет перемещаться скачками, отмечая расчетные значения функции. Если флажок снять, движение перекрестья становится плавным.
При работе с Mathcad постоянно пользуйтесь правой кнопкой мыши (в контекстном меню каждый раз появляются новые, наиболее нужные в данный момент функции). Щелкните правой кнопкой мыши на графике: в открывшемся контекстном меню есть пункты Zoom и Trace .
Для решения одного уравнения с одним неизвестным используется функция root. Аргументами этой функции являются выражение и переменная, входящая в выражение. Ищется значение переменной, при котором выражение обращается в ноль. Функция возвращает значение переменной, которое обращает выражение в ноль.
Первый аргумент есть либо функция, определенная где-либо в рабочем документе, или выражение. Выражение должно возвращать скалярные значения.
Второй аргумент — имя переменной, которое используется в выражении. Это та переменная, варьируя которую Mathcad будет пытаться обратить выражение в ноль. Этой переменной перед использованием функции root необходимо присвоить числовое значение. Mathcad использует его как начальное приближение при поиске корня.
Рассмотрим пример, как найти a — решение уравнения e x = x 3 . Для этого выполните следующие шаги:
При использовании функции root имейте в виду следующее:
Функция root предназначена для решения одного уравнения с одним неизвестным. Для решения систем уравнений используйте методику, описанную в следующем разделе “Системы уравнений”. Для символьного решения уравнений или нахождения точного численного решения уравнения в терминах элементарных функций выберите Решить относительно переменной из меню Символика. См. Главу “Символьные вычисления”.
Рисунок 1: Использование графика и функции root для поиска корней уравнения.
Что делать, когда функция root не сходится
Mathcad в функции root использует для поиска корня метод секущей. Начальное значение, присвоенное переменной x, становится первым приближением к искомому корню. Когда значение выражения f(x) при очередном приближении становится меньше значения встроенной переменной TOL, корень считается найденным, и функция root возвращает результат.
Если после многих итераций Mathcad не может найти подходящего приближения, то появляется сообщение об ошибке “отсутствует сходимость”. Эта ошибка может быть вызвана следующими причинами:
Чтобы установить причину ошибки, исследуйте график f(x). Он поможет выяснить наличие корней уравнения f(x)=0 и, если они есть, то определить приблизительно их значения. Чем точнее выбрано начальное приближение корня, тем быстрее функция root будет сходиться к точному значению. roots;using plots to find
Некоторые советы по использованию функции root
В этом разделе приведены несколько советов по использованию функции root:
Решение уравнений с параметром
Предположим, что нужно решать уравнение многократно при изменении одного из параметров этого уравнения. Например, пусть требуется решить уравнение для нескольких различных значений параметра a. Самый простой способ состоит в определении функции
Чтобы решить уравнение для конкретного значения параметра a, присвойте значение параметру a и начальное значение переменной x как аргументам этой функции. Затем найдите искомое значение корня, вводя выражение f(a,x)=.
Рисунок 2 показывает пример того, как такая функция может использоваться для нахождения корней исследуемого уравнения при различных значениях параметра. Обратите внимание, что, хотя начальное значение x непосредственно входит в определение функции, нет необходимости определять его в другом месте рабочего документа.
Рисунок 2: Определение функции пользователя с функцией root.
Нахождение корней полинома
Для нахождения корней выражения, имеющего вид
лучше использовать функцию polyroots, нежели root. В отличие от функции root, функция polyroots не требует начального приближения. Кроме того, функция polyroots возвращает сразу все корни, как вещественные, так и комплексные. На Рисунках 3 и 4 приведены примеры использования функции polyroots.
Функция polyroots всегда возвращает значения корней полинома, найденные численно. Чтобы находить корни символьно, используйте команду Решить относительно переменной из меню Символика. См. Главу “Символьные вычисления”.
Рисунок 3: Использование функции polyroots для решения задачи, изображенной на Рисунке 1.
Рисунок 4: Использование функции polyroots для поиска корней полинома.
Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter
Для чего предназначена функция root в mathcad
Для решения уравнения с одним неизвестным в Mathcad, помимо вычислительного блока Given/Find, предусмотрена встроенная функция root, которая, в зависимости от типа задачи, может включать либо два, либо четыре аргумента и, соответственно, использует разные алгоритмы поиска корней.
Первый тип функции root, аналогично встроенной функции Find, требует дополнительного задания начального значения переменной х, для чего нужно просто перед применением функции root присвоить х некоторое число. Таким образом, присвоение начального значения требует априорной информации о примерной локализации корня, т. к. поиск корня будет производиться вблизи этого числа. Пример работы функции root объясняется листингом 5.13.
Листинг 5.13. Два варианта уравнения методом секущих:
В чем же отличие встроенной функции Find от функции root? Оно состоит в том, что для решения одних и тех же задач используются различные численные алгоритмы (градиентные и метод секущих соответственно). В примерах уравнений с одним неизвестным, которые мы рассматривали до сего момента, выбор метода не влиял на окончательный результат, поскольку фигурировавшие в них функции были «хорошими», т. е. достаточно гладкими для поиска корня одним из градиентных методов, требующих, как известно, вычисления производных. Между тем бывают ситуации, когда применение того или иного метода имеет решающее значение.
Приведем пример простой функции f(x), корни которой удается отыскать только при помощи функции root (листинг 5.14). Она определена в первой строке этого листинга, а ее корень вычислен во второй строке. Из графика, представленного на рис. 5.5, видно, что f (х) имеет особенность в окрестности своего корня, являясь в ней разрывной. В завершающей части листинга 5.14 предпринимается попытка отыскать нулевое значение f (х) посредством вычислительного блока Given/Find, которая оказывается неудачной.
Встроенные функции MathCAD для решения нелинейных алгебраических и трансцендентных уравнений
Уравнения в MathCAD решаются с помощью двух встроенных функцийroot и polyroots.
3.1.2.1 Встроенная функция MathCAD – root(F(x), x)
Для численного решения уравнений предназначена стандартная функция MathCAD – root(F(x), x), которая возвращает значение корня с заданной точностью. Функция root имеет два аргумента:
первый – выражение, стоящее в левой части уравнения, то есть F(x), второй – переменная, относительно которой решается уравнение, то есть x.
Ищется значение переменной x, при которой выражение F(x) обращается в ноль. Функция root возвращает значение переменной x, которая обращает выражение F(x) в ноль.
Второй аргумент — имя переменной, которое используется в выражении. Это та переменная, варьируя которую Mathcad пытается обратить выражение F(x) в ноль.
Функция реализует вычисление итерационным методом и перед её применением необходимо задать начальное значение переменной x, принадлежащее интервалу изоляции корня.
В зависимости от начального приближения функция root возвращает различные значения.
Решение уравнений с помощью функции root может производиться с различной точностью, которая задается значением системной переменной TOL.
Пример 3.1 Решить уравнение с точностью .
Процесс решения показан на рисунке 1. Выполняется следующая последовательность действий:
1.Сначала вводится функция , соответствующая левой части уравнения.
2. Задается точность.
3. Графически находится приближенное решение уравнения (можно использовать трассировку).
4. При помощи функции root выполняется нахождение решения уравнения с заданной точностью.
5. Выполняется проверка найденного решения.
В зависимости от начального приближения функция root возвращает различные значения. Результат решения задачи приведён на рисунке 3.1.1 В результате найдены корни x0=-3.258, x1=0.2, x2=3.057.
Рисунок 3.1.1 – Пример решения нелинейного алгебраического уравнения
Функцию root можно записать в виде root (f(x), x, a, b) , где a, b – пределы интервала изоляции корня. При такой форме записи нет необходимости задавать начальное значение х, так как оно определено в интервале .
Пример 3.2 Решить уравнение e x /5 -2(x-1) 2 = 0.
Результаты решения показаны на рисунке 2. Используя график функции, определяют пределы интервала изоляции каждого корня, а затем с помощью функции root (f(x), x, a, b) находят значение интересующего корня.
В данном случае найдено три корня. Необходимо правильно указывать интервал изоляции, в случае ошибки значение корня не будет найдено, что показано на рисунке 3.1.2
Рисунок 3.1.2 – Пример решения уравнения с использованием
На рисунке 3.1.3 показан пример решения уравнения, имеющего комплексные корни. В таких случаях начальное приближённое значение корня также должно быть комплексным. При вводе мнимого числа надо писать 1i, а не i. В данном примере при вычислении второго корня х2 первый исключается делением f(х) на (х-х1). При нахождении третьего корня f(х) делится на (х-х1)(х-х2).
Рисунок 3.1.3 – Пример решения уравнения, имеющего
действительные и комплексные корни
Необходимо отметить особенность функции root, связанную с тем, что она не всегда позволяет найти значение корня.
Mathcad при поиске корня с помощью функции root использует метод итераций. Начальное значение, присвоенное переменной x, становится первым приближением к искомому корню. Когда значение выражения f(x) при очередном приближении становится меньше значения встроенной переменной TOL, корень считается найденным и функция root возвращает результат. Если после многих итераций Mathcad не может найти соответствующее приближение, то появляется сообщение об ошибке «отсутствует сходимость». Эта ошибка может быть вызвана следующими причинами:
— уравнение не имеет корней;
— корни уравнения располагаются далеко от начального приближения;
— выражение имеет локальные максимумы или минимумы между начальным приближением и корнем;
— выражение имеет разрывы между начальным приближением и корнями;
— выражение имеет комплексный корень, но начальное приближение было вещественным (или наоборот).
Чем точнее выбрано начальное приближение корня, тем быстрее функция root будет сходиться к точному решению.
Простейший способ найти корень уравнения с одним неизвестным обеспечит функция root ( ). Аргументами функции root ( ) являются вид функции определяющей решаемое уравнение и имя переменой, относительно которой ищется решение — root (f(x),x) Если уравнение содержит несколько корней, то функция обеспечивает нахождение единственного корня, ближайшего к заданному начальному значению для искомой переменной. Точность вычислений может быть увеличена или уменьшена посредством задания значения переменной TOL, равной по умолчанию 10-3 и определённой в меню Math, Options (Математика, Опции). Установленное значение TOL также оказывает влияние на точность вычислений.
Вычисление корней численными методами включает два основных
этапа:
уточнение корней до заданной точности.
Рассмотрим
эти два этапа подробно.
Отделение
корней нелинейного уравнения
Учитывая легкость построения графиков функций в ,
в дальнейшем будет использоваться графический метод отделения корней.
Определить интервалы локализации корней этого уравнения.

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

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

Заметим, что для вычисления всех трех корней
использовался прием понижения порядка алгебраического уравнения, рассмотренный в
п. 8.1.1.
Функция root с двумя
аргументами требует задания (до обращения к функции) переменной начального значения корня из интервала
локализации.
вычислить
изменения корня нелинейного уравнения при изменении коэффициента а от 1 до
10 с шагом 1.
.
Для вычисления всех корней алгебраического
уравнения порядка (не
выше 5) рекомендуется использовать функцию Обращение к этой функции имеет
вид – вектор, состоящий из +1 проекций, равных коэффициентам
алгебраического уравнения, т.е. . Эта
функция не требует проведения процедуры локализации корней.
, найти все три корня уравнения , включая и два комплексных

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

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

В зависимости от того, какие функции входят в систему
уравнений, можно выделить два класса систем:
алгебраические системы уравнений;
трансцендентные системы уравнений.
Среди алгебраических систем уравнений особое место
занимают системы линейных алгебраических уравнений (СЛАУ).
Системы
линейных алгебраических уравнений
Системой линейных алгебраических уравнений (СЛАУ) называется
система вида:
В матричном виде систему можно записать как
где
– матрица
размерности , – вектор с проекциями.
Для вычисления решения СЛАУ следует использовать функцию
обращение
к которой имеет вид: ), где А – матрица системы, – вектор правой части.
Решение
систем нелинейных уравнений
дает возможность находить решение системы уравнений численными методами, при
этом максимальное число уравнений в
доведено до 200.
Для решения системы уравнений
необходимо выполнить следующие этапы.
для
всех неизвестных, входящих в систему уравнений. При небольшом числе неизвестных
этот этап можно выполнить графически, как показано в примере.
Дана система уравнений:
Определить начальные
приближения для решений этой системы.
Видно, что система имеет
два решения: для первого решения в качестве начального приближения может быть
принята точка (-2, 2), а для второго решения – точка (5, 20).
Вычисление решения
системы уравнений с заданной точностью. Для этого используется уже известный вычислительный
блок
Следующие выражения
недопустимы внутри блока решения:
дискретная
переменная или выражения, содержащие дискретную переменную в любой форме;
блоки решения
уравнений не могут быть вложены друг в друга, каждый блок может иметь только
одно ключевое слово
вычислить все решения системы предыдущего примера.
Выполнить проверку найденных решений.
Используя
функцию , вычислите решение системы уравнений







