На практике часто приходится сталкиваться с задачей о нахождении корней уравнений [3]. Любое уравнение можно записать в виде равенства некоторой функции нулю, так что это и есть задача о нахождении нулей функций. Решение указанной задачи осуществляет функция fzero. В качестве первого аргумента ей передается имя функции, задающей исходное уравнение. Вторым аргументом служит начальное приближение к корню: fzero(name, x0). Возвращаемым значением функции fzero является нуль функции name в окрестности точки х0. Для примера рассмотрим задачу о нахождении нулей функции на отрезке от 0 до pi. В качестве начального приближения примем х0=1. Вызываем функцию fzero с указанным начальным приближением и получаем следующий результат:
х = fzero('cos',1)
1.5708
Легко видеть, что мы в качестве нуля функции cos(x) получили значение, близкое к точному значению корня, равному pi/2. Если требуется найти корень функции, отличной от стандартной (встроенной в систему MATLAB) и тем самым не имеющей в рамках системы MATLAB фиксированного имени, то нужно приписать некоторое имя выражению, вычисляющему функцию. Пусть, например, требуется найти корни уравнения , что эквивалентно нахождению нулей функции, вычисляемой по формуле
|
|
,
не имеющей в рамках системы MATLAB фиксированного имени. В этом случае нужно в любом простейшем текстовом редакторе (типа встроенного в операционную систему Windows редактора Notepad) набрать две строки следующего кода:
function у = MyFunctionl(х)
у = cos(x) - х
и запомнить их в файле MyFunctionl.m, который нужно разместить в текущем каталоге системы MATLAB (узнать его можно командой cd). После этого можно воспользоваться функцией fzero:
х = fzero('MyFunctionl',pi/2)
0.7391
Если найдено абсолютно точное значение корня, то значение функции в этой точке равно нулю. Таким образом, величина функции в приближенно найденном нуле косвенно характеризует погрешность результата. Чтобы управлять погрешностью, нужно осуществлять вызов функции fzero с тремя аргументами: