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

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) і важкості в забезпеченні швидкого співпадання обмежують використання цих засобів. Але програма їх реалізації досить проста.

Метод Ньютона ( або Ньютона – Рафсона) є найбільш поширеним методом розв’язяння системи рівнянь. Він реалізується слідуючим алгоритмом.

  1. Задаємо абсолютну чи відносну похибку =Е, число рівнянь N, максимальне число інтерацій М та вектор початкових наближень Xi0 ( з компонентами Х10, Х20,...., Хn0).

  2. Використовуючи рівняння 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