Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var
- x: double;
- y: double;
- dy: double; //очередной член ряда... уже слышу ржание над этим коментом. Все ведь переиначите xD
- pow: double; //Тут хранится числитель члена ряда (x в определенной степени x^1, x^3, x^5...)
- e1, e2: double; // Пределы сходимости
- k: integer; //Знаменатель очередного члена ряда
- i: integer; //Знак члена ряда
- begin
- x := 0.2; //Значение задаем сами
- k := 1; //Это трогать нельзня
- e1 := 0.01; //Это можно
- e2 := 0.000000001; //Это тоже
- i := 1; //А это опять нельзя
- writeln('x = ',x);
- writeln('Точное значение y = ',ArcTan(x));
- dy := x;
- y := x;
- pow := x;
- while (abs(dy) > e1) do //до тех пор, пока очередной член ряда больше предела сходимости
- begin
- k := k + 2;
- i := -1*i; //С каждой итерации меняется знак на противоположный
- pow := pow*x*x; //Увеличиваем значение степени на 2
- dy := (i*pow)/k; //Вычисляем член ряда
- y := y + dy;
- end;
- writeln('Рассчетное значение y для точности ',e1,': ',y);
- while (abs(dy) > e2) do //То же самое,только для другой точности
- begin
- k := k + 2;
- i := -1*i;
- pow := pow*x*x;
- dy := (i*pow)/k;
- y := y + dy;
- end;
- writeln('Рассчетное значение y для точности ',e2,': ',y);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement