Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика (типовой расчет) / пример задания 5(Типовой расчет_часть3).ppt
Скачиваний:
20
Добавлен:
13.03.2016
Размер:
173.06 Кб
Скачать

ТИПОВОЙ РАСЧЕТ

Задача 1.7. Приближенное вычисление корня уравнения на отрезке [a,b] методом деления отрезка пополам. Типовой расчет. Часть 3.

1

Приближенное решение уравнения на отрезке

Известно, что уравнение

F(x)=0 (*)

на отрезке [A,B] имеет ровно один корень.

Требуется найти приближенное значение корня с точностью :

|x*-xпр|< ,

где x* - точное значение корня, xпр – приближенное значение корня.

2

Приближенное решение уравнения на отрезке

y=F(x)

A

x*

B

x

 

 

 

 

 

 

 

 

 

Если уравнение (*) имеет на отрезке [A,B] ровно один корень, то F(A)*F(B) 0.

3

Метод деления отрезка пополам (дихотомии)

y=F(x)

A

x=(a+b)/2

x*

B

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

x2

 

x3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если F(x)*F(B) 0, то x* [x,B] корень надо искать на правой половине отрезка: A=x;

иначе x* [A,x] корень надо искать на левой половине отрезка: B=x.

Далее деление пополам нового отрезка. 4

Метод деления отрезка пополам (дихотомии)

i-ая итерация (цикл): вычисление xi - середины

i-го отрезка и выбор его левой или правой половины.

{xi} x* при i .

Условие продолжения цикла: B-A> .

5

Метод деления отрезка пополам (дихотомии)

 

 

 

 

 

 

начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ввод A,B,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x=(A+B)/2

 

 

 

 

 

-

 

 

 

 

 

 

 

+

 

 

 

 

 

F(x)*F(B) 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B=x

 

 

 

 

 

 

 

 

 

A=x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B-A>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вывод x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

конец

 

 

 

 

Алгоритм для идеального случая: на [A,B] ровно один корень.

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

6

Вариант-образец.

Задание. Вычислить значение корня уравнения Sin(x)-X+2=0 на отрезке [2,3] методом деления отрезка пополам.

Для вычисления значения функции использовать функцию.

7

Состав данных

true, при _ продолжении _ цикла Fl false, при _ завершении _ цикла _

8

Блок-схема алгоритма

9

Текст программы

program example17; Var

A,B,E,x, Fa, FB, Fx, y: real; Np,N: integer;

Fl: boolean;

function F(xp: real): real; begin

F:=sin(xp)-xp+2; end;

10