Программа
Program Sum(input,output);
(* Вычисление
m
F(x)=Sum{ [k*x+x^(1/3)] ^(1/3)},
k=1
m=6.
Вычисление y=a^(1/3) по формуле
Y(k+1)=2/3*Y(k)+a/(3*Sqr(Y(k)))
с точностью Eps=0.006,
Y(0)=a/3.
Для сравнения вычисление F(x),
используя обычный способ
вычисления корней. *)
Const m=6;
Var x,Sum1,Sum2:real; { Sum1 - переменная для набора суммы
с вычислением по итерационой формуле;
Sum2 - переменная для набора суммы
с вычислением по обычному алгоритму }
k:integer; { Счетчик суммы }
Function Sqrt3(a:real):real; { Вычисление кубического корня из a }
const Eps=0.006; { Точность вычисления корня }
var y,yPred:real; { Текущее и предыдущее значения корня }
Begin
y:=a/3; { Начальное приближение корня }
repeat { Цикл итерационного вычисления корня }
yPred:=y; { Сохранение предыдущего приближения }
y:=2/3*y+a/(3*Sqr(y)) { Вычисление нового приближения }
until abs(y-yPred)<=Eps; { Выход из цикла при достижении
заданной точности }
Sqrt3:=y { Определение значения функции }
End;
BEGIN
Writeln('Введите x '); { Приглашение ввести x }
Readln(x); { Ввод x }
Sum1:=0; Sum2:=0; { Сброс сумм }
for k:=1 to m do { Цикл набора сумм }
Begin
Sum1:=Sum1+Sqrt3(k*x+Sqrt3(x)); { Набор суммы с вычислением
по итерационной формуле }
Sum2:=Sum2+exp(Ln(k*x+exp(Ln(x)/3))/3) { Набор суммы с вычислением
по обычному алгоритму }
End;
Writeln('Итерационное вычисление F(x)=',Sum1); { Вывод результатов }
Writeln('"Точное" значение F(x)=',Sum2);
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию