Метод половинного деления 2 (стр. 1 из 3)

СОДЕРЖАНИЕ

ВВЕДЕНИЕ. 4

1. ПОСТАНОВКА ЗАДАЧИ.. 5

2. МЕТОД ПОЛОВИННОГО ДЕЛЕНИЯ.. 6

3 .СООТВЕТСТВИЕ МЕЖДУ ПЕРЕМЕННЫМИ, ПРИНЯТЫМИ ПРИ ОПИСАНИИ ЗАДАЧИ И В ПРОГРАМЕ. 9

4. СТРУКТУРНАЯ СХЕМА ПРОГРАММ И ЕЕ ОПИСАНИЕ. 12

5. ЛИСТИНГ ПРОГРАМЫ.. 20

6. КОНТРОЛЬНЫЙ ПРИМЕР И АНАЛИЗ РЕЗУЛЬТАТА.. 21

7. ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ.. 26

ЗАКЛЮЧЕНИЕ. 27

СПИСОК ЛИТЕРАТУРЫ.. 28

ПРИЛОЖЕНИЯ.. 29

ПРИЛОЖЕНИЕ А.. 30

ПРИЛОЖЕНИЕ Б.32

ПРИЛОЖЕНИЕ Д.33


ВВЕДЕНИЕ

Паскаль − один из наиболее распространенных процедурно-ориентированных языков программирования 80 - 90-х годов, имеет свою достаточно интересную историю, начало которой положило объявление в 1965 г. конкурса по созданию нового языка программирования - преемника Алгола - 60. Участие в конкурсе принял швейцарский ученый Николаус Вирт, который работал на факультете информатики Стэндфордского университета. Проект, предложенный им, был отвергнут комиссией в 1967 г. Но Вирт не прекратил работу. Вернувшись в Швейцарию, совместно с сотрудниками Швейцарского федерального института технологии в Цюрихе, он уже в 1968 г. разработал новую версию языка Паскаль, названного так в честь великого французского математика и механика Блеза Паскаля, создавшего в 1642 г. первую счетную машину. В 1971 г. Н. Вирт выпустил описание своего языка, а в 1975 г. было разработано руководство для пользователей версии Паскаля, которая практически легла в основу стандарта языка. Но стандарт языка появился только в 1982 г.

Предназначенный для обучения, язык оказался очень простым и одновременно строгим. Однако вскоре выяснилось, что он также является достаточно эффективным в самых различных приложениях. Pascal поддерживает самые современные методологии проектирования программ (нисходящее, модульное проектирование, структурное программирование). В связи с этим появились многочисленные реализации языка для разных машинных архитектур и наиболее удачной и популярной оказалась разработка фирмы Borland International для персональных IBM - совместимых ЭВМ. Эта реализация языка получила название Turbo Pascal (Турбо Паскаль) и имеет уже несколько версий.

Turbo Pascal представляет собой систему программирования, включающую в себя текстовый редактор, компилятор, компоновщик, загрузчик, отладчик, файловую систему, системную библиотеку, справочную систему. Все эти компоненты объединены в интегрированную среду с многооконным интерфейсом и развитой системой меню, что обеспечивает высокую производительность труда программиста при создании программ производственного, научного и коммерческого назначения.


1. ПОСТАНОВКА ЗАДАЧИ

Написать программу на языке программирования Pascal, выполняющую решение нелинейного уравнения. Результат работы программы должен выводиться на экран и в файл.

В программе реализовать следующее меню:

1-Ввести данные из файла

2-Ввести данные с клавиатуры

3-Отобразить результат

4-Сохранить результат в файл

0-Выход

Отладить программу на уравнении f(x)=x2 -x-6 с точностью 0,001


2. ВЫБОР И ОПИСАНИЕ МЕТОДОВ РЕШЕНИЯ

Процесс нахождения приближенного значения корней уравнения можно подразделить на два этапа 1) отделение корней; 2) уточнение корней до заданной степени точности. Корень ξ считается отделённым на отрезке [a,b], если на этом отрезке уравнение

: метод половинного деления, Ньютона

2.1. МЕТОД ПОЛОВИННОГО ДЕЛЕНИЯ

Пусть дано уравнение f (x ) = 0, где f (х ) – непрерывная функция. Требуется найти корень этого уравнения ξ с точностью до ε, где е – некоторое положительное достаточно малое число.

Будем считать, что корень ξ отделен и находится на отрезке [а , b ], т. е. имеет место неравенство а ≤ ξ ≤ b . Числа а и b – приближенные значения корня ξ соответственно с недостатком и с избытком. Погрешность этих приближений не превышает длины отрезка bа . Если bа ≤ε, то необходимая точность вычислений достигнута, и за приближенное значение корня ξ можно принять либо а , либо b . Но если bа > ε, то требуемая точность вычислений не достигнута и необходимо сузить интервалов котором находится корень ξ, т. е. подобрать такие числа а и b , чтобы выполнялись неравенства a < ξ < b и

. При
вычисления следует прекратить и за приближенное значение корня с точностью до ε принять либо а , либо b . Следует отметить, что значение корня будет более точным, когда за приближенное значение корня приняты не концы отрезка а и b , а середина этого отрезка, т.е.
. Погрешность в этом случае не превышает величины
.

Метод проб . Пусть дано уравнение f (x ) = 0 [f (x ) – непрерывная функция] и корень ε отделен на отрезке [а , b ], т. е. f (а ) ∙ f (b ) < 0, причем bа > ε. Требуется найти значение корня ξ с точностью до ε (рис. 2.1)


Рис. 2.1

Принцип решения уравнения типа y=f(x) методом проб

Рис. 2.2

Принцип решения уравнения типа y=f(x) методом половинного деления


На отрезке [a , b ] выберем произвольным образом точку a1 , которая разделит его на два отрезка [a, a1 ] и [a1 ,b]. Из этих двух отрезков следует выбрать тот, на концах которого функция принимает значения, противоположные по знаку. В нашем примере f (а ) ∙ f (a 1 ) > 0, f (a 1 ) ∙ f (b ) < 0; поэтому следует выбрать отрезок [a 1 ,b ]. Затем на этом суженом отрезке опять произвольным образом возьмем точку а 2 и найдем знаки произведений f (a 1 ) ∙ f (a 2 ) и f (a 2 ) ∙ f (b ). Так как f (a 2f (b ) < 0, то выбираем отрезок [a 2 , b ]. Этот процесс продолжаем до тех пор, пока длина отрезка, на котором находится корень, не станет меньше ε. Корень ξ получим как среднее арифметическое концов найденного отрезка, причем погрешность корня не превышает ε/2.

Метод проб в таком виде на ЭВМ не применяется. Для составления программ и расчетов на ЭВM метод проб применяется в виде так называемого метода половинного деления .

Пусть корень ξ уравнения f (х ) = 0 отделен и находится на отрезке [a , b ], т.е. f (a ) ∙ f (b ) < 0, причем bа > ε [здесь f (х) – непрерывная функция]. Как и ранее, возьмем на отрезке [a , b ] промежуточную точку, однако не произвольным образом, а так, чтобы она являлась серединой отрезка [a , b ], т. е. с = (а + b )/2. Тогда отрезок [a , b ] точкой с разделится на два равных отрезка [а , с ] и [с , b ], длина которых равна (bа )/2 (рис. 2.2). Если f (с ) = 0, то с – точный корень уравнения f (х ) = 0. Если же f (с ) ≠ 0, то из двух образовавшихся отрезков [a , с ] и [с , b ] выберем тот, на концах которого функция f (х) принимает значения противоположных знаков; обозначим его [a l , b 1 ]. Затем отрезок [a l , b 1 ] также делим пополам и проводим те же рассуждения. Получим отрезок [а 2 , b 2 ], длина которого равна (bа )/22 . Процесс деления отрезка пополам производим до тех пор, когда на каком-то n-м этапе либо середина отрезка будет корнем уравнения (случай, весьма редко встречающийся на практике), либо будет получен отрезок [a n , b n ] такой, что b nа n = (b – а)/2n ≤ ε и а n ≤ ξ ≤ b n (число n указывает на количество проведенных делений). Числа а n и b n – корни уравнения f (х ) = 0 с точностью до ε. За приближенное значение корня, как указывалось, выше, следует взять ξ = (a n + b n )/2, причем погрешность не превышает (bа )/2n +1 .

2.2. МЕТОД ХОРД

Метод хорд является одним из распространенных методов решения алгебраических и трансцендентных уравнений. В литературе он также встречается под названиями «метода ложного положения» (regulafalsi), «метода линейного интерполирования» и «метода пропорциональных частей».

Пусть дано уравнение f(х) = 0, где f (х) – непрерывная функция, имеющая в интервале [а, b] производные первого и второго порядков. Корень считается отделенным и находится на отрезке [а, b], т.е. f(a)-f (b) < 0.

Идея метода хорд состоит в том, что на достаточно малом промежутке [а, b] дуга кривой у = f (x) заменяется стягивающей ее хордой. В качестве приближенного значения корня принимается точка пересечения хорды с осью Ох.

Ранее мы рассмотрели четыре случая расположения дуги кривой, учитывая значения первой и второй производных.

Рассмотрим случаи, когда первая и вторая производные имеют одинаковые знаки, т. е, f'(х) ∙ f'' (х) > 0.

Пусть, например, f(a) < 0, f(b) > 0, f'(х) > 0, f''(х) > 0 (рис. 3.18, а). График функции проходит через точки А0 (a; f(a)), В(b; f(b))- Искомый корень уравнения f(х) = 0 есть абсцисса точки пересечения графика функции у = f(х) с осью Ох. Эта точка нам неизвестна, но вместо нее мы возьмем точку x1 пересечения хорды А и В с осью Ох. Это и будет приближенное значение корня.


Copyright © MirZnanii.com 2015-2018. All rigths reserved.