Расположение всех чисел ряда в порядке возрастания.
Программа имеет вид, показанный ниже. В одинарном цикле (строки 50 – 70) с помощью оператора READ из оператора DATA вводятся значения A(I) неупорядоченного числового ряда.
Начиная со строки 80, располагаются два цикла с параметрами J и I, причем второй цикл находится внутри первого (“вложен” в него). После заголовка внешнего цикла принимается начальное значение минимума 90 MIN(J)=10000.
Внутренний цикл (строки 100 – 120), состоит из заголовка и оператора конца, между которыми находится оператор условия 110 IF A(I)=< MIN(J) THEN MIN(J) =A(I).
Программа SORT (сортировка)
10 CLS
20 DIM A(20), MIN (20)
30 PRINT “РАСПОЛОЖЕНИЕ ЧИСЛОВОГО РЯДА В ПОРЯДКЕ ВОЗРАСТАНИЯ”
40 DATA 11, 48, 3, б, 21, 12, 36, 7, 56, 33, 41, 23, 40, 18, 41
50 FOR I=1 TO 15
60 READ A(I)
70 NEXT I
80 FOR J=1 TO 15
90 MIN(J)=10000
100 FOR I=1 TO 15
110 IF A(I) =< MIN(J) THEN MIN(J) =A(I): K=I
120 NEXT I
130 A(K)=10000
140 К1=2: К2 = (1+J*4)
150 LOCATE K1, K2: PRINT MIN(J)
160 NEXT J
Отличие сортировки по возрастанию от поисков минимума заключается в том, что минимум находится не один единственный раз, а 15 раз т. е. определяется MIN(J) – для каждого J - го значения параметра внешней серии циклов. После каждого прохождения внешнего цикла запоминается не только минимум, но и номер соответствующего значения исходного ряда. Это делается с помощью оператора K=I.
Для первого J-го цикла (как видно из оператора DATA) MIN(1)=3 и К=3. После окончания внутреннего цикла помещен оператор присваивания 130 А(К)=10000 (в данном случае А(3)=10000). Во всех следующих поисках минимума на третьем месте исходного ряда вместо 3 будет стоять 1000, поэтому 3 в качестве минимума более не повториться.
Для второго J-го цикла, внутренний цикл найдет, что MIN(2)=6. Номер этого значения (I = 4) с помощью оператора K=I. будет запомнен и использован для фактического устранения этого значения из рассмотрения (А(4)=10000)
Для третьего J-го цикла, будет найдено MIN(3)=7 (К=8) и таким образом продолжится построение упорядоченных по возрастанию значений исходного ряда, пока очередь не дойдет до последнего 15-го значения: MIN(15)=56
При выведении значений MIN(J) в цикле обычным порядком, эти значения будут располагаться одно под другим, что займет много места и неудобно для чтения. Поэтому для выведения использована строка 150, содержащая операторы LOCATE K1, K2: PRINT MIN(J). Оператор LOCATE K1, K2 перед печатанием значений MIN(J) устанавливает курсор на строке с номером К1 в позиции К2. При этом выше на строке 140 устанавливается, что К1= 2 (т. е. вторая сверху строка экрана). Символ же К2=(1+4*J) означает, что на указанной строке первое значение MIN(1) печатается на 5-й позиции (1+4*1=5), считая с левого края экрана, второе MIN(2) – на 9-й, третье – на 13-й и т. д. В итоге на экране появится:
РАСПОЛОЖЕНИЕ ЧИСЛОВОГО РЯДА В ПОРЯДКЕ ВОЗРАСТАНИЯ
3 6 7 11 12 18 21 23 33 36 40 41 41 48 56
Рекомендуемая литература: Осн. 1 с. 50-54
Контрольные вопросы
1 Как организовать суммирование ряда значений
2 Что означает оператор С=С+А(I)
3 Что делают с символом суммы до начала цикла сложения
4 Принцип нахождения минимального значения из ряда чисел
5 Что такое сортировка ряда чисел
6 Принцип осуществления сортировки
7 Сколько позиции занимает число на строке вывода сортировки
ЛЕКЦИЯ 14. Численные методы решения математических задач
Свойство компьютера выполнять огромное количество точных вычислений за минимальное время легло в основу численных методов решения математических задач. Это особые методы, отличные от обычных аналитических методов. В ряде случаев численные методы позволяют решить проблемы, которые с использованием аналитических методов являются принципиально неразрешимыми. Как правило, численные методы не связаны со сложными преобразованиями исходных функций с целью приведения их к наиболее удобному для подстановки числовых значений виду. Чаще всего эти методы основаны на простых и очевидных соотношениях, хотя и требующих большого числа вычислений.
Преимущество численных методов – это быстрота получения конкретного числового результата с любой заданной точностью. Их недостаток – затрудненность теоретического анализа изучаемых явлений. Рассмотрим несколько характерных случаев использования численных методов.
Вычисление определенного интеграла.
Как известно из курса математического анализа, для нахождения определенного интеграла от заданной функции вначале находят неопределенный интеграл или первообразную функцию, после чего осуществляют подстановку задаваемых пределов. Эта задача сравнительно легко решается только для простейших функций, в большинстве же случаев решение связано с затруднениями, а часто и вообще невозможно. Говорят, что интеграл “не берется”
Численный метод нахождения определенного интеграла основан на том, что его графическое отображение представляет собой площадь (рис 14.1), ограниченную сверху кривой интегрируемой функции, снизу – осью абсцисс, а справа и слева ординатами, проведенными через пределы интегрирования
Отрезок А - В на абсциссе разделен на некоторое число N (на рисунке 4) равных интервала Н, так, что
Н=(В-А)/N. (14.1)
Через концы отрезков проведены ординаты. Кроме того, ординаты также проведены через середины отрезков, на расстоянии Н/2 от их концов. Через середины отрезков также проведены ординаты. Через точки пересечения этих последних ординат с кривой функции f(x) между ординатами начал и концов отрезков проведены горизонтальные линии, которые вместе с ординатами образовали прямоугольники с одинаковыми основаниями. Высоты прямоугольников суть значения функции f(x) при значениях
, соответствующих серединам отрезков.

Рис. 14.1 Графическая интерпретация определенного интервала
А и В – пределы интегрирования; f(x) – кривая интегрируемой функции; Н – шаг изменения абсциссы x
Сумма площадей всех прямоугольников с некоторой ошибкой равна площади под кривой функции, т. е определенному интегралу
(14.2)
Ошибка связана с тем, что верхнее основание “столбиков” представляет собой прямую линию, а не кусок кривой функции. Очевидно, что ошибку можно сделать сколь угодно малой при уменьшении оснований прямоугольников Н за счет увеличения числа N (формула (14.1)).
Вычисление определенного интервала
Программа INTEGR
10 CLS
20 PRINT “ВЫЧИСЛЕНИЕ ИНТЕГРАЛА ГАУССА”
40 INPUT “Число шагов N”; N
50 INPUT “Пределы интегрирования A, B”; А, В
60 Н=(В-А)/N
70 IN=0
80 FOR I=0 TO (N-1)
90 X= A+H/2+ I*H
100 Y= 2.7182^(-(X^2/2))/(2*3.14159)^0.5
110 S= Y*H
120 IN=IN+S
130 NEXT I
140 PRINT ”IN”; PRINT USING “#####.#####; IN
На строке 40 вводится число шагов N, на которые необходимо разделить интервал от А до В. В следующей 50-й строке вводятся сами пределы интегрирования. В сроке 60 рассчитывается шаг Н, а в строке 70 обнуляется исходное значение суммы – в данном случае определенного интеграла INT.
Далее (строки 80–130) располагается цикл. В заголовке цикла указывается, что параметр цикла I принимает значения от 0 до N-1.
В следующем операторе (строка 90) устанавливаются значения Х, соответствующие серединам оснований прямоугольников (см. рис. 14.1). Так для 0-го цикла (I-0) последний член формулы X= A+H/2+ I*H обращается в нуль и тогда X= A+H/2 (что соответствует рисунку). Для 1-го цикла (I=1) X= A+H/2+ 1*H, т. е больше на величину Н шага; для 2-го X= A+H/2+ 2*H, и т. д. – до цикла номер N-1.
В строке 100 в исходную функцию для каждого цикла подставляется найденное указанным путем значение Х и вычисляется У, т. е высота прямоугольника. В строке 110 определяется площадь S каждого прямоугольника. Наконец в строке 120 площади всех прямоугольников суммируются, и вычисляется искомый определенный интеграл.
В таблице 14.1 демонстрируется зависимость точности вычисления определенного интеграла от числа N прямоугольников, на которые разбит интервал между пределами интегрирования.
Таблица 14.1 Точность вычисления интеграла в Гаусса зависимости от N
(для пределов интегрирования А = - 1; В = 1)
N | 2 | 3 | 10 | 30 | 100 | 1000 |
IN | 0.704132 | 0.691892 | 0.683498 | 0.682779 | 0.682698 | 0.682690 |
Из таблицы видно, что с ростом N величина интеграла уменьшается, причем с ростом от N =2 до N=3 изменяются десятые доли, с N=3 до N=10 – сотые доли, с N=10 до N=30 – тысячные, с N=30 до N=100 – десятитысячные, и с N=100 до N=1000 – только стотысячные доли. Поэтому, если, например результат должен выводиться с точностью до 3 цифровых знаков, то не следует принимать N более 10
К изложенному следует добавить, что проинтегрированная функция (строка 100) есть знаменитая функция нормального распределения Гаусса, интеграл от которой играет весьма важную роль в математической статистике. Первообразная от этой функции не существует, интегральная функция нормального распределения –“интеграл вероятности”– может быть рассчитана только численными методами.
Решение систем линейных уравнений.
Это часто встречающаяся и довольно трудоемкая задача, особенно при большом числе уравнений в системе.
Рассмотрим, как находят решение таких систем вручную. Сделаем это на несложном примере, используя метод Гаусса
2X – 5Y – 11Z – 8 = 0
3X + 12Y + Z+4 = 0
X – 2Y + 6Z - 7 = 0 (14.3)
Как известно, метод Гаусса состоит в поэтапном исключении неизвестных.
На первом этапе исключают X. Для этого делят коэффициенты в каждом уравнении на коэффициенты при Х (показано во 2-й преобразованной системе (14.3).
1X – 2.5 – 5.5Z – 4 = 0
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |


