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

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

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

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

 

Д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;

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

 

 

Значение переменной iЧисло в результате просчета по формуле в лоб,а12345

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

Значение iЗначение ka начальноерезультат12345

 

Примечания:

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

(а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

#include

#include

 

void main (void)

{

int i;

float a,s,e;

clrscr();

do

{

printf("Write e");

scanf("%f", &e);

}

while(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