- •1. Краткие теоретические сведения
- •1.1. Понятие ицвп
- •1.2. Алгоритмы вычисления сумм и произведений в цикле
- •А) суммы; б) произведения
- •1.3. Выбор типа общего члена суммы (произведения) при вычислении сумм и произведений в цикле
- •1.4. Вывод рекуррентных формул
- •А) вариант 1; б) вариант 2
- •1.4. Оператор цикла со спецификацией итерационного типа (типа условия)
- •А) выполнения оператора while ; б) функции примера 8.6
- •1.5. Уточнение корней уравнений
- •1.6. Использование оператора цикла do … while в ицвп
- •1.7. Использование операторов break и continue в ицвп
- •2. Задание
- •2.4.1.2. Пример
- •2.4.1.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Использование рекуррентных формул в цикле
- •2.4.3.1. Условие задания
- •Варианты заданий
- •Варианты заданий
- •2.4.3.2. Пример
- •2.4.3.3. Программа
- •Варианты заданий
- •2.4.4.2. Пример
- •2.4.4.3. Программа
- •2.5.1.2. Пример программы
- •2.5.1.3. Программа
- •2.5.1.4. Тестирование
- •2.5.1.5. Типичные ошибки при выполнении работы
- •2.5.2. Задание 2. Накопление произведений в цикле
- •2.5.2.2. Пример 8.4
- •2.5.2.3. Программа
- •2.5.3.2. Пример для варианта 30
- •2.5.3.3. Программа
- •2.5.3.4. Тестирование
- •2.5.4. Задание 4. Вычисление значения функции с помощью разложения в ряд
- •2.5.4.1. Условие задания
- •Варианты заданий
- •2.5.4.2. Пример для варианта 30
- •2.5.4.3. Программа
- •2.5.4.4. Тестирование
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Понятие ицвп 2
2.4.3.2. Пример
Провести вычисления значения функции Y(x) с помощью ее разложения в ряд S(x)
.
Вычисление суммы ряда S(x) провести с использованием рекуррентной формулы. Сравнить значения S(x) и Y(x). Близость значений S(x) и Y(x) для конкретного x указывает на правильность вычисления S(x) и Y(x). Вывести число итераций, необходимое, для достижения заданной точности. Вычисления произвести: вариант а) – с точностью ε; вариант б) – для заданного количества членов ряда n.
Решение:
1. Запишем формулу члена ряда в аналитическом виде
2. Полученная формула члена ряда относится к типу (а) (см. стр … ), то есть очередной член ряда связан с предыдущим рекуррентным соотношением.
3. Рекуррентная формула в данном примере достаточно проста и очевидна: каждый последующий числитель отличается от предыдущего на сомножитель 2x/((k + 1):
,
2.4.3.3. Программа
а) для случая с заданным n = 100 и x =5
//Лабораторная работа № 8
// Задание 8-3-1k
//Использование рекуррентных формул в цикле
//Вариант 30
//Автор Петрова Мария гр. ИНФО-101
// 10.04.2012
//= = = = = = = = = = = = == = = = == = = = ==
# include <stdio.h>
# include <conio.h>
#include <iostream.h>
# include <math.h>
int main ()
{
int k,i,n;
float x,y, ak, ak1,s,eps;
// i - параметр цикла
// k - счетчик членов ряда
// аk - k-й член ряда
// аk1 - k+1 -й член ряда
// eps - заданная погрешность
// n - число членов ряда
// s - сумма членов ряда
cout << " Введите значение для x :"; cin >> x;
cout << " Введите число членов ряда n :"; cin >> n;
s = 0;
k = 1;
ak = 1;
for(i=1;i<=n;i++)
{
s = s + ak;
ak1 = ak*2*x/(k + 1);
ak=ak1;
k=k + 1;
}
y= exp(2*x);
/* вывод результата */
cout << "\n Результаты решения:" << endl;
cout << " Значение x = :" << x << endl;
cout << " Число членов ряда n = :" << n << endl;
cout << " Сумма ряда равна s = " << s << endl;
cout << " Расчет по формуле y = " << y << endl;
getch();
return 0;
}
б) для случая с точностью ε = 10-5 и x =5
//Лабораторная работа № 8.
//Задание 8-3-2k
//Использование рекуррентных формул в цикле
//Вариант 30
//Автор Петрова Мария гр. ИНФО-101
// 10.04.2012
//= = = = = = = = = = = = == = = = == = = = ==
# include <stdio.h>
# include <conio.h>
#include <iostream.h>
# include <math.h>
int main ()
{
int k;
float x,y, ak, ak1,s,eps;
// k - счетчик членов ряда
// аk - k-й член ряда
// аk1 - k+1 -й член ряда
// eps - заданная погрешность
// n - число членов ряда
// s - сумма членов ряда
cout << " Введите значение для x: "; cin >> x;
cout << " Введите погрешность вычислений для eps: "; cin >> eps;
s = 0;
k = 1;
ak = 1;
do
{
s = s + ak;
ak1 = ak*2*x/(k + 1);
ak=ak1;
k=k + 1;
}
while(ak>=eps);
y= exp(2*x);
/* вывод результата */
cout << "\n Результаты решения:" << endl;
cout << " Значение x = " << x << endl;
cout << " Погрешность вычислений eps = " << eps << endl;
cout << " Сумма ряда равна s = " << s << endl;
cout << " Количество итераций k = " << k << endl;
cout << " Расчет по формуле y = " << y << endl;
getch();
return 0;
}
2.4.3.4. Тестирование
2.5.4.4. Тестирование
а) для случая с заданным n = 100 и x =5
б) для случая с точностью ε = 10-5 и x =5
2.4.4. Задание 4. Решение алгебраических и трансцендентных уравнений
2.4.4.1. Условия задания
Составить программу для нахождения (уточнения) корня алгебраического или трансцендентного уравнения (табл. 8.11) методом итераций, расположенного на отрезке [a; b], с абсолютной погрешностью = 10-4. В программе предусмотреть подсчет и вывод на печать числа итераций, за которое удается найти значение корня с заданной точностью. Результаты и исходные данные вывести на экран дисплея.
Таблица 8.11