Практическое задание N 1. 15
Определить число членов ряда, необходимых для расчета с заданной погрешностью суммы членов ряда:
N Вид ряда Общий член ряда Сумма N=
1 1- 1 / 22 + 1 / 32 - 1 / 42 + . . . (-1)(N-1) / N2 Pi2 / 12 1, 2, 3, . . .
2 1- 1 / 3 + 1 / 5 - 1 / 7 + . . . (-1)N / (2*N+1) Pi / 4 0, 1, 2, . . .
3 1 / (1*2) + 1 / (2*3) + 1 / (3*4) + . . . 1 / (N*(N+1)) 1 1, 2, 3, . . .
4 1 / (1*3) + 1 / (3*5) + 1 / (5*7) + . . . 1 / ((2*N-1)*(2*N+1)) 1 / 2 1, 2, 3, . . .
5 1- 1 / 1! + 1 / 2! - 1 / 3! + . . . (-1)N / N! 1 / e 0, 1, 2, . . .
6 1+ 1 / 1! + 1 / 2! + 1 / 3! + . . . 1 / N! e 0, 1, 2, . . .
Если члены ряда являются функциями аргумента "x", то ряд называется функциональным. Расчет многих функций производится разложением функции в степенной ряд.Приведем пример расчета значения функции y=sin(x) при некотором значении "х" с использованием представления функции в виде ряда:
y1 = x - x3/3! + ... + (-1)(N+1) * x(2*N+1)/(2*N+1)! + ...
где a0= x, aN= k * aN-1, k= (-x2)/(2*N*(2*N+1)), N= 0, 1, 2, ...
Kаждый член ряда аN при N>0 можно получить умножением предыдущего члена ряда aN-1 на коэффициент k. Приближенное значение функции y=sin(x) находится как частичная сумма "N" членов ряда. Погрешность вычисления значения функции "у" при некотором значении "х" зависит от количества членов ряда и значения "х", поэтому расчет заканчивается при |aN| < eps, где eps - допустимая погрешность расчетов. В программе используем цикл с условием, например:
PROGRAM SIN_R;
Var y, y1, x, eps, a, k: real; n: Word;
Begin
Writeln('Вычисление y=sin(x) с использованием ряда !');
Write('Введите значение аргумента x='); readln(x);
Write('Введите значение погрешности еps='); readln(eps);
Writeln; y:= sin(x);
n:= 0; a:= x;{ a - первый член ряда }
y1:= a; { y1 - первая частичная сумма ряда }
While abs(a) > eps do begin
n:= n+1; k:= -x*x/(2*n*(2*n+1)); a:= a*k; y1:= y1+a;
Writeln('Приближенное значение функции y1=', y1:-11:8, ' при n=', n )
end;
Writeln('Контрольное значение функции y=sin(x)=',y:-11:8);
Writeln('Нажмите Enter'); readln;
End.
Применение оператора Repeat. . . в данном примере имеет вид:
Repeat "операторы" Until abs(a) < eps;
Операторы цикла с условием могут применяться для анализа правильности вводимых данных. Контроль входных данных обязателен для рядов, сходящихся не во всей области "X", например, |X|<1 при разложении функции arctg(x) в степенной ряд. В этом случае можно использовать "защиту от дурака", например:
Repeat Write('введите значение |х|<1;_ _x='); readln(x)
until abs(x)<1;
Дата добавления: 2016-06-29; просмотров: 1807;