Добавлен: 06.02.2019

Просмотров: 246

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

24


6. Лабораторная работа №5

РЕШЕНИЕ УРАВНЕНИЙ


Целью лабораторной работы является разработка процедур с нестандартной внешней функцией.

Используются приемы и методы программирования: разработка процедур, не зависящих от используемых внешних функций, разработка модульных программ.


Условие задачи. Найти корень заданного уравнения с точностью

методом деления пополам и методом простых итераций

и сравнить скорость сходимости методов.


Метод деления пополам

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


y=f(x)








a c x b


f(x)=0
















Рис. 5.1. Метод деления пополам


Суть метода состоит в последовательном «стягивании» отрезка к корню:

Пусть l – левая граница изменяющегося отрезка (вначале l=a), r – его правая граница (вначале r=b);

отрезок [l, r] делится пополам точкой с и выбирается та половина, на концах которого функция имеет разные знаки; если это левая половина, то r=c, если правая, то l=c:

процесс деления отрезка повторяется до тех пор, пока не выполнится условие

r - l и f(x) .


Метод простых итераций

Используется в том случае, если уравнение можно выразить в виде x = f(x). Тогда корень уравнения является пересечением прямой y = x и кривой у = f(x) (см. рис. 5.2).

Метод простых итераций записывается в виде рекуррентной формулы

x0 = xначальное

xi = f(xi-1) для i = 1, 2, 3, …

которая образует последовательность

x0, x1, x2, …, xi, …

сходящуюся к корню уравнения при определенных условиях.

Повторяем процесс до выполнения условия xi - xi-1 .




Рис. 5.2. Метод простых итераций


Этапы выполнения


  1. Составить спецификацию задачи (без раздела Метод), предусмотрев надежный

ввод данных.

  1. Выполнить проектирование и разработку интерфейса задачи и отделения ввода-

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

Отладить программу с простыми заглушками.

  1. Рассмотреть подзадачу “Решение уравнения x=φ(x) методом простых итераций”.

Учесть, что варианты задач в Приложении 8.2 приведены для уравнения f(x) = 0, корень которого лежит на отрезке [0, 2].

Описать итерационный метод простых итераций в разделе Метод.

Разработать интерфейс процедуры (или функции) метода простых итераций (учесть анализ скорости сходимости!), записав его в раздел описаний главной программы, а простую заглушку заменить обращением к этой процедуре (функции).


Отладить интерфейс процедуры, заменив алгоритм заглушкой.

  1. Заменить заглушку программой вычисления корня методом простых итераций,

взяв за основу общий алгоритм, описанный в 7.1.

  1. Вынести алгоритм вычисления φ (x) в отдельный процедурный модуль (function).

В списке входных параметров процедуры метода простых итераций описать функцию φ (x) как внешнюю функцию, использовав процедурный тип языка Паскаль (см. 7.10). Отладить программу.

6. Повторить п.3 5 для метода деления пополам.

7. Сравнить скорость сходимости методов. Какие параметры влияют на скорость сходимости?

8. Сдать работу преподавателю, имея полную документацию, включающую структурную схему программы.