ZX-Ревю 1997 №1-2 1997 г.

Спектрум в школе - Метод Зайделя решения СЛАУ.


СПЕКТРУМ В ШКОЛЕ

ИФК.: Пугачев Анд-рей Николаевич из г.Ковров, Владимирской области, предлагает на суд читателей ZX РЕВЮ свой материал, посвященный численным методам. КОРР: в ZX РЕВЮ 1993 года было напечатано несколько статей о численных методах. Но потом эта очень интересная тема была забыта. Чтобы как то вернуть справедливость, я специально для журнала написал три программы на бейсике по численным, методам. Это программа решения СЛАУ "метхюдом Зейдсля" (очень полезная вещь является модификацией метода простых итераций), и две программы по поиску минимума функций: метод золотого сечения и метод дихотомии.

МЕТОД ЗЕИДЕЛЯ РЕШЕНИЯ СЛАУ

Позволяет получить решение системы с заданной погрешностью за ограниченное количество итераций. Метод сходится при условии, что диагональные коэффициенты системы по абсолютной величине равны или больше любого другого коэффициента в своей строке.

А1п А2п АЗп

В! В2 ВЗ

All А12 А13

А21 А22 А23

А31 А32 АЗЗ

An J Ап2 АпЗ

Ann Вп

Программа на Бейсике: 5 REM Ввод

10 DIM А(30,30) DIM В(30) DIM Z(30) DIM D(30) DIM X(30)

20 INPUT "Количество уравнений (<=30)";KOLUR 40 INPUT "Погрешность метода"; EPS 50 FOR 1=1 TO KOLUR 60 FOR J=1 TO KOLUR 70 INPUT "Введите A[i,j]";A(l,J) 80 PRINT "A[";l;V';J;"]=";A(ltJ) 90 NEXT J

100 INPUT "Введите B[i]";B(l) 110 LET Z(I)=B(I)/A(I,I) 120 PRINT "B[";I;"]=";B(I) 130 NEXT I 135 REM Analiz 140 FOR 1=1 TO KOLUR 150 FOR J=1 NJ KOLUR 160 IF ABS (A(l.l)) < ABS (A(I,J)) THEN PRINT "Нет сходимости!": STOP 170 NEXT J 180 NEXT I 185 Solution

190 LET S=0 REM Счетчик итераций

200 LET K=0 REM Признак точности решения 210 FOR 1=1 TO KOLUR 220 LET D(l)=-B(l) 230 FOR J=1 TO KOLUR 240 LET D(I)=D(I)+A(I,J)*Z(J) REM Вычисление "невязок" 250 NEXT J

260 IF ABS (D(l)/A(l,l)) > EPS THEN LET K= 1: REM Точность не достигнута

270 LET X(I)=Z(I)-D(I)/A(I,I) REM Корректировка решения 280 LET Z(I)=X(I) REM Заполнение для использования на данной итерации

290 NEXT I 300 LET S=S+1

310 PRINT "Итерация номер ";S 320 FOR 1=1 TO KOLUR 330 PRINT "X[";I;"]=";X(I);" delta_X=";-D(l)/D(l,l) 340 NEXT I

350 PRINT "Для продолжения нажмите Enter" 355 PAUSE 0

360 IF KO0 THEN GO TO 200 REM Точность достигнута 365 REM Result 380 PRINT "Результаты: 390 PRINT "Количество итераций = "; S

400 FOR 1=1 TO KOLUR 410 PRINT "X[";I;"]=";X(I) 420 NEXT I

Метод "Золотого сечения" поиска минимума функции y=F(x)

10 LET С=0.618 LET D=0.382 13 INPUT "Начало отрезка = ";А INPUT "Конец отрезка = "; В IF А>=В THEN GOTO 13

15 INPUT "Допустимая погрешность = "; EPS GOSUB 58 GOSUB 70 21 IF Y1>Y2 THEN GO TO 36

26 LET B=X2 LET X2=X1 LET Y2=Y1

27 GOSUB 58 GO TO 43

36 LET A=X 1 LET X1 =X2 LET Y1=Y2

37 GOSUB 70

43 IF ABS (B-A) > EPS THEN GO TO 21 50 PRINT "Результат: 52 LET X=(A+B)/2 PRINT "X_min=";X STOP

58 LET X1=C*A+DWB LETX=X1 GOSUB 82 LET Y1=Y RETURN 70 LET X2=D*A+C*B LET X=X2 GOSUB 82 LET Y2=Y RETURN

82 LET Y=............... REM Здесь

вводится исследуемое уравнение

Поиск минимума одномерной

функции методом

"дихотомии"

10 DEF FN F(X)=................ REM

Здесь вводится функция 20 INPUT "Начало отрезка "; А 30 INPUT "Конец отрезка В 40 INPUT "Допустимая погрешность ; EPS

50 REM Metod 60 LET l=0 70 LET C=(A+B)/2 80 IF FN F(C-EPS/10) < FN F(C+EPS/10) THEN GO TO 100 90 LET A=C-EPS/10 GO TO 110 100 LET B=C+EPS/10 110 LET 1=1+1

120 PRINT "C=";C;"Итерация номер: I

130 IF (B-A) > EPS THEN GO TO 70 140 PRINT "Результат: " 150 PRINT "X__min=";C;" Количество итераций = "; I




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Ярослав Велинский - рассказ "ЭПИДЕМИЯ".
Таланты - Russian Radio 101.8 FM.
Обратная связь - контакты редакции.
Обмен опытом - Вращалка - извращалка (Zoom Rotator).
Четыре килобайта - Газете год...

В этот день...   21 ноября