Для чего предназначена функция root в mathcad

GeekBrains

Иллюстрированный самоучитель по MathCAD 12

Для решения уравнения с одним неизвестным в Mathcad, помимо вычислительного блока Given/Find, предусмотрена встроенная функция root, которая, в зависимости от типа задачи, может включать либо два, либо четыре аргумента и, соответственно, использует разные алгоритмы поиска корней.

  • root(f(x),x);
  • root (f (x), x, a, b):
  • f(x) – скалярная функция, определяющая уравнение f(x)=0;
  • х – имя скалярной переменной, относительно которой решается уравнение;
  • а, b – границы интервала, внутри которого происходит поиск корня.

Первый тип функции root, аналогично встроенной функции Find, требует дополнительного задания начального значения переменной х, для чего нужно просто перед применением функции root присвоить х некоторое число. Таким образом, присвоение начального значения требует априорной информации о примерной локализации корня, т. к. поиск корня будет производиться вблизи этого числа. Пример работы функции root объясняется листингом 5.13.

Листинг 5.13. Два варианта уравнения методом секущих:

Как вы можете убедиться (первая строка листинга 5.13), для решения уравнения при помощи функции root (f (x),x,a,b) не требуется задавать начального приближения, а достаточно указать интервал [а,b]. Поиск корня будет осуществлен в промежутке между а и b альтернативным численным методом (Риддера или Брента). Когда root имеет четыре аргумента, следует помнить о двух ее особенностях. Во-первых, внутри интервала не должно находиться более одного корня, иначе будет найден один из них, заранее неизвестно, какой именно. Во-вторых, значения f (а) и f (b) должны иметь разный знак, иначе будет выдано сообщение об ошибке.

В чем же отличие встроенной функции 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. Выполняется проверка найденного решения.

GeekBrains

В зависимости от начального приближения функция 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 – Пример решения уравнения с использованием

функции root (f(x), x, a, b)

На рисунке 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 в mathcad

Простейший способ найти корень уравнения с одним неизвестным обеспечит функция root ( ). Аргументами функции root ( ) являются вид функции определяющей решаемое уравнение и имя переменой, относительно которой ищется решение — root (f(x),x) Если уравнение содержит несколько корней, то функция обеспечивает нахождение единственного корня, ближайшего к заданному начальному значению для искомой переменной. Точность вычислений может быть увеличена или уменьшена посредством задания значения переменной TOL, равной по умолчанию 10-3 и определённой в меню Math, Options (Математика, Опции). Установленное значение TOL также оказывает влияние на точность вычислений.

GeekBrains

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *