Лабораторная работа n 6
Программирование итерационных циклов
(использование рекуррентных формул для расчета функций)
Задачи лабораторной работы
Вопросы, изучаемые в работе
· Изучение понятия рекуррентных соотношений.
· Применение алгоритмов вычисления элементарных функций как сумм бесконечного числа слагаемых.
· Продолжение изучения организации итеративных циклов с помощью операторов условных переходов, операторов с пост- и предусловием.
· Вывод результатов в табличной форме (с использованием форматов).
Задание (общее ко всем вариантам)
Для всех значений X, задаваемых параметрами из набора:
начальное значение A, конечное значение В, шаг Dx, количество шагов Nx, ограничение на число итераций Nmax, вычислить функцию F(x) как сумму S бесконечного числа слагаемых, заканчивая суммирование для каждого значения x при достижении заданной точности EPS.
Вывести в выводной текстовый файл исходные данные A,B,Dx,EPS и результаты расчета: значения x,F(x),S и количество слагаемых K, обеспечивающих требуемую точность. Результаты выводить в форме таблицы с рамками.
Оформить отчет по лабораторной работе.
Требования к программе
- Программа должна содержать комментарий с указанием названия работы, № варианта, фамилии студента и № группы.
- Значения, отмеченные в таблице вариантов символом "*" в программе вводятся с клавиатуры. Остальные исходные данные задаются типизированными константами.
- Количество слагаемых при вычислении суммы – не более ста.
· Если вариант задания содержит Nmax в качестве исходных данных, внешний цикл по X будет тоже итеративным и значение Nx в этом случае не рассчитывается. Цикл можно делать как с пред- так и с постусловием, с окончанием по выполнению условия (K > Nmax) or (i > 30){ второе условие – ограничение размера таблицы }.
· В варианте №3 Arcsin выразить через другие функции (см. в лаб. 1) Arcsin(x)=Arctan(x/sqrt(1-x*x)) .
· В варианте №15 учесть, что sin(X)/X при Х=0 равен 1.
· В варианте №21 учесть, что cos(X)/Xпри Х=0 не существует, поэтому такое значение Х в таблице пропускать.
Содержание программы
- Заголовок программы с комментарием;
- Описание переменных;
- Описание инициализированных переменных;
- Ввод с клавиатуры исходных данных;
- Вычисление (если необходимо) вспомогательных значений;
- Вывод исходных данных в выводной файл;
- Формирование шапки таблицы;
- Задание начальных значений для величин, вычисляемых рекуррентными формулами;
- Цикл расчета и вывода в текстовый файл строк таблицы;
- Закрытие выводного файла.
Общие пояснения
Для приближенных вычислений значений некоторых функций используется метод представления этих функций в виде ряда бесконечного числа слагаемых.
Если неизвестная функция разложена в ряд
F(x) = C1x1 + C2x2 + C3x3 + … + Cnxn +…,
то приближенно можно положить
F(x) = Fn(x) = C1x1 + C2x2 + C3x3 + … + Cnxn ,
и поправка на отбрасывание остальных членов ряда выразится остатком
Cnxn = Cn+1xn+1 + Cn+2xn+2 + …
При достаточно большом n эта погрешность станет сколь угодно малой, так что Fn(x) воспроизведет F(x) с любой наперед заданной точностью.
Вопрос оценки остатка Cnxnдля получения требуемой точности вычисления требует особенного внимания.
Если рассматриваемый ряд оказывается знакопеременным, и притом с монотонно убывающими по абсолютной величине членами, то остаток имеет знак своего первого члена и по абсолютной величине меньше его.
В случае положительного ряда необходимо выполнить такую оценку при помощи методов математического анализа, кроме того, следует отметить, что далеко не всякий ряд, имеющий суммой интересующую нас функцию F(x), пригоден для фактического вычисления этой функции (даже если его члены просты и оценка остатка производится легко). Вопрос – в быстроте сходимости, т.е. в быстроте приближения частичной суммы к функции F(x). Для исследования сходимости ряда также рекомендуется применять методы математического анализа.
В вариантах задания к лабораторной работе диапазоны вычислений приближенных значений и задаваемая точность оценок выбраны из вышеприведенных соображений.
Разбор контрольного варианта
Задание
Рассчитать и построить таблицу точных и приближенных значений функции
начальное значение X: A=-0.05, конечное – B=0.04, шаг X– Dx=0.01(вводится с клавиатуры), требуемая точность EPS = 1e-6 (вводится с клавиатуры), тип циклического оператора – repeat (постусловие).