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

Підставимо (7) у (6), отримаємо

Звідси

. (8)

Тут ,

рис. 2

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

|xn – xn-1|<ε.

Зауваження. У загальному випадку збіг з точністю до ε двох послідовних наближень xn-1 і хn не гарантує, що з тією ж точністю співпаде xn і ξ (см. рис. 2). Тому доцільно перевіряти крім різниці |xn – xn-1|<ε також значення функції f(xn): |f(xn)|< ε1.

2.1 Алгоритм

Беремо дві границі між якими знаходиться корінь. Далі потрібно вибрати ту межу, яка задовольняє умову: f (x) * f'' (x)> 0. У своє рівняння і в подвійну похідну від свого рівняння замість х підставляємо одну з меж. Якщо умова задоволено значить ця межа буде нашим xn.

Доки не виконана умова зупинки, в якості якої можна взяти

або (тобто похибку в потрібних межах), обчислюють нове наближення:

Якщо умова виконана, то хn+1 буде нашим коренем

3. Практична частина Фортран

3.1 Структурна схема програми

3.2 Чисельний експеримент

Program p1

print*,’vvedite granizy1, granizy2, tohnost’

read*,a,b,e

c=((a**3)-(a**2)+3)*((6*a)-2)

if(c.gt.0) then

xn=a

else

xn=b

end if

g=xn

90 t=g

g=t-((t**3-t**2+3)/(3*t**2-2*t))

if((g-t).lt.e) then

print*,g

else

go to 90

end if

stop

У результаті розрахунків програми, корінь рівняння х32+3 дорівнює -1,17456

3.3 Опис програми

1. Зчитуємо а, b, e, де а, b – границі , а е – точність

2. Задаємо c=((a**3)-(a**2)+3)*((6*a)-2), де

((a**3)-(a**2)+3) – це f(x), а ((6*a)-2) – це f (x)

3. Створюємо умову if(c.gt.0). Вона означає: якщо c > 0, то xn=a, а якщо ні, то xn=b

4. Присвоюємо g значення xn

5. Присвоюємо t значення g, та ставимо цій строчці мітку 90

6. Задаємо g=t-((t**3-t**2+3)/(3*t**2-2*t)), де

g – це (xn+1); t – це xn; (t**3-t**2+3) – це f(x); (3*t**2-2*t) – це f (x)

7. Створюємо умову if((g-t).lt.e). Вона означає: якщо (g-t) > e, то g виводиться на екран як корінь рівняння, а якщо ні, то програма повертається до мітки 90 та присвоює t значення g. Програма буди робити це знову і знову доки не знайде корінь.

3.4 Оператори

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

У Фортрані є 3 типи умовних операторів:

1) умовний арифметичний оператор

2) умовно-логічний оператор

3) блочний(структурний) оператор

Оператори програмного модуля можуть виконуватися в порядку, коли попередній оператор передає управління наступному за ним оператору. Такий порядок виконання називається природним. Для зміни природного порядку в Фортрані використовують оператори переходу. Їх існує 3: 1) Оператор без умовного переходу 2) оператор переходу по обчислень 3) оператор переходу за приписом

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