Метод на допирателните (Нютон) за решаване на уравнения 
f(x) = 0

Задача: Дадено е уравнението (((x^2)-2x +23 cos x- 4)/(x+1)) = 0.
a) Да се намери броят на всички корени и да се локализира (1) най-големия, (2) най-малкия от тях (в случай на повече от един корени).
б) Направете 2 итерации по метода на Нютон (допирателните).
в) Каква е точността на последно полученото в б) приближение? 
г) Да се намери локализирания от подточка а) корен с точност 0.001.

I. Локализация на корен:
a = ?, b = ? , такива че x* ∈ [a, b]

f[x_]:=(((x^2)-2x+23Cos[x]-4)/(x+1));
Plot[f[x],{x,-20,20}]

Plot[f[x],{x,-10,10}]

Plot[f[x],{x,3,5}]

Plot[f[x],{x,4.41,4.42}]

f[4.41]

f[4.42]

II. Проверка на условията за сходимост на метода:
f’(x), f’’(x) да са с постоянни знаци в интервала [a, b]

Plot[f'[x],{x,4.41,4.42}]

Plot[f''[x],{x,4.41,4.42}]

III. Определяне на начално приближение:
 (Subscript[x, 0]) = ?, такова че f((Subscript[x, 0])).f’’(x) > 0

x0=4.41

IV. Уточняване на корена:
(Subscript[x, n+1]) = (Subscript[x, n]) - ((f((Subscript[x, n])))/(f'((Subscript[x, n])))), n = 0,1,2,...
с оценка на грешката (Subscript[ϵ, n]) = |x* - (Subscript[x, n])|:
(Subscript[ϵ, n])  ⩽ ((Subscript[M, 2])/(2 (Subscript[m, 1]))) |(Subscript[x, n])-(Subscript[x, n-1])((|)^2), 
където (Subscript[M, 2]) = (max_([a,b]))|f’’(x)| , (Subscript[m, 1 ]) = (min_([a,b]))|f’(x)|

Определяне на постоянните величини
(Subscript[M, 2]) = ?,  (Subscript[m, 1 ])=?

Plot[Abs[f''[x]],{x,4.41,4.42}]

M2=Abs[f''[4.42]]

Plot[Abs[f'[x]],{x,4.41,4.42}]

m1=Abs[f'[4.42]]

K=(M2/(2m1))

Извършване на итерациите

Извършваме итерациите последователно като използваме Mathematica за калкулатор:

f'[4.41]

4.41-((-0.0409)/5.32668)

Съставяме програмен код на Mathematica, който извършва итерациите и печата необходимите ни величини:

f[x_]:=(((x^2)-2x+23Cos[x]-4)/(x+1));
a=4.41;b=4.42;
x0=4.41;
M2=Abs[f''[4.42]];m1=Abs[f'[4.42]];K=(M2/(2m1));
Print["n = ", 0, " (Subscript[x, 0]) = ",x0, " f((Subscript[x, 0])) = ",f[x0], " f'((Subscript[x, 0])) = ",f'[x0]]
For[n=1,n≤3,n++,
x1=x0-((f[x0])/(f'[x0]));
eps = K*(((x1-x0))^2);
Print["n = ", n, " (Subscript[x, n]) = ",x1, " f((Subscript[x, n])) = ",f[x1], " f'((Subscript[x, n])) = ",f'[x1], " (Subscript[e, n]) = ",eps];
x0=x1
]

💡 Тайни козове

Solve

FindRoot

FindRoot[f[x],{x,4.41}]