где параметр tol задает требуемую величину погрешности (ошибки). Повторим предыдущие вычисления, потребовав большей точности расчетов (то есть меньшей погрешности):
Format long
х = fzero('MyFunctionl',pi/2, 1e-8)
x =
0.73908513263090
MyFunctionl(x)
ans = 9.778322596076.805e-010
откуда видно, что действительно достигнута большая точность нахождения нуля функции.
Еще раз подчеркнем, что функция fzero находит нули только вещественно-значимых функций одной вещественной переменной. Однако часто бывает необходимо найти комплексные корни вещественно-значимых функций, особенно в случае многочленов. Для этой цели в системе MATLAB существует специальная функция roots, которой в качестве аргумента передается массив коэффициентов многочлена. Например, для многочлена:
, имеющего два вещественных (1 и 2) и два комплексных корня (i и -i), нужно сначала сформировать массив его коэффициентов:
Coef = [ 1, -3, 3, -3, 2 ]
после чего вызвать функцию roots:
r = roots(Coef)
r =
2.00000000000000
0.00000000000000 + 1.00000000000000i
I
1.00000000000000
В задаче о нахождении нулей функции сложным моментом является нахождение начального приближения к нулю функции, а также оценка их количества. Поэтому важно параллельно с применением функций типа roots или fzero визуализировать поведение искомых функций на том или ином отрезке значений аргумента. Максимальное содействие в этом может оказать функция fplot (name, [x0, x1]), строящая график функции с именем name на отрезке от х0 до x1. Например, для ранее рассмотренной функции MyFunctionl с помощью вызова функции:
|
|
fplot('MyFunctionl',[0,pi/2])
убеждаемся, что на отрезке от 0 до pi/2 действительно существует единственный нуль этой функции. Самостоятельно выведите на дисплей график этой функции. Рассмотрим еще один пример работы команды fplot:
>> fplot(@humps,[0 1])
fplot(@(x)[tan(x),sin(x),cos(x)], 2*pi*[-1 1 -1 1])
fplot(@(x) sin(1./x), [0.01 0.1], 1e-3)
f = @(x,n)abs(exp(-1j*x*(0:n-1))*ones(n,1));
fplot(@(x)f(x,10),[0 2*pi])
Результатом работы этой программы будет график приведенный на рис.3.1.
Рис.3.1