Вычисление суммы бесконечного ряда с точностью епсилон

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

Государственный университет информатики и искусственного интеллекта



Д050103.1.01.10/080.ЛР

Кафедра программного обеспечения интеллектуальных систем









Лабораторная работа №1

по дисциплине «Основы программирования»

на тему: «Вычисление суммы бесконечного ряда»

Вариант №14







	

	Проверил:

	ст. преп. Р.А. Сорокин

	асс. Е. В. Курило

	Выполнила:

	ст. гр. ПО-10а Ю.Ю.Красавина

	

	

	

	

	

	Донецк-2010




Задание: Написать программу на языке программирования С++

Вычисление суммы бесконечного ряда с точностью эпсилон.

Вид уравнения: 



Постановка задачи:

Входные данные: e – вещественное число.

Выходные данные:S – вещественное число.

Промежуточные данные:k – вещественное, a –  вещественное,i- целое.

Ограничение на входные данные:0<е<1

Метод решения задачи:







На первом шаге присвоим значение i:=1, а S:=0. значение a рассчитаем по общей формуле приведенной выше.

Рассчитаем k.



k =   =>





Следующие а будем вычислятьa:= a *k, а значение  i будем увеличивать на каждом шагеi:=i+1;




Алгоритм решения задачи:





      Начало









e













e<0 или e>1









i: =1;

S: =0;

a =- 















1





1



	

	

	

	





Конец



            S

k:= ;

S: = S + a;

i:=i+1;

a := a * k





|a|>=e



	Контрольный просчет для первых 5 итераций:

	Общая формула

	

	

	

	Значение переменной i

	Число в результате просчета по формуле «в лоб»,а

	1

	

	2

	

	3

	

	4

	

	5

	

	

	Расчет с коэффициентом:

	Значение            i

	Значение k

	a начальное

	результат

	1

	

	

	

	2

	

	

	

	3

	

	

	

	4

	

	

	

	5

	

	

	

	




	Примечания:

	Под а начальным имеется ввиду значение переменной, с которой начинается просчет по ниже приведенным формулам:

	(а1 берется с просчета по начальной формуле, расчет k приведен ниже.)

	

	а2=а1*k1;

	a3=a2*k2;

	a4=a3*k3;

	a5=a4*k4.

	

	Расчет k: 

	

	Подставляем в формулу значение i

	

	Значение i

	Переменная k (номер коэффициента.)

	1

	(k1)

	2

	(k2)

	3

	(k3)

	4

	(k4)

	

	Листинг программы:

	

	#include <stdio.h>

	#include <conio.h>

	#include <math.h>

	

	void main (void)

	{

	int i;

	float a,s,e;

	clrscr();

	do

	{

	printf("Write e");

	scanf("%f", &e);

	}

	while(e<=0||e>=1);

	s=0;

	i=1;

	a=0.7;

	while(fabs(a)>=e)

	{

	s=s+a;

	a=a*(-sqrt(float(i)/(float(i)+2.0)));

	i++;

	}

	printf("Sum of infinite series =%f",s);

	getch();

	}

	Контрольный пример:

	Write e 0.0003        Write e 0.0025

	Sum of infinite series =0.458940   Sum of infinite series =0.460040