Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kukurudz_new27_06.doc
Скачиваний:
20
Добавлен:
02.12.2018
Размер:
37.42 Mб
Скачать

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

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

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

- скласти програму для ЕОМ;

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

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

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

Таблиця 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

4x3-5x2+3x=0

х3-x-1=0

x3-3x2+4x-9=0

x3+3x-1=0

x3-ex-5.5=0

х3-x+1=0

tg3(x)-tg(x)-1=0

ex-1/x-1=0

2x3-7x2+3x-10=0

x+ln(x)-2=0

x3+3x+1=0

2x3-5x2+5x-12=0

xln(x)-2=0

5x3-6x2+x-2=0

x3--8.5=0

ex-ln(x)-20=0

3x3-4x2+2x-3=0

x3+2x-11=0

ex-2-ln(x+2)=0

4x3-5x2+2x-3=0

x3-2x-5=0

sin()-cos()+2=0 2x3-5x2+7x-15=0

ex-1/x-1=0

2ex-2-lg(x+12)=0

[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

ітерацій Ньютона ітерацій Ньютона ітерацій Ньютона ітерацій Ньютона ітерацій Ньютона ітерацій Ньютона ітерацій Ньютона ітерацій Ньютона ітерацій Ньютона ітерацій Ньютона ітерацій Ньютона ітерацій Ньютона ітерацій

Приклад. Знайти корінь рівняння xlnx+x-0.5=0 на інтервалі [0;1] з точністю =10-4, користуючись методом ітерацій.

Розв’язок задачі.

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

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

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

Змінна

xi

xi+1

t

n

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

X

Y

T

E

N

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

4. Програма мовою GW-Basic

10 REM ІТЕРАЦІЙНІ ЦИКЛИ

20 LET E=1E-4

30 LET X=2.5E-1

40 LET N=0

50 LET Y=5E-1-X*LOG(X)

60 LET T=ABS(X-Y)

70 LET X=Y

80 LET N=N+1

90 IF T<E THEN 50

100 PRINT “КОРІНЬ=“;Y

110 PRINT”КІЛЬКІСТЬ ІТЕРАЦІЙ=”;N

120 END

КОРІНЬ=7.29874E-1

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

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. Програма мовою Pascal

program lab5(input,output);

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(‘КОРІНЬ= ’,y:12);

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

end.

КОРІНЬ= 7.29874E-01

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

езультати:

елементімальний і максимальний елементи, і вивести на друк перетворений масив, а також мінімальний і максимальний еЗавдання:

Знайти корінь рівняння xlnx+x-0.5=0 на інтервалі [0;1] з точністю =10-4, користуючись методом ітерацій.

Опис форми.

Відкриваємо нову форму і на цій формі створюємо такі елементи (таблиця 5.1):

Таблиця 5.2 - Елементи керування і їх властивості

Елемент (Name)

Властивість

Значення

CommandButton1

Caption

Обчислити

CommandButton2

Caption

Вихід

Рисунок 5.2 – Інтерфейс програми.

Код програми:

Private Sub Command1_Click()

e = 0.0001

x = 0.25

n = 0

Do

Y = 0.5 - x * Log(x)

t = Abs(x - Y)

x = Y0000000000000000

n = n + 1

Loop Until t < e

Print "КОРІНЬ="; Format(Y, "###.####")

Print "КІЛЬКІСТЬ ітерацій = "; n

End Sub

Private Sub Command2_Click()

End

End Sub

Р исунок 5.3 – Результат виконання програми.

Програма мовою Delphi

Опис форми.

Відкриваємо нову форму і на цій формі створюємо такі елементи (таблиця 5.3):

Таблиця 5.3- Елементи керування і їх властивості

Елемент (Name)

Властивість

Значення

Label2

Caption

Результати обчислення

Memo1

Lines

Витерти Memo1

Button1

Caption

Обчислити

Button3

Caption

Вихід

Р исунок 5.4 – Інтерфейс програми.

Код програми матиме вигляд

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

y,x,e,t: real;

n: integer;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

e:=0.0001;

x:=0.25;

n:=0;

repeat

y:=0.5-x*ln(x);

t:=abs(x-y);

x:=y;

n:=n+1;

until t<e;

Label2.Caption:='КОРІНЬ= '+format('%2.8s',[FloatToStr(y)]);

Label3.Caption:='КІЛЬКІСТЬ ІТЕРАЦІЙ= '+FloatToStr(n);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

end.

Рисунок 5.5- Результат виконання програми

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

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

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

Мовою GW-Basic ітераційний цикл побудований за допомогою оператора умовного переходу, а мовами С і Pascal, Visual Basic та Delphi - за допомогою операторів циклу з постумовою.

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

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

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

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

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

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

  6. Побудуйте програму, використавши структуру циклу з післяумовою чи з передумовою.

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