TURBO PASCAL |
Новости |
Практическое задание N 1. 15Определить число членов ряда, необходимых для расчета с заданной погрешностью суммы членов ряда:
Если члены ряда являются функциями
аргумента "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)
|
(с) Все права защищены. По всем интересующим вопросам прошу писать электронный адрес |