Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Программа вычисления арифметического ряда
Итерационным называется вычислительный процесс, в котором для определения последующего значения переменной используется ее предыдущее значение. В некоторых циклических вычислительных процессах число повторений цикла заранее определить невозможно или очень трудно, потому, что неизвестно приращение (шаг) и\или конечное значение аргумента. В таких задачах для проверки окончания циклов сравнивают два значения последовательных приближений определенной величины на соседних циклах. Если эти значения с заданной степенью точности совпадают, то циклы заканчивают. Подобный вычислительный процесс носит название итерационного (слово итерация – iteration означает повторение). При использовании итерационных процессов реализуется метод последовательных приближений. Характерно, что количество повторений цикла до реализации вычислительного процесса неизвестно, обычно циклом управляет заданная погрешность вычислений ξ. Если на очередной итерации погрешность | yn-yn-1│ ≥ ξ, то цикл продолжается для вычисления последующего приближенного значения результата yn+1. Пример 1 Вычислить сумму ряда при х = 0, 75 с точностью Е=10-2.
По условию примера требуется вычислять новые значения ряда и прибавлять их к сумме s до тех пор, пока i-й член ряда не станет меньше 0, 01. Для организации цикла нужно записать в общем виде формулу для i-го члена ряда, а в цикле изменять те переменные, которые варьируются в этом выражении. Для данного ряда выражение для i-го члена имеет вид: , т.е. в числителе показатель степени k при аргументе функции синус увеличивается на 2, а в знаменателе – на 1 увеличивается коэффициент пропорциональности n при х. Знакопеременность членов ряда обеспечивается множителем (-1)t. Если t чётное, от знак члена положительный, если t – нечётное, то знак члена – отрицательный. Первое значение суммы s = sin x, т.к. это выражение (sin x) в общий член уi не входит.
Алгоритм вычисления: Программа: Cls x =.75: k = 3: t=1 n = 2: E = 10^(-2) s = sin(x) m1: y = (-1)^t*sin(x^k)/n*x s = s + y: k=k+2: n=n+1: t=t+1 IF ABS(y) > =E THEN m1 PRINT " s="; s END
или с оператором цикла, например, DO…:
CLS x =.75: k = 3 n = 2: E = 10^(-2) s = sin(x) DO Рисунок 1 Алгоритм y = (-1)^t*sin(x^k)/n*x итерации s = s + y: k=k+2: n=n+1: t=t+1 LOOP UNTIL ABS(y) < E PRINT " s="; s END Описание алгоритма и программы: После ввода начальных значений k, t и n, точности E, х = 0, 75 и вычисления s=sinx при х=0, 75 (блок 2, строки 2-4 в программах) вычисляется i-тый член ряда уi со знаком " -", т.к. t=1 (блок 3, строка5 и строка 6 в программе с DO…), в блоке 4 и следующей строке он прибавляется к предыдущему значению суммы (s=s+y), k увеличивается на 2, а t и n - на 1. Потом производится проверка на окончание цикла – если модуль уi ещё больше или равен 0, 01 (во второй программе – до того, как он станет меньше), то управление возвращается назад, к вычислению следующего уi, если условие не выполняется, то следующий оператор выводит s на экран текстом с " s=" и конец программы. Примечание: Проверка выполняется для модуля значения y, чтобы исключить влияние знака у (" +" или " –" ) при сравнении его с величиной Е. В сложных алгоритмах полезно вручную выполнить программу и проследить изменение всех переменных в течении 2-3 циклов, чтобы убедиться, действительно ли в итоге получается нужный результат. Это позволяет быстро выявить все ошибки программы и лучше понять её работу. Для данного примера варьируются величины k, n, y и s, запишем их изменения при выполнении программы в табл. 1. Таблица 1
Сначала переменным присваиваются значения: х=0, 75; k=3; n=2; E=0, 01; s=sin 0, 75. Потом вычисляется и как сумма предыдущего значения (sin 0, 75) и значения у. Затем k, t и n получают приращения и становятся равными 5, 2 и 3 соответственно. После этого выполняется проверка на завершение циклов вычислений – если модуль у (i-го члена ряда) у ещё больше Е=0.01, то выполняется переход на новое вычисление у с коэффициентами k=5, t=2, n=3, опять вычисляется s = s + y, но в качестве предыдущего s уже используется и т.д. " Ручное" выполнение программы показывает, что в результате программа формирует сумму ряда, заданную в условии примера 1. Популярное:
|
Последнее изменение этой страницы: 2016-05-03; Просмотров: 705; Нарушение авторского права страницы