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

Тип работы:
Лабораторная работа
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

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

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

Д50 103.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

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

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. 458 940 Sum of infinite series =0. 460 040

ПоказатьСвернуть
Заполнить форму текущей работой