страница 1страница 2
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Похожие работы
|
Матрицы и алгебраические действия над ними с точки зрения информатики - страница №2/2
АлгоритмЭлемент матрицы-результата, расположенный на I-й строке и J-м столбце, вычисляется так:
Листинг программы Uses CRT; Const Max=50; Var AA,BB,CC: array [1..Max,1..Max] of Double; {то есть место для матриц выделяем с запасом} ii,jj,kk,nn,mm,ll : integer; Summa: double; begin writeln ('Программа умножает матрицу A на матрицу B'); write('Введите число строк 1-й матрицы - A (<=50)-> ');readln(NN); write('Введите число столбцов 1-й матрицы - A (<=50)->'); readln(KK); write('Введите число столбцов 2-й матрицы - B (<=50)-> '); readln(MM); {Вспомним, что число столбцов матрицы А равно числу строк матрицы В} writeln('Введите 1-ю матрицу (A):'); for ii:=1 to nn do for jj:=1 to kk do begin write('Введите A[',ii,',',jj,'] --> '); readln(AA[ii,jj]); end; writeln('Введите 2-ю матрицу (B):'); for ii:=1 to kk do for jj:=1 to mm do begin write('Введите B[',ii,',',jj,'] --> '); readln(BB[ii,jj]); end; {Вычисляем элементы матрицы-результата} for ii:=1 to nn do for jj:=1 to mm do begin Summa:= 0; for ll:= 1 to kk do Summa:= Summa + AA[ii,ll]*BB[ll,jj]; CC[ii,jj] := Summa; end; {Выводим матрицу-результат:} writeln('---- Результат: -----'); for ii:=1 to nn do begin for jj:=1 to mm do write(CC[ii,jj]:8:2); writeln; end; readln; end. ---- Результат: ---- 7 3 2 2 3 2 29 50 2 4 6 1 * 2 6 = 20 57 1 1 4 5 1 4 9 49 0 5 Для умножения матрицы на вектор используют следующую программу. uses crt; var A:array[1..50,1..50] of real; b,Ab:array[1..50]of real;n,i,j:integer; begin clrscr; randomize; write('Vvedite razmernost n='); readln(n); writeln('Matrica A:'); for i:=1 to n do begin for j:=1 to n do begin A[i,j]:=random(10)+random-3; write(A[i,j]:6:2); end; writeln; end; writeln('Vector b:'); for i:=1 to n do begin if odd(i) then b[i]:=1/(i*i+2) {если нечетное} else if not odd(i) then b[i]:=1/i; {если четное} write(b[i]:6:2); end; writeln; writeln('Vector Ab:'); for i:=1 to n do begin Ab[i]:=0; for j:=1 to n do Ab[i]:=Ab[i]+A[i,j]*b[j]; {произведение матрицы на вектор} write(Ab[i]:6:2); end; readln end. §4. Использование специализированных математических пакетов для работы с матрицами. Итак, выше были рассмотрены программы которые реализуют действия над матрицами. Однако, одних программ для решения задач прикладного характера недостаточно. Ведь, не каждый из нас программист или обладатель программных компиляторов (как, то Турбо Паскаль или Си плюс). Но вот MS Excel или MathCAD найдется, если не у каждого, то у каждого второго точно. Я уже не говорю о всевозможных калькуляторах, которых в Интернете бесчисленное множество. Само собой не все программы показывают математический аппарат вычислений, а сразу выдают ответ. Но поверьте мне, что биологу или социологу и дела нет до расчетов им сразу необходим ответ. В этом параграфе мы рассмотрим некоторые программные средства в которые встроен матричный аппарат.
4.2 Встроенные функции MS Excel для умножения матриц. В MS Excel умножение матриц реализуется с помощью функции МУМНОЖ (в английской версии MMULT). Данная функция имеет следующую структуру: МУМНОЖ (массив1;массив2) где массив1, массив2 — перемножаемые массивы. Примечания.
где I — номер строки, а j — номер столбца.
Пример. Чтобы этот пример проще было понять, скопируйте его на пустой лист. Инструкции
Выделение примера в справке.
Примечание. Формулу в этом примере необходимо ввести как формулу массива. После копирования этого примера на пустой лист выделите диапазон A8:B9, начиная с ячейки, содержащей формулу. Нажмите клавишу F2, а затем нажмите клавиши CTRL+SHIFT+ENTER. Если формула не будет введена как формула массива, единственное значение будет равно 2. Ниже на рисунке представлен ещё один пример перемножения матриц: В затененных областях у нас находятся искомые матрицы, а в выделенной прямоугольной зоне матрица результат. Данный факт умножения матриц в MS Excel широко используется в экономике. С помощью матриц удобно записывать некоторые экономические зависимости. Например, таблица распределения ресурсов по отдельным отраслям экономики (усл. ед.):
может быть записана в компактной форме в виде матрицы распределения ресурсов по отраслям:
В данной записи, например, матричный элемент а11 = 5,3 показывает, сколько электроэнергии употребляет промышленность, а элемент а22 = 2,1 - сколько трудовых ресурсов потребляет сельское хозяйство. Рассмотрим несколько задач. Предприятие выпускает продукцию трех видов: P1, P2, P3 и использует сырье двух типов: S1 и S2. Нормы расхода сырья характеризуются матрицей:
где каждый элемент аij (i = 1,2,3; j = 1,2) показывает, сколько единиц сырья j-го типа расходуется на производство единицы продукции i-го вида. План выпуска продукции задан матрицей-строкой С = (100 80 130), стоимость единицы каждого типа сырья (ден. ед.) - матрицей столбцом:
Решение. Затраты 1-го сырья составляют S1 = 2 х 100 + 5 х 80 + 1 х 130 = 730 ед. и 2-го - S2 = 3 х 100 + 2 х 80 + 4 х 130 = 980 ед., поэтому матрица-строка затрат сырья S может быть записана как произведение:
Тогда общая стоимость сырья Q = 730 х 30 + 980 х 50 = 70900 ден. ед. может быть записана в матричном виде: Q = S x B = (CA)B = (70900). Общую стоимость сырья можно вычислить и в другом порядке: вначале вычислим матрицу стоимостей затрат сырья на единицу продукции, т.е. матрицу:
а затем общую стоимость сырья:
На этом примере мы убедились в выполнении ассоциативного закона произведения матриц: (СА)В = С(АВ). Задача 2. Предприятие производит продукцию трех видов и использует сырье двух типов. Нормы затрат сырья на единицу продукции каждого вида заданы матрицей:
Стоимость единицы сырья каждого типа задана матрицей B = (10 15). Каковы общие затраты предприятия на производство 100 единиц продукции первого вида, 200 единиц продукции второго вида и 150 единиц продукции третьего вида? Решение. Вычислим матрицу стоимостей затрат сырья на единицу продукции:
План выпуска продукции, очевидно, задан матрицей C = (100 200 150). Общие затрата предприятия составляют:
Ответ: 28000. 4.3 Калькулятор для умножения матриц. Ну, и пожалуй для самых ленивых, можно предложить калькулятор который производит умножение двух матриц. Причём, данная программа производит умножение двух матриц, каждая из которых может иметь размеры от 1х1 до 99х99. Данная программа является исполнительным файлом (.ехе) и поэтому не требует суперусловий от вашего компьютера или каких-либо дополнительных программных продуктов. Обратите внимание, что первые две строки данного калькулятора описывают имена столбцов матриц, а первый столбец номера строк. Остается только задать число строк и столбцов первой и второй матриц, ввести в необходимые ячейки элементы матриц и получить ответ, который появляется автоматически. Вот уж поистине рай для лентяев! Пока сегодня и незаметно бурное развитие матричного аппарата, но это не отрицает того факта, что в недалеком будущем эти сложные математические элементы по праву займут место среди первых. Расцвет трёхмерной анимации (и в частности 3D кино), развитие различных экономических отраслей на транскорпоративных уровнях, зарождение новых технических наук (кибертроника и робототехника) – всё это невозможно без изучения матричного анализа в купе с программированием. Что касается транспорта (в частности наземного), то здесь, в связи с бурным развитием навигационной техники (координаты которых представляются массивами), мы станем очевидцами расцвета беспилотных автомобилей, что на мой взгляд должно сделать движение более безопасным. Вам кажется это фантастикой? Но ведь когда-то в математике XIX века матрица Джеймса Сильвестра тоже была понятием из ряда вон выходящим. И несмотря на это его детище живёт и развивается до сих пор, помогая другим наукам. Литература.
Интернет-ресурсы
www.1september.ru/
festival.1september.ru
allmath.ru
journal.issep.rssi.ru/ Программное обеспечение
<< предыдущая страница |
|