5.3. Алгоритмы решения уравнений
Пусть задана непрерывная функция • Требуется опре-
делить такое значение > , чтобы f[X) = О • Мы будем считать, что корни уже отделены,т.е. известны-числа а и в такие, что в промежутке [а, 6] существует единственный корень, либо известно значение Хс , достаточно близко расположенное к корню. Наиболее часто используются методы половинного деления, метод Ньютона, метод простой итерации.
В методе половинного деления промежуток [ й-} о] делится точкой с - (ti i-Ь)/ ¿ на две равные части. Образуется два промежутка [а>С] и 1С, Si в одном из которых находится корень (если f(C) р-0 ). Для следующего шага промежуток уже будет вдвое меньше длины. Выбирается тот промежуток,в котором произведение на концах будет ¿ О .
Таким образом,в алгоритме будут использованы две переменные, которые можно рассматривать как левый и правый конец промежутка. Для левого конца на разных шагах знак функции будет один и тот же. Таким образом,вычисляется точка с , вычисляется fíe) и определяется оС■ j\u.)-f(C) . Если ОС ? О , то корень находится в промежутке ¿c} 6J , т.е. правый конец остается тот же самый (6) , а левый конец изменится,т.е. теперь левым концом станет С . Если OL <. О , то корень находится на промежутке £■'£■. í J , и следовательно, не изменяется левый конец {&), а изменяется правый (#). После анализа сС мы пришди к той же задаче, но с половинной длиной промежутка. Продолжается цикл до тех пор, пока длина промежутка не станет Ъ . Алгоритм можно записать в виде ;
fx = f(CL)) F¿ jit); „,.í -:c¿\<£l tJ/¿; f*f(c>i *u\f-fi'C),h¿ ; c'-j; f:-*; *á-&h¿)#4; ó'iу Mft .m¿: * с; Fx •■ ft- éiij ми; **Ц- x~c»
■ oiidmí,' x - (U * mf: ...
Метод простой итерации предполагает, что уравнение записа-но в виде^ v - и известно начальное значение Хс - ПодставляяКв а правую часть, получим некоторое значение ki , под'ставицХА в правую часть, получим Жг и т.д. Если известно Хл , товычисляется по формуле x„rí • Следует сразу от-
метить, что Mi,Ji2> .■■ ,Х*. не рекомендуется рассматривать как элементы массива, хотя бы потому, что мы не знаем сколько элемекtob в этом массиве и, как правило, нам нужны не все^л.'г, .. , а то значение, к которому стремится(если стремится) последовательность {Хл} при >г—»-<■«. анализ формулы показывает, что по прежнему, старому значению приближения вычисляется новое, более точное, лучшее приближение у .
так как х,*2- i.) • т0 ПРИ продолжении процесса "но-
вое" значение на предыдущем шаге станет"старым" для следующего шага.
условие выхода должно предусматривать два случая - сходимость процесса и его расходимость. если процесс сходится, то для достаточно большого п iXnrL-xn_\ - <£ , т.е. разница между X и У для сходящегося процесса » О й можно остановиться, если модуль этой разности будет меньше заданной величины d . для того, чтобы расходящийся процесс обрабатывался данным алгоритмом (часто до решения трудно определить сходимость), необходимо задать условие расходимости. оно обычно задается по количеству итераций - если оно больше У0 (например 100), то считается, что процесс расходится.
алгоритм можно записать в виде:j. - х0; i+ij М •' Учу (-Я ) •Mi i У~ <f(*)',d ; У -к, д -- У, yiiy(iüi ' •■ ■
часто для решения уравнения используется метод ньютона. как и в методе простой итерации в этом методе требуется знание начального, достаточно близкого к искомому корню,приближения Х0 . XL вычисляется по формуле хх io - jM/j"'(-ко), где f*(Xe) -производная от функции /,' ji ) .
если известно хл> то Х„. t вычисляется по формуле
алгоритм метода ньютона получается из алгоритма простой итерациипри 1уХ)~!l- f (х) . рассмотрим пример. пусть исполнитель
не умеет извлекать квадратный корень, как самостоятельную операцию. требуется выразить эту операцию через 4 арифметические операции. X * Си эквивалентно решению уоавнения Хг-й. 'О. применим метод ньютона
-lcn.'i= Хщ * ч£ *в - ■*■ (Хп~* а-/.!*.).
в качестве Х0 выберем iL прц^&*0 . алгоритм запишем в виде;
X -Щ *и:-у; (X* 1/£ )/. ;
у-х; х- у; Упу^оСЛ? і
можно показать,что этот процесс сходится при любом 0->о , поэтому блок расходимости из алгоритма простей итерации изъят. важно подчеркнуть,что если имеется койкретное уравнение, корни которого определены,то мы можем найти эти корни, независимо от вида функции /(х) ,т.е.можно сказать,что построенные алгоритмы применимы к достаточно широкому классу уравнений.
5.4. пример решения задачи 10 спортсменов принимают участие в забеге на 5000 м. известно,что скорость і- -го спортсмена в момент Ь зависит от его начальной скорости V?*и степени его физической подготовки
и Определяется по йоэмуле ... ¿0) -А-У-^УТ
требуется составить прогноз распределения мест не финише.
обозначим через 1£ время преодоления дистанции і-ым спортсменом. 7порядочим числе (г в порядке возростания.З этом случае с какдым ^связывается определенный номер К , который является искомой величиной. таким образом, определиз уиелвь£,мы сведем нашу задачу к упорядочению чисел.
пусть і)-расстояние, пройденное і -)Ш спортсменом за время І , тогда числа ііявляются корнймй уравнений 5^ (^) '5000-О следовательно,определение ^ при известной функции сведено к решению трансцендентного урамнения.для его решения мы можем применить один из описанных выше методов.т.к. мн находим значение ¿¿ приближенно,будем считать,что погрешность не должна превышать' о.оісек. при использовании метода.половинного деления необходимо Зі -ние интервала,содержащего корень. нижней границей такого интервала можно взять число С, а верхней- число ЗбОС, т.к. за это время дистанция будет преодолена любим спортсменом, дл- определения 5^(0 вспомним,что
интеграл необходимо вычислять приближенно,т.к. он не выражается чорей элементарные функции.ьудем считать, что для вычисления интегра.ла достаточно промежуток интегрирования разбить на
106 чаете»! и интеграл рассматривать как сумму 100 слагаемых.
в качестве исходных данных выступает массив А , содержащий 10чисел,определяющих .
Алгоритм решения задачи состоит из четырех блоков. В первом осуществляется ввод информации, организация циклов перебора элементов массива, подготовке информации для второго блока, обращение к четвёртому блоку, видача результатов счета. Зо втором блоке осуществляется решение уравнения для определения t; . Для каждого L уравнение имеет свои параметры, поэтому эту часть алгоритма желательно оформить как самостоятельный елок., с изменяющейся входной информацией.
Второй блок обращается к блоку определения функций Sitt) для различных значений і , определяемых алгоритмом второго блока. Следовательно, блек вычисления интеграла должен допускать не только изменение параметров подынтегральной функции, но и изменение верхнего предела интегрирования, четвёртый блок предназначен для упорядочения (одним из возможных методов) массива чисел.
Такие блоки с переменней входной информацией называются подпрограммами. Подпрограммы решают определенный класс задач и допускают обращение с различных мест основной программы,и возвращают результат счета в основную программу.
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
1. Гурова Л.И. Основы программирования,-М. :Статистика,1976.-
318с.
К р и н и ц к и й H.A., Миронов Г.А., Фролов Г.Д. Программирование и алгоритмические языки.-М. :Наука,1975..-ч90с.
Ж оголев Е.А., Трифонов Н.П. Курс программирования.-М.:Наука,1971,-ЗВОс.
СОДЕРЖАНИЕ
1. АНАЛИЗ ЗАДАЧИ 3
Моделирование процесса решения 3
Формализация процесса решения задачи 4
Примеры 7
2. ПОНЯТИЕ АЛГОРИТМА 9
Интуитивное понятие алгоритме 9
Некоторые свойства алгоритмов 10
Пример 13
2.4. Связь интуитивного понятия алгоритма и строгогоопределения алгоритма 15
3. СПОСОБЫ ИЗОБРАЖЕНИЯ АЛГОРИТМОВ 16
3.1. Связь алгоритма и метода решения задачи 16
3.2. Общая структура оператора и набор основныхоператоров Формульнс—словесный способ записи алгоритмов 21
Операторные схемы записи алгоритмов 22
Блок-схема - рабочий инструмент программиста 24
4. ОСНОВНЫЕ СТРУКТУРНЫЕ ЭЛЕМЕНТЫ АЛГОРИТМОВ 29
Линейные и ветвящиеся участки алгоритма 29
Общая структура циклического процесса 31
Вида циклов 17
34
5. ОСНОВНЫЕ ВЫЧИСЛИТЕЛЬЯНЕ АЛГОРИТМЫ 36
Алгоритмы обработки массивов 36
Вычисление функций 39
Алгоритмы решения уравнений 43
Пример реяения задачи 45 Список рекомендуемой литературы 46
ОСНОВЫ АЛГОРИТМИЗАЦИИ
Методические указания по курсу
" ПРАКТИКУМ НА Э В М "
Состз жители: доц. И.Г.ГУБАРЬ, вссист В.Н.2ШЮВ
Редактор З.В.Иванова Техрг актор Н.Р.Алексеева
Формат 60x34 1/16. Бумага типографская # 2. Печать плеская. Усл.печ.л. 2,01. Уч.-изд.л. 2,01, Заказ * 45 Тираж 500 экз. Цена 45 к.
редакЦионно-издательский отдел ЛГУ, г. Глепропетровск, пр. Гагарина, 72.
Ротапринт ЛГУ, г. Днепропетровск, ул. Генерале Пушкин?, 4