Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
07.02.2016
Размер:
342.02 Кб
Скачать

Var X, y, a, b, hx, max, xmax: real;

begin

writeln(‘ввести a, b, hx’);

readln(a, b, hx);

max:= -1.0e20;

x:= a;

while x<=b do

begin

y:= sqr(sin(x- pi))-sqr(x);

if y> max then

begin

max:= y;

xmax:=x;

end;

x:=x+hx;

end;

writeln (max,xmax);

end.

Оператори WHILEтаREPEAT використовуються як для регулярних, так і ітераційних циклів.

Алгоритми ітераційних процесів.

Не завжди можна наперед точно вказати, скільки повторень у циклі. В цьому випадку цикл закінчується, коли виконується поставлена умова. Такі цикли мають назву ітераційні.

Розглянемо задачу:

Приклад 2.13.: Деяка послідовність чисел будується за правилом

; де n=1,2,3,....

Вивести на екран перше число, яке менше за задане число x (0x1).

Числа, які утворюють послідовність: 1, 0.14285, 0.05882,.... Якщо задане число х=0.101, то на екран треба вивести 0.05882, якщо х=0.5, то на екран треба вивести 0.14285. Неможливо наперед вказати, скільки таких чисел буде обчислено. Як тільки буде одержано число a, що менше за задане х, то треба закінчити одержання послідовності чисел a, та вивести на екран останнє одержане число.

Складемо алгоритм:

Обчислення значень функцій у математиці часто замінено обчисленням наближеного значення деякої нескінченної суми.

Приклад 2.14. Обчислити з точністю >0

Обчислення завершити, коли наступний доданок стане менше за .

Введемо позначення:

величина

ідентифікатор

тип

сума

y

дійсний

доданок

a

дійсний

факторіал

f

дійсний

степінь

st

дійсний

точність

e

дійсний

проміжний лічильник

i

цілий

Складемо блок-схему:

Приклад 2.15. Наближене обчислення кореня рівняння.

Нехай задане рівняння f(x)=0. Треба знайти його корені. Відомо з математики, що, якщо немає точних формул розв’язання рівняння, то існують методи наближеного обчислення його коренів. Таких методів декілька: метод поділу пополам, метод дотичних, метод хорд, ітераційний метод. Розглянемо метод поділу пополам.

Першим кроком до знаходження кореня рівняння треба знайти відрізок, в якому є один такий корінь. Для цього існують спеціальні математичні дослідження. Якщо значення функції змінює свій знак на якомусь відрізку, то в його середині існує хоча б один корінь. Далі треба за допомогою першої похідної зробити уточнення, чи дійсно існує саме один корінь на позначеному відрізку.

Далі робота складається з дуже простих дій.

Крок 1. Відрізок [a, b] треба поділити навпіл .

Крок 2. Одержимо два відрізка: [a, x] та [x, b]. В тому з них, де значення функції змінює свій знак, знаходиться корінь. Відрізок [a, b] замінюємо вибраним новим відрізком. Для цього або а замінюємо на х, або b на х.

Крок 3. Точне значення кореня дорівнює х, якщо значення f(x) дорівнює нулю. Але це буває дуже рідко. Тому повторюємо крок 1 для вибраного нового відрізку [a, b] до тих пір, поки довжина відрізка не стане менше заданого значення похибки  (|b - a|  ).

Введемо позначення:

величина

ідентифікатор

тип

Корінь

X

дійсний

нижній кордон

A

дійсний

верхній кордон

B

дійсний

точність

E

дійсний

проміжний покажчик

Zt

логічний

Складемо алгоритм.

zt:=f(x)*f(b)<0

a=x

b=x

-

+

-

+

-

+

-

+ -

+

рис. 3.3 Блок-схема алгоритму до прикладу 3.6.

-

+

-

+

рис. 3.4 Блок-схема алгоритму до прикладу 3.19.

Соседние файлы в папке конспект лекцій 1 паск