Решение нелинейных уравнений. Обусловленность задачи нахождения корня. Интервал неопределенности.

function ex3
% Определить кратность корня f(x), где где f(x)= (tan(x)^2 -1)^2 методом Ньютона

% Введём функцию f(x)
syms x;
f = (tan(x)^2 -1)^2;
[root1, iter1] = newton(f, 0.5, 1);
[root2, iter2] = newton(f, 0.5, 2);
[root3, iter3] = newton(f, 0.5, 3);
% То m, где меньше итераций - кратность корня
iter1
iter2
iter3
% Меньше всего итераций при m = 2, значит кратность корня - 2

% Метод Ньютона
function [root, iter] = newton(f, x0, m)
df = diff(f);
root = x0 - subs(f, x0) / subs(df, x0);
old_root = x0;
iter = 0;
while abs(subs(f, old_root)) > 10 * eps
t = old_root;
old_root = root;
root = t - m*subs(f, t) / subs(df, t);
iter = iter + 1;
if iter > 200
warning('Max number of iterations reached');
root = NaN;
return;
end
end

>>
iter1 = 45
iter2 = 7
iter3 = 45