Лабораторная работа №4
4.1. Цель работы: вычислить сумму ряда.
4.2. Приборы и оборудование:
персональный компьютер
среда разработки: MS Visual Studio 2008 С++
4.3. Выполнение работы
Суммируемый ряд:

Задание: написать программу на С++, вычисляющую сумму ряда.
Для нахождения рекуррентного множителя в исходный ряд вместо n подставим n+1 и разделим на исходное выражение. Рекуррентный множитель:

с точностями 10-6 для x=0.5, x=0.7
Алгоритм программы (сумма ряда)
Сумма ряда на С++:
#include "stdafx.h"
#include<stdio.h>
#include<math.h>
double R (double, int);
int main(void){
long double x,a,s,eps, pi=3.1415927;
int n=0;
printf("Vvedite x, eps ");
scanf("%lg%lg",&x,&eps);
a=x; s=a;
while(abs(a/s)>eps)
{
a=a*R(x,n);
s+=a;
n++;
}
printf("Summa ryda = %lg\n", s);
return 0;};
double R (double x, int n) {return ((-x*x*(2*n+1))/((2*n+3)*(2*n+3)*(2*n+2)));};

a)

b)
полученные результаты:
a) при x=0.5
b) при x=0.7
Вывод: в результате выполнения лабораторной работы посчитана сумма ряда с точностью
о чем соответствует рисунок 5 и ответ:
Si(0.5)=0.493107
Si(0.7)=0.681222
Задание: написать программу на MatLab,вычисляющую сумму ряда:
Для нахождения рекуррентного множителя в исходный ряд вместо n подставим n+1 и разделим на исходное выражение. Рекуррентный множитель:

с точностями 10-6 для x=0.5, x=0.7
Программный код:
function labor6()
a=0.5; s = a;
eps = 0.001 ;
z = 0.7;
n = 1;
while(abs(a)>eps)
a=a.*z.*z.*z/8;
s=s+a; % s=s+a
n = n+1; %n=n+1
end
s
Результат:
При 0,5
s =
0.5224
При 0,7
s =
0.7314