Уравнение с одним неизвестным: функция root
Для решения уравнения с одним неизвестным в 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, которая оказывается неудачной.