Одно уравнение с одним неизвестным
Если уравнение неразрешимо, то при попытке найти его корень будет выдано сообщение об ошибке. Кроме того, к ошибке или выдаче неправильного корня может привести и попытка применить метод секущих в области локального максимума или минимума f (х). В этом случае секущая может иметь направление, близкое к горизонтальному, выводя точку следующего приближения далеко от предполагаемого положения корня. Для решения таких уравнений лучше применять другую встроенную функцию Minerr (см. разд. 8.5). Аналогичные проблемы могут возникнуть, если начальное приближение выбрано слишком далеко от настоящего решения или f (х) имеет особенности типа бесконечности.
Для решения уравнения с одним неизвестным применимы и градиентные методы, относящиеся в Mathcad к системам уравнений. Информация об этом приведена в разд. 8.3.
Иногда удобнее задавать не начальное приближение к корню, а интервал [а,b], внутри которого корень заведомо находится. В этом случае следует использовать функцию root с четырьмя аргументами, а присваивать начальное значение х не нужно, как показано в листинге 8.2. Поиск корня будет осуществлен в промежутке между a и b альтернативным численным методом (Риддера или Брента).
Листинг 8.2. Поиск корни алгебраического уравнения заданном интервале:
Обратите внимание, что явный вид функции f (х) может быть определен непосредственно в теле функции root.
Когда root имеет четыре аргумента, следует помнить о двух ее особенностях:
- внутри интервала [а,b] не должно находиться более одного корня, иначе будет найден один из них, заранее неизвестно, какой именно;
- значения f (а) и f (b) должны иметь разный знак, иначе будет выдано сообщение об ошибке.
Если уравнение не имеет действительных корней, но имеет мнимые, то их также можно найти. В листинге 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.