- •Етапи підготовки і рішення задач на еом
- •Програма, що не має помилок часу трансляції і виконання, може і не дати вірних результатів через так звані логічні помилки в обраному алгоритмі, тобто алгоритмічних помилок.
- •Запис алгоритмів у виді блок – схем
- •Мови програмування
- •1. Основні поняття алгоритмічної мови Бейсік.
- •3. Сталі та змінні.
- •4. Функції. Вирази.Оператор присвоєння
- •Вправи та запитання
- •5. Надання значень змінним
- •Оператор read.
- •6. Виведення результатів
- •Оператор Результат
- •Оператор Результат
- •7.Лінійні програми
- •Розгалуження
- •1.Логічний вираз
- •3. Команда розгалуження if. Повна форма умовної команди.
- •10.Цикли
- •11.Оператори циклу
- •12. Обчислення суми, добутку
- •13. Ітераційні цикли
- •14. Вкладені цикли
- •Мал.12 Схеми вкладених циклів.
- •15. Використання масивів
- •Вправи та запитання
- •16. Нестандартні функції та підпрограми
- •17. Робота з текстовими даними
- •18. Оператори роботи з графічною інформацією.
- •19. Робота з файлами даних
- •20 Основи роботи в пакеті MathCad
- •Визначення основних понять та позначень, безпосередньо зв'язаних з процесом обчислень у середовиіщі пакету Вхідний алфавіт
- •Типи констант і змінних
- •Розмірність, одиниці вимірів та одиниці маштабування
- •Базові обчислювальні конструкції пакета
- •Реалізація ітеративних обчислень.
- •Функції керування обчисленнями
- •Побудова декартових графіків
- •Методи доступу і роботи з файлами даних
- •Вбудовані функції та функції користувача
- •Розділ 21Алгоритми та програми реалізації загальних чисельних методів.
- •21.1. Розв’язання систем лінійних рівнянь.
- •21.2 Інтерполяція та екстраполяція.
- •21.3. Розв’язання нелінійних та трансцендентних рівнянь.
- •21.4 Розв’язування систем нелінійних рівнянь.
- •Програма 14
- •21.5. Пошук екстремумів функцій одної та багатьох змінних.
- •Програма 15
- •Програма 16
- •Програма 17
21.4 Розв’язування систем нелінійних рівнянь.
Розв’язування систем нелінійних рівнянь може виконуватися описаними вище методами, які застосовуються по черзі до кожного з рівнянь системи з контролем похибки сходження кожної змінної до кореня із заданою похибкою. Зупинимся на описанні двох модифікацій методу інтеграції.
Розв’язок системи нелінійних рівнянь методом простих інтеграцій вміщується в реалізації інтераційного процесу за слідуючою формулою:
Xi(n+1) = Fi (Xi(n)) (9)
яка використовується після зміни системи нелінійних рівнянь загального типу
Fi (Xi) =0 (10)
до типу Xi= Fi (Xi). Тут і- номер змінної (1,2…., N), n- номер інтерації. Обчислення робляться до тих пір, поки дотримується умова (Xi(n+1)-Xi(n))>, де -задання точності.
Метод Зейделя відрізняється від методу простих інтерацій тим, що зазначені Xi(n+1) зразу підставляються в слідуючі рівняння.
Необхідність перетворення (10) і важкості в забезпеченні швидкого співпадання обмежують використання цих засобів. Але програма їх реалізації досить проста.
Метод Ньютона ( або Ньютона – Рафсона) є найбільш поширеним методом розв’язяння системи рівнянь. Він реалізується слідуючим алгоритмом.
Задаємо абсолютну чи відносну похибку =Е, число рівнянь N, максимальне число інтерацій М та вектор початкових наближень Xi0 ( з компонентами Х10, Х20,...., Хn0).
Використовуючи рівняння Fi(Хi) в ряд Тейлора, формуємо матрицю Якобі Fi/Хi , якя необхідна для розв’язання рівнянь Fi(Хi) при малій зміні змінних. Матриця Якобі в розгорнутому вигляді записується так:
Оскільки аналітичне диференціювання Fi(Хi) в загальному випадку небажано, то ми замінюємо рівняння в матриці Якобі їх наближеними кінцево – рознісними значеннями:
,
де Нi – мале прирощення Хi, наприклад Нi =Хi.
3.Складаємо та розв’язуємо систему лінійних рівнянь для малих прирощень Хi:
Розв’язання
цієї системи дає
X1,
X2,….,
X
.
4.Обчислюємо дані значення:
x
(n+1)=x
+
x
x
(n+1)=x
+
x
… … …
x
=x
+
x
або в загальному вигляді
X
=X
+
X
.
5. Для всіх X перевіряємо одну з умов: X >, X /X >.
Якщо воно виконується, переходимо до п.2, тобто виконуємо нову інтерацію. Або рахуємо вектор X знайденим розв’язком.
Відмітимо, що розв'язання системи нелінійних рівнянь (10) можна представити і в вигляді X =X -W F (X ), де W -матриця Якобі. Обернення матриці Якобі здійснюється в ході розв’язання системи лінійних рівнянь для рівнянь Х методом Гауса.
Програма 14
10 PRINT ’Розв’язання системи нелінійних рівнянь’
20 PRINT ’Модифікаційним методом Ньютона’
30 INPUT ‘Задайте число рівнянь N=’N:DIM A(N,N), B(N), X(N), F(N)
40 INPUT ‘Задайте максимальне число інтерацій M=’M
50 INPUT ‘Задайте відносну похибку E=’E:LETS=0
60 FOR I=1 TO N:PRINT!2.0! ‘Введіть X’I’(0)’
70 INPUT X(I):NEXT I
80 GOSUB 260:FOR I=1 TO N:LET B(I)=-F(I):NEXT I
90 FOR J=1 TO N:LET X=X(J):LET H=E*ABS(X)
100 LET X(J)=X+H:GOSUB 260:FOR I=1 TO N
110 LET A(I,J)=(F(I)+B(I))/H:NEXT I :LET X(J)=X:NEXT J
120 LET S=S+1:IF S=M+1 THEN PRINT’Число інтерацій S=M’:STOP
130 FOR I=1 TO N-1:FOR J=I+1 TO N
140 LET A(J,I)=-A(J,I)/A(I,I):FOR K=I+1 TO N
150 LET A(J,K)=A(J,K)+A(J,I)*A(I,K):NEXT K
160 LET B(J)=B(J)+A(J,I)*B(I):NEXT J:NEXT I
170 LET F(N)=B(N)/A(N,N):FOR I=N-1 TO 1 STEP –1
180 LET H=B(I):FOR J=I+1 TO N:LET H=H-F(J)*A(I,J):NEXT J
190 LET F(I)=H/A(I,I):NEXT I:LET R=0
200 FOR I=1 TO N:LET X(I)=X(I)+F(I)
210 IF ABS(F(I)/X(I))>E THEN LET R=1
220 NEXT I:IF R=1 THEN 80
230 PRINT ‘Розв’язання системи’
240 FOR I=1 TO N:PRINT!2.0!’X’I!F1.9!’=’X(I):NEXT I
245 PRINT !2.0! ‘Число інтерацій S=’S:STOP
250 REM ‘Підпрограма обчислення F(I)=F(X(1),X(2),…,X(N))’
260 LET F(1)=X(1)+3*LGT(X(1))-X(2)*X(2)
270 LET F(2)=2*X(1)*X(1)-X(1)*X(2)-5*X(1)+1
280 RETURN:END
