Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Мараева И.Б. Вычислительная техника в инженерных и экономических расчетах. Автокод Инженер для ЭЦВМ Минск-22 учеб. пособие

.pdf
Скачиваний:
3
Добавлен:
23.10.2023
Размер:
4.54 Mб
Скачать

90

 

Продолжение таб л .I

I

2

101

Автокодовая программа и дополнения к ней не вмещаются

 

в оперативную память малины.

S «О

Ошибка в записи корректировочного оператора. Например, дополнения начинаются не с корректировочного опе­

ратора.

ю з

Инфорглация строки бланка не заканчивается символами

 

=Г или Е .

 

 

заканчивается

 

Перфолента с автокодовой программой не

 

пятью пробелами.

 

 

 

 

 

104

Номера корректируемых строк расположены не в

порядке

 

возрастания.

 

 

 

 

 

105

Есть ссылка на метэд', которая не присвоена ни

однощу

 

оператору автокодовой

программы.

 

 

 

 

Введена не вся программа.

Первый оператор программы не

 

имеет метки.

 

 

 

 

 

 

Процущено заглавие автокодовой программы.

 

 

 

106

Рабочая программа не вмещается в оперативную память

 

малины.

 

 

 

 

 

107

Неправильно организуются циклы.

 

 

 

НО

Неправильная работа магнитной ленты при вызове стан­

 

дартных программ.

 

 

 

 

 

I I I

Неправильный ввод перфоленты с автокодовой програм­

 

мой.

 

 

 

 

 

112

Для рабочей программы требуется более 15

 

индексных

 

ячеек.

 

 

 

 

 

вы в

стандартных подпрограммах автокода. Речь идет о

тех

стандартных подпрограммах, обращение к которым

 

строится ав­

томатически. Например, записывая в автокодовой

 

програше

элементарные функции, операторы ИНТЕГРАЛ ивы

 

АЛГЕБРАИЧЕ­

СКИХ—* УРАВНЕНИЙ I—• СИСТЕМА

, мы тем самым даем

 

указание

транслятору построить обращение к соответствующим стандарт­

ным подпрограммам БСП АКИ. Возможные остановы в стандартных

подпрограммах автокода приведены в табл .2 . Они,так же как и остановы при трансляции, могут быть устранены проверкой со­

ответствующих операций в автокодовой программе и необходимы­

ми изменениями при помощи корректировочных операторов.

А

оста­

А СП

нова

 

41

СП-6

У - * 9 *

 

42

СП-7

 

y-arcsin х

 

y-arccos со

43СП-22

Перевод целого числа из 2 — 10

44СП-15

Печать чисел на БПМ СП-17, СП-27

Печать таблицы чисел

45СП-20

Звод и перевод чисел из 10 — 2

46СП-25

Расчет количества повторения цикла

47СП-1

 

 

f/ = X Z

50

С1М

у = е ж

 

51

011-5

у = 8 п с с

52СП-12

Деление целых чисел

91

Таблица 2

Причина останова

3L l35!11 2~

/ж/ > 1

/х /> 999999999

Для двумерного массива не вы­ полнено условие соответствия количества выводимых и описан­ ных элементов в строке

Вводимый массив занимает в па­ мяти больше места, чем отведе­ но для него в автокодовой про­ грамме.

(Нет соответствия между описа­ нием массива в операторе ВВОД и содержанием перфоленты исход­ ных данных)

Количество повторений цикла - отрицательное или нецелое чис­ ло

Значение

не определено

ж > 4 3 ,

668

Делитель равен нулю

92

После устранения всех ошибок программы, выявленных

при

трансляции и обращении к стандартным подпрограммам, начинает­

ся счет задачи. Если результаты счета не совпадают с извест­

ными результатами контрольного варианта, то рекомендуется от­

лаживать программу по частям, выводя на печать

и

сравнивая

промежуточные результаты. Только после выявления

и

устране­

ния всех ошибок в программе можно приступить к

счету задачи

для всех необходимых вариантов исходных данных.

 

 

5 12 . Некоторые часто используемые стандартные

подпрограммы

 

 

Как уже указывалось в 5 8 , при решении многих задач удоб­

но использовать стандартные программы, записанные на магнит­

ной ленте во внешнем запоминающем устройстве

машины.

 

 

Обращение к этим стандартным программам строится при по­

мощи операторов

БИБЛИОТЕЧНАЯ ПРОГРАММА и СП (в режиме

" Т ").

В

этом параграфе перечисляются некоторые

наиболее

часто

употребляемые стандартные подпрограммы и указывается

запись

обращения к

ним в

режиме "Т ".

 

 

 

 

 

 

I .

Вычисление

некоторых специальных функций

 

 

1 .

Вычисление

функции Бесселя 1 -го рода нулевого порядка

U (х}эт действительного аргумента.

 

 

 

 

 

 

 

 

 

СП^6(ХХ) I

 

 

 

 

 

Здесь

X - идентификатор аргумента,

Y -

идентификатор со­

ответствующего значения функции Бесселя.

 

 

 

 

2 .

Вычисление

функции Бесселя 1-го

рода 1 -го

порядка

(ас) от действительного аргумента.

 

 

 

 

 

 

 

 

 

Сп~ W{X,Yj I

 

 

 

 

 

Обозначения такие

же, как в СП-46.

 

 

 

 

 

3 .

Вычисление

функции Бесселя 1 -го

и 2 -го рода

нулевого

порядка D0 (х)

, Y

f x j

от действительного

аргумента.

 

 

 

 

 

 

Cn„5i(X,YtZ) X

 

 

 

 

Здесь

X - идентификатор аргумента,

Y -

идентификатор D0 (X) f

a Z

- идентификатор Y (х ) .

 

 

 

 

 

 

 

93

4 .

Вычисление

функций Бесселя 1-го и 2 -го рода 1по-го-

рядка

С7 (х) . Y (X)

от действительного аргумента.

Cn^52(X,YZ) I

Обозначения аналогичны СП-61.

5 . Вычисление интеграла вероятности

С П ^ 5 3 (Х ,У )Х

Здесь

X - идентификатор аргумента

х

из интервала

 

) , Y - идентификаторФ (Х )

 

 

6 .

Вычисление

функции Бесселя

1 -го

рода нулевого порядка

 

от чисто мнимого аргумента.

 

 

 

 

 

С П ~ 5 Н (Х У ) 1

 

 

 

 

Здесь

X - идентификатор коэффициента при мнимой

единице в

аргументе ( 0 $ Z S

43,66 8 2 7 ) , Y

-

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

/ (х)

7 .

Вычисление

функции Бесселя

1 -го

рода 1 -го порядка

7

(х ) от чисто

мнимого аргумента.

 

 

 

*СП^55(Х,У) I

Обозначения те

же,

что и в СП-54.

 

 

 

8 . Вычисление функций Бесселя

1-го и 2 -го рода

нулевого

порядка

/ (х)

,

К (х)

от чисто

мнимого аргумента.

 

 

 

 

С П ^ 5б(х,У , z ) X

 

 

9 . Вычисление функций Бесселя

1 -го и 2 -го рода

первого

порядка

(х )

,

Kf (х) от чисто мнимого аргумента:

 

 

 

 

C n ~ 5 7 ( x ,Y Z ) l

 

 

 

П. Решение алгебраических уравнений и систем

 

I .

Вычисление

корней

т д и н о я

 

 

Корни полинома с действительными коэффициентами могут вы­

числяться в стандартных подпрограммах различными

способами,

например, по методу Ньютона (СП-45) и по методу

скорейшего

спуска (СП-147). В

обеих подпрограммах находятся все некрат­

ные действительные

и комплексные

корни полинома вида

 

94

 

 

P n ( z > B Z ',+ i L

a

i

Z',' i,

П 4 1 0 2 * .

 

 

 

 

 

 

 

 

 

 

l-i

 

 

 

 

 

 

 

 

 

 

 

 

Обращения к СП имеют вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

С П Л 5 ( А / 1 / , В / Ц , Ы, >р>,Ю1

 

 

 

 

 

 

 

 

СП~ т а л / / /, в / i l , Nt y , E ) J

 

 

 

 

Здесь

R -

идентификатор массива коэффициентов

 

многочлена

а (,

аг............ а п

;

3 - идентификатор массива,

отведенного

под значения корней полинома;

N

-

переменная целого

типа,

задающая степень

полинома;

р

-

признак, указывающий, уточ­

няются ли корни по исходному

полиному: если

р

=

0 ,

то

кор­

ни не уточняются,

если ж%р ф О ,

то

уточняются;

£

-

погреш­

ность вычислений (должна быть задана

заранее).

 

 

 

 

 

Корни полинома размещаются в

массиве

В

в следующем по­

рядке: R e z i f U m z n R ezi t J m

z г

 

Re zn , J m

z n .

 

 

Поэтому массив

содержит 2

n

элементов.

Перед обращением к

СП в

памяти надо оставить место для

элементов массива В

при

помощи оператора MACCIB.

 

 

 

 

 

 

 

 

 

 

 

 

Длина массива А равна

л

 

элементам,

так

как коэффициент

при

2 Л обязательно

должен

быть

равен I

и в

массив

не вхо­

дит.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После выполнения СП в

массиве

А сохраняются

коэффициенты

многочлена.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 .

Вычисление действительного корня

трансцендентного

уравнения

 

 

 

 

 

 

 

 

f ( x ) =

 

 

 

 

 

 

Трансцендентное

уравнение вида

0 может быть

ре­

шено в стандартных подпрограммах различными

способами,

на­

пример, по видоизмененному методу Ньютона (СП-211) и

по ме­

тоду скорейшего спуска (СП-212).

 

 

 

 

 

 

 

 

 

Обращения имеют вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СП~1Н(М,Х0,Е,Х) I

 

 

 

 

 

 

 

 

 

 

Cn~2.&[M,X0,EtXj I

 

 

 

 

 

 

Здесь

М -

номер метки подпрограммы вычисления функции f(x )

ХО -

идентификатор начального

приближения искомого

корня;

Е

-

идентификатор погрешности вычисления;

X -

идентифика­

тор

аргумента

X

,

участвующего в подпрограмме

 

вычисления

f (х )

. Полученное в

подпрограмме

значениеf

(х )

должно

быть

 

 

 

95

обозначено той же

буквой

(засыпается

в ту же ячейку, что и

аргумент) .

 

 

 

Значения ХО

и £

должны быть

заданы до обращения к СП.

3. Решение систем линейных алгебраических уравнений Система линейных алгебраических уравнений может быть ре­

шена с помощью оператора АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ СИСТЕ­ МА. При трансляции этого оператора, как уже указывалось ра­ нее, строится обращение к соответствугще? стандартной год - программе.

Можно решить сразу несколько линейных систем,имеющих об­ щую матрицу коэффициентов и отличающихся правыми частямн.Та-

кую задачу решает СП-120:

C n -l2 0 lfi/t,llt N ,B / t ! ,M j I

 

Здесь Д - идентификатор двумерного массива

коэффициентов

при неизвестных

. Эти коэффициенты можно расположить построч­

но в одномерном

массиве,

тогда в скобках

запишется A/I/;

N

- переменная целого

типа, задающая порядок системы (чис­

ло

уравнений, равное числу неизвестных);

В - идентификатор

одномерного массива, в котором последовательно записаны пра­

вые части решаемых систем. Можно образовать двумерный массив, в котором правые части систем будут строчками. Тогда в скоб­

ках

пишется В /1,1/;

М - переменная целого типа,

задающая

число

правых частей.

 

 

т

 

 

 

 

 

После выполнения СП решения

систем

располагаются в

массиве В .

Первоначальное

содержимое

массивов А и В

не сохра­

няется.

 

 

п (n +mj£. 807В

 

 

 

Ограничение на порядок

 

 

 

 

 

Ш. Операции-над матрицами

 

 

 

I .

Умножение квадратных матриц

 

 

 

 

 

 

сл ~ ю г (я /< , //, B ji, 1 /,

c h i ,

’» ')

i

 

А и В

- идентификаторы доходных матриц порядка л s

63 ( ft

строк

и я

столбцов);

п -

целое

чдоло

(пишется в кавычках);

С -

вдентификатор рабочего

массива,

состоящего из л

элемен­

тов

(массив С должен

быть описан

до

обращения к СП при помо­

щи оператора МАССИЗ).

 

 

 

 

 

 

 

 

После

выполнения СП произведение

матриц

располагается в

96

массиве В . Первоначальное содержимое массивов А и В не сохра­ няется.

2. Умножение прямоугольной матрицы на транспонированную

СП~ЮЗ(я/1, //, С/f/, т ; V ) I

А - идентификатор исходной прямоугольной матрицы размерности тхп ( -строк, п. -столбцов); / п и л - целые числа

(пишутся в кавычках); С - рабочий массив длины

Этот массив должен быть описан до обращения к СП при поющи оператора МАССИВ.

После выполнения СП элементы симметричной матрицы резуль­ тата порядка m расположены построчно верхним треугольни­ ком в массиве С. Содержимое массива А не сохраняется.

3 . Умножение прямоугольных матриц

 

 

 

 

сп~юч(я/и/} m'

'n't e>/i,i

/

ilj

х

 

А и В

- идентификаторы исходных матриц размерностей m x n

и

п х р

соответственно; m ,n ,p

- целые числа (пишутся в

ка­

вычках); С - рабочий массив размерности

m xp

. Этот массив

должен быть описан до обращения к СП при помощи оператора

 

МАСС ИЗ. Можно ввести в

качестве

С

и одномерный массив тпр .

Тогда в скобках запишется С/1/.

После выполнения СП элементы искомой матрицы распсложен_

построчно в массиве С. Содержимое массивов А и 3 не сохра­ няется.

4 . Вычисление определителя

Определитель порядка Я - 89 может быть вычислен различ­ ными способами, например, методом Гаусса с выбором главного элемента по всему определителю (СП-107) и методом перекрест­ ного умножения (СП-110).

Обращения имеют вид:

СП^ 107(Я/{, j f N, с) К

 

сп ~ т (я /щ

/V,

с / 1

 

Здесь А

- идентификатор массива, в

котором построчно

раз­

мещены элементы определителя; N

-

переменная целого

типа,

задающая порядок определителя п

(чисто строк, равное

числу

столбцов,

гг 4 S 3 ) ; С - идентификатор значения опредатгу»еля.

97

После выполнения СП содержимое массива А не сохраняется.

5 о Обращение матрицы Обращение матрицы монет быть получено различными спосо­

бами, например, методом Ершова:

 

 

С Л ^ .112(й

i j , n) l

 

 

 

 

 

 

Здесь

A -

идентификатор исходной матрицы; Л

» переменная це­

лого типа,

задашцая

порядок матрицы П

( п й

9 0 ).

 

 

 

После выполнения

СП элементы обратной матрицы

располо­

жены построчно в массиве А, а элементы исходной

матрацы

 

не

сохраняются. Если один из главных миноров матрицы равен

 

0 ,

происходит

контрольный останов.

 

 

 

 

 

 

Для обращения симметричной матрицы удобнее

пользоваться

СП" Ш :

С П ^ Н з ( й /1 /} Ф / / п ’} I

 

 

 

 

 

Здесь

А -

вдентафшсатор массива, в котором размещаются

 

по­

строчно верхним треугольником элементы доходной матрицы

 

по­

рядка

n

( п й 1 2 5 ).

Длина массива А равна

^ »

(п + 1 )

эле­

ментам.

 

 

 

 

 

 

 

 

 

 

 

С -

идентификатор рабочего массива из я

элементов

 

(этот

массив до обращения к СП должен быть описан при помощи

оператора MACCIB).

 

 

 

 

 

 

 

 

 

 

п -

целое число, равное порядку исходной матрицы

(пи­

шется в кавычках).

 

 

 

 

 

 

 

 

 

После выполнения СП элементы обратной матрицы расположе­

ны в

массиве А.

 

 

 

 

 

 

 

 

 

6.

Нахождение собственных значений и собственных

векто

ров матрицы

 

 

 

 

 

 

 

 

 

Собственные значения и собственные векторы

симметричной

матрицы могут быть найдены методом вращения при

 

помощи

СП-127.

 

 

 

 

 

 

 

 

 

 

Элементы доходной симметричной матрицы

размещаются по­

строчно верхним треугольником в массиве

А. Для результатов

вычислений выделяются рабочие массивы 3

н С

(эти

массивы

должны быть описаны до обращения к СП оператором

МАССИЗ

) .

Длины массивов:

.

 

 

 

 

 

 

 

 

С -/1а;

98

 

 

 

 

где п

порядок исходной симметричной матрицы

^ 7 1 ;.

Обращение имеет ввд :

 

 

 

 

СП

/ 2 7 ( А И I, В 111, C I 1 I , ’ п%Е)Х

Здесь п

- целое число, пишется в кавычках, Е

-

идентифи­

катор относительной

погрешности вычислений.

 

 

После выполнения СП собственные значения находятся в пер­

вых ячейках массива В , а собственные векторы расположены по­

строчно в

массиве С. Первоначальное оодержимое массива А не

сохраняется.

 

Если вместо С/1/ записать 0, то вычисляются только

соб­

ственные

значения. В этом случае порядок матрицы может

быть

больше: а & 123.

 

1У.

Интегрирование обыкновенных дифференциальных

 

 

уравнений и систем

 

Так как одно дифференциальное уравнение является частным

случаем

системы, то рассматриваются различные способы

ин­

тегрирования систем дифференциальных уравнений первого

по­

рядка вида

 

 

du.

 

с начальными условиями

Одним из наиболее удобных дея реализации на ЭфМ являет­

ся метод Рунге-Кутта решения систем указанного вида.

 

СП-62 интегрирует систему методом Fyere-Кутта с

 

автома­

тическим выбором шага;

СП-335 - методом типа FyHre-Кутта пя­

того оэрядка с контролем шага интегрирования.

В

последней

программе реализован алгоритм, позволяющий сократить

время

решения задачи по сравнению с СП-62.

 

 

 

 

X

, и

В обеих рассматриваемых подпрограммах значения

у0Г: размещаются в массиве А длины ( a t

/

) .

Число

уравнений

задается

переменной целого типа /V

;

/

-

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

значения аргумента х ,

при котором требуется

получить реше­

ние системы;

£ - идентификатор требуемой точности

вычисле­

ний.

 

 

 

 

 

С и Г . Дли­

Для действия СП выделяются рабочие массивы

 

 

 

равна 4 ( n + i

) для СП-62 и 5

 

 

S9

на массива С

(«•*■/) -

для

СП-335.

Длина массива F

в

обеих подпрограммах -

(я■'■•'О.Мас­

сивы С и

f

 

должны быть описаны до обращения к СП при помощи

оператора МАССИЗ.

 

 

 

 

 

 

М -

метка подпрограммы вычисления правых частей

уравне­

ний, т .е .

функций f L

(о с ,

у , , уг , . . . уп )

. В

подпрограмме

значения х )

у п ■■■/ у п

являются соответствующими элементами

массива А,

а

полученные

значения функций ^

записываются в

массив

F

в

следующем порядке:

 

 

 

 

 

F U I - 1 ,

 

 

 

 

 

 

 

У**

 

 

 

 

 

 

 

F /n + ll = fn( x ,y t , . . . , y n) .

 

 

 

 

Обращения к СП имеют ввд :

l

 

 

 

С Л ..6 2/Я ///, N, С\I/, Fjtj ,М,Х,Е]

 

 

 

СП^ЗзфЩ , N, Cjl/, ГЩ, M,X, Ej

I

 

 

 

После выполнения СП аргумент х » при котором получено

решение,является первым элементом массива А,

а найденное ре­

шение системы yt (х ) } . . . , y n( x j

расположено в

массиве А

начиная со 2-го элемента;

 

 

 

 

 

ш X

 

 

 

 

 

= у / * ) з

 

 

 

 

R М / “ уп (х )-

 

 

 

 

Если при к-м приближении шаг интегрирования п =

,

 

 

 

к

2 К ~

т . е . требуемая точность не достигается, то

происходи? конт­

рольный останов.

 

 

 

 

В подпрограмме вычислений правых частей

системы в

СП-335

константа в

F i l l не засылается.

 

 

 

 

У.

Преобразование формы представления чисел

 

 

Как уже

говорилось в ® I , в

автокодрвых

программах

и с-

юльзуются как числа и переменные целого типа, так

и числа и

переменные действительного типа.

Иногда в процессе

решения

задачи нужно перевести число, введенное как целое,

в

дейст­

вительное или совершить обратное

преобразование.

 

 

Соседние файлы в папке книги из ГПНТБ