Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсова-КСМз-сз.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

5 Інтеграційні циклічні процеси

Для наведених в таблиць 5.1 рівнянь необхідно:

  • скласти графічний алгоритм для визначення кореня рівняння із заданою похибкою вказаним методом. В алгоритмі передбачити лічильник кількості ітерацій;

  • розв’язати рівняння на ЕОМ в діалоговому режимі, користуючись розробленою програмою;

  • провести аналіз одержаного результату.

Примітка. При використанні методу Ньютона необхідно визначити, яка з крайніх точок інтервалу ізоляції буде рухомою.

Таблиця 5.1

№ варі-анту

Рівняння

Інтервал ізоляції кореня

Похибка обчислення

Метод розв’язування

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

[1;2]

[1;2]

[2;3]

[0;1]

[2.6;3]

[-2;-1]

[0.8;1]

[0.5;1]

[3;4]

[2;1]

[0;-1]

[2;3]

[2;3]

[1;2]

[2;3]

[3;3.2]

[1;2]

[1;2]

[2;3]

[1;2]

[2;3]

[0;0.2]

[2;3]

[0.5;1]

[2;3]

0.0001

0.001

0.001

0.001

0.0001

0.001

0.001

0.0001

0.001

0.0001

0.0001

0.001

0.001

0.001

0.0001

0.0001

0.0001

0.001

0.001

0.001

0.0001

0.0001

0.001

0.0001

0.0001

Ітерацій

Ньютона

Ітерацій

Ньютона

Ітерацій

Ньютона

Ітерацій

Ньютона

Ітерацій

Ньютона

Ітерацій

Ньютона

Ітерацій

Ньютона

Ітерацій

Ньютона

Ітерацій

Ньютона

Ітерацій

Ньютона

Ітерацій

Ньютона

Ітерацій

Ньютона

Ітерацій

Приклад. Знайти корінь рівняння x*log(x)=x-0.5=0 на інтервалі [0;1] з точністю , користуючись методом ітерацій.

Розв’язок

  1. запишемо рівняння у вигляді хі+1=0.5-хіlnхі і наведемо початкове значення кореня х0=0.5

  2. Графічний алгоритм показаний на рис. 5.1.

  3. Ідентифікація змінних

Змінна

хі

хі+1

t

ε

n

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

X

Y

T

E

N

Тут N – кількість ітерацій

5 Програма мовою Сі

#include <stdio.h>

#include <math.h>

#define E 1e-4

main ()

{

double x=2/5e-1,y.t;

int n=0;

do

{

y=5e-1-x*log(x);

t=fabs(x-y);

x=y;

n++;

}

while (t>E);

printf(“\nКОРІНЬ=%f”,x);

printf(“\nКІЛЬКІСТЬ ІТЕРАЦІЙ=%i”,n);

}

КОРІНЬ=0.729874

КІЛЬКІСТЬ ОПЕРАЦІЙ=23

6 Програма мовою Паскаль

program lab5;

var y,x,e,t: real;

n; integer;

begin

e:=0.0001;

x:=0.25;

n:=0;

repeat

y:=0.5=xln(x);

t:=abs(x-y);

x:=y;

n:=n+1;

until t>e;

writeln(‘КОРІНЬ=’,у:12);

writeln(‘КІЛЬКІСТЬ ІТЕРАЦІЙ=’,n)

end

КОРІНЬ=7,29874Е-01

КІЛЬКІСТЬ ОПЕРАЦІЙ=23

Пояснення до програм:

Особливістю ітераційних циклів є те, щ насамперед невідомо кількість циклів, які виконуються. Обчислення в циклі припиняється при досягненні заданої точності. Ітераційні цикли будуються за допомогою операторів умовного і безумовного переходів, а також оператора WHILE…WEND.

Графічний алгоритм показаний на рис. 5.1. Символ 2 задає початкове наближення кореня точності обчислення, обнуляє лічильник ітерацій. В символі 3 проводяться обчислення за ітераційною залежністю. Після обчислення модуля різниці двох послідовних наближень кореня, символ 4, виконується пере присвоєння «старого» наближення на «нове», символ 5. в цьому символі організований лічильник ітерацій. Символ 6 керує повторенням циклу.

Мовою Бейсік ітераційний цикл побудований за допомогою оператора переходу, а мовами Сі і Паскаль – зо допомогою операторів циклу з постумовою (while…).

Питання для самоперевірки

  1. Яка відмінність ітераційного циклу від циклу з регулярною зміною аргумента?

  2. Як одержати ітераційну формулу для застосування методу ітерацій?

  3. Яка умова закінчення ітераційних обчислень?

  4. Як вивести на друк кількість виконаних ітерацій?

  5. Який оператор керує виходом з циклу?

  6. Побудуйте програми, використавши оператори WHILE…, REPEAD…

Рисунок 5.1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]