1. Ввести X и Е.
2. Положить n=1, U = X, F=0.
3. Пока |U|>E
Вычислить F=F+U;
Вычислить очередной член U = –U X2/((n + 1) (n+2));
Получить его номер n=n+2.
4. Вывести X и F.
5. Закончить.
Программа для рассмотренного алгоритма будет иметь следующий вид
Program NovSin;
Var
F, X, E, U : Real;
n : Integer;
Begin
Writeln('Введите аргумент Х и погрешность Е');
Readln(X,E);
n := 1;
U :=X ;
F:=0;
While Abs(U)>E Do
Begin
F:=F+U;
U:=-U*Sqr(X)/(2*N*(2*N+1));
N:=N+1;
End;
Writeln(X:8:6,' SinX=',F:10:6,
' Машинный SinX=',Sin(X):10:6);
End.
Количество повторений цикла заранее неизвестно. Оно зависит от требуемой точности и от значения аргумента. Если X=0, то цикл не выполняется ни разу. Количество повторений цикла в данном случае можно узнать по номеру N последнего вычисленного члена. В других случаях это можно сделать с помощью обычного счетчика:
k := 0;
while abs(U)>E do
begin
k := k+1;
F :=.......;
. . . . . .
end;
writeln('k= ',k);
Решение уравнений приближенными методами
В общем виде уравнение может быть записано так:
f(x)=0,
где f(x) – произвольная функция. При этом невозможно записать формулу для нахождения его корней, за исключением квадратного и линейного уравнения. Для таких случаев корни определяются приближенными методами. Наиболее распространенными из них являются:
- метод деления отрезка пополам;
- метод Ньютона и
- метод прохождения отрезка с переменным шагом.