Матрицы и алгебраические действия над ними с точки зрения информатики - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1страница 2
Похожие работы
Название работы Кол-во страниц Размер
Матрицы и действия над ними 1 41.38kb.
Программа курса модуль I. Линейная алгебра Тема Матрицы и действия... 1 278.94kb.
Урок по рассказу Леонида Андреева «Ангелочек». Цели урока. Познакомить... 1 79.82kb.
Лекция № Матрицы и действия над ними 1 105.16kb.
Решение систем трех линейных уравнений. Матрицы и действия над ними 1 78.37kb.
Решение систем трех линейных уравнений. Матрицы и действия над ними 1 48.28kb.
План занятий по высшей математике 1 11.74kb.
План занятий по высшей математике 1 14.41kb.
А. А. Красилов роль истины для человека велика 1 316.44kb.
Задание №1 (а); (б) (выполнить действия) 1 85.13kb.
Нечеткие последовательности, нечеткие прямоугольные матрицы, нечеткие... 1 20.05kb.
Методические указания к курсу «Элементы дискретной математики и биоинформатики» 3 385.63kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Матрицы и алгебраические действия над ними с точки зрения информатики - страница №1/2



Министерство Просвещения Республики Молдова

КИШИНЕВСКИЙ ТРАНСПОРТНЫЙ КОЛЛЕДЖ

Кафедра Точных Наук

Методическая разработка

по математике и информатике

на тему:

«Матрицы и алгебраические действия над ними

с точки зрения информатики»
Разработал преподаватель

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

Павлов Андрей

Confirmat

la şedinţa catedrei

Disciplini Reale

din_______2010

Şefa catedrei

___________/V.Candu

КИШИНЕВ

2011

Содержание



Введение

2

§1. Матрица – различные определения.

3

§2. Матрицы в математике

2.1 Определение матрицы и их виды.

2.2 Алгебраические операции над матрицами.


6

6

8



§3. Матрицы в информатике.

3.1 Определение матриц с точки зрения

программирования.

3.2 Программы, реализующие алгебраические действия

над матрицами.



12

12
15



§4. Использование специализированных

математических пакетов для работы с матрицами.


4.1 Использование MathCAD при работе с матрицами.

4.2 Встроенные функции MS Excel для умножения

матриц. Некоторые задачи экономики.

4.3 Калькулятор для умножения матриц.




22
22

24
28



Заключение

29

Литература

30

Интернет-ресурсы

31

Программное обеспечение

31

Введение

В последнее время матрицы, как математический объект, стали играть немаловажную роль в различных науках. Их уникальность в том, что они позволяют оперировать не одной цифрой, числом или группой чисел, а целыми массивами, которые могут описывать данные различной природы.

Сегодня без матриц немыслима трёхмерная компьютерная графика, в которой необходимо приводить в действие сотни и тысячи объектов. В аналитической экономике матрицы также играют немаловажную роль при решении некоторых финансовых задач. Физика, астрономия, биология, химия, социология и множество других наук имеют свои понятии матриц и оперируют с ними.

В работе с матрицами есть и свои интересы, и свои трудности. Конечно, при умножении матрицы 22 на подобную легко вычислить результат. А если даны две матрицы размерностью 5050? Можно вычислить, хотя процесс займет порядочную уйму времени. В таких случаях на помощь приходят программисты с их программными и техническими средствами.


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

Считаю также, что данная работа должна заинтересовать как учителей математики, так и учителей информатики. Так как в данной работе описывается математическая база и постановка её на компьютере.



§1. Матрица – различные определения.
Само понятие матрицы является очень древним, восходящем к античной древности. До сих пор ученые лингвисты спорят матрица – слово, пришедшее из греческой или латинской лексики. Но так или иначе, все сходятся в одном, что матрица (в оригинале matrix) толкуется как «первопричина», «начало начал».

В русский язык слово матрица пришло из английского и имеет ряд следующих переводов (в зависимости от словарей):

matrix [ˊmeɪtrɪks]

1) спец. ма́трица; фо́рма

2) биол. межкле́точное вещество́ тка́ни

3) анат. ма́тка

4) геол. матери́нская поро́да; цементи́рующая среда́

5) стр. раство́р, вя́жущее вещество́

Если заглянуть в словари различных наук, то можно найти следующие определения понятия матрица:


  • Матрица (искусство и техника) — образец, модель, штамп, шаблон, форма, инструмент в серийном производстве объектов искусства и техники.

  • Матрица (диск) — название специального диска, служащий образцом для создания дисков (CD, DVD и др.) с записью (музыки, фильмов и т.п.) при их серийном или массовом производстве.

  • Матрица (издательское дело) — вогнутая часть формы, в которой пластическое тело формуется давлением, служащее типографским шрифтом.

  • Матричная киноплёнка (в плёночной фотографии и кинематографе) — рельефное фотографическое изображение, получаемое в желатиновом слое специального фотоматериала.

  • Матрица (математика)— система элементов aij, расположенных в виде прямоугольной таблицы.

  • Матрица (программирование) в программировании — двумерный индексный массив.

  • Матрица (электроника) — набор вертикальных Y и горизонтальных (условно) X линий (проводников), с возможностью замыкания в точках их пересечений, выводы которых подключены к выводам контроллера, который осуществляет их периодический опрос. Замыкание (скажем, при нажатии) какой-либо линии X на линию Y означает подачу команды контроллеру на исполнение. Применяется для экономии выводов контроллеров, используется в основном в различных клавиатурах.

  • Матрица (экономика) в экономике — таблицы, предназначенные для диагностики состояния.

В следующих параграфах мы будем рассматривать матрицы в контексте математики и информатики.



§2. Матрицы в математике.
Понятие матрицы впервые появилось в середине XIX века в работах Уильяма Гамильтона и Артура Кэли. Фундаментальные результаты в теории матриц принадлежат Вейерштрассу, Жордану, Фробениусу. Термин «матрица» ввел Джеймс Сильвестр в 1850 г., под которой понималась некоторая таблица чисел.
2.1 Определение матрицы и их виды.

Матрицей A размера nm называется совокупность n * m чисел, расположенных в виде таблицы, состоящей из n строк и m столбцов.




   Краткие обозначения матриц:

A = ( a i , j )  A = [ a i , j ] ( i = 1 , 2 , ... , n; j = 1 , 2 , ... m )

Элемент матрицы a i , j - число, расположенное в i-й строке и j-ом столбце.

Размерность матрицы определяется числом строк и столбцов, так если у матрицы две строки и три столбца, то мы имеем дело с матрицей два на три.
   Если у матрицы число строк и столбцов одинаково ( n = m ), то такая матрица называется квадратной.
Типы квадратных матриц.

  Диагональная (все элементы матрицы за исключением главной диагонали равны нулю):



D = diag ( d1 , d2 , ... , dn ) =

  Единичная (элементы главной диагонали равны единице, все остальные равны нулю):



E = I =

  Верхняя треугольная (все элементы находящиеся ниже главной диагонали равны нулю):



  Нижняя треугольная (все элементы находящиеся выше главной диагонали равны нулю):



  Нулевая матрица О (матрица, все элементы которой равны нулю):



  Матрица-строка (вектор-строка) - матрица размером 1 x m



A = [a1, a2, ... , am]

  Матрица-столбец (вектор-столбец) - матрица размером n x 1:



  Симметричная – квадратная матрица у которой элементы, симметричные относительно главной диагонали равны, т.е. i , j = 1, 2, ... , n a i , j = a j , i



2.2 Алгебраические операции над матрицами.

   


Пусть дана матрица

определитель данной матрицы равен



    Матрица A называется невырожденной (неособой), если DA 0.

Если же DA = 0, то матрица A - особая (вырожденная).
    Матрица

называется квадратной матрицей второго порядка, а матрица



- квадратной матрицей третьего порядка.


    Для упрощения выкладок определения будут даваться для матриц третьего порядка.
    Если элементы квадратной матрицы удовлетворяют условию amn = anm, то матрица называется симметрической.
   Две матрицы

считаются равными ( A = B ) если равны их соответственные элементы, т.е. когда anm = bnm ( m = 1, 2, 3; n = 1, 2, 3 ).


   

Произведением числа m на матрицу A называется матрица, определяемая равенством



Пример: Дано число а=2 и матрица . Требуется перемножить данное число и матрицу.

Решение: Новая матрица С получится, исходя из формулы аВ, т.е.


Суммой двух матриц A и B называется матрица, определяемая равенством



Пример: Пусть заданы две матрицы и . Требуется найти сумму заданных матриц.

Решение: Новая матрица С получится, исходя из формулы сi,j=ai,j+bi,j, где ai,j А, bi,j В, т.е.

   


   
Произведение двух матриц A и B обозначается символом AB и определяется равенством



т.е. элемент матрицы-произведения, стоящий в i-й строке и j-м столбце, равен сумме произведений соответствующих элементов i-й строки матрицы A и j-го столбца матрицы B.



Произведение матриц АВ имеет смысл только тогда, когда число столбцов матрицы А равно числу строк матрицы В. В итоге получается матрица С, у которой чис­ло строк совпадает с числом строк матрицы А, а число столбцов с числом столбцов матрицы В.
Пример: Матрицу можно умножить на матрицу , так как количество столбцов первой матрицы совпадает с числом строк второй матрицы.

   
По отношению к произведению двух матриц переместительный закон не выполняется:



ABBA.


Пример: Пусть требуется перемножить две матрицы

и .

Покажем также, что ABBA.


 Решение: Исходя из определения умножения двух матриц получим:



Таким образом, исходя из сравнения элементов двух результирующих матриц, можно заключить, что произведение матриц АВ отличается от произведения ВА.


   Матрица-столбец имеет вид:

   Произведение AX определяется равенством



Это означает, что матрицу можно умножать и на вектор. Этот факт широко применяется при решении систем линейных уравнений.



§3. Матрицы в информатике.
Так как матрицы в научно-технической жизни используются широко, то для ускорения работы с ними были разработаны компьютерные алгоритмы, которые реализуются по средствам вычислительной техники. В самом же мире программирования матрицы широко используются в трёхмерном моделировании и в системах слежения за объектами (так называемые службы GPS).

3.1 Определение матриц с точки зрения программирования.

В информатике матрицы зачастую называют массивами. Различают одномерные массивы, содержащие элементы в одной строке и именуемые вектором, двумерные массивы, элементы которых располагаются по строкам и столбцам, которые и называются матрицами, и многомерные массивы сложной структуры.



Массивы можно рассматривать как формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое. К необходимости применения массивов мы приходим всякий раз, когда требуется связать и использовать целый ряд родственных величин. Например, результаты многократных замеров температуры воздуха в течение года удобно рассматривать как совокупность вещественных чисел, объединенных в один сложный объект - массив измерений.

При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов. Структура имени массива следующая



<имя массива> : array [<диапазон(ы) индексов>] of <тип элементов>;

Например:



Var

A:array [1..10] of intefer;

B:array [1..3,1..3] of char;
Как видим, при описании массива используются зарезервированные слова ARRAY и OF (массив, из). За словом ARRAY в квадратных скобках указывается тип-диапазон, с помощью которого компилятор определяет общее число элементов массива. Тип-диапазон задается левой и правой границами изменения индекса массива, так что массив А состоит из 10 элементов, массив В - из двух диапозонов каждый из которых содержит по три значения. За словом OF указывается тип элементов, образующих массив.

Доступ к каждому элементу массива в программе осуществляется с помощью индекса - целого числа (точнее, выражения порядкового типа, см. гл.4), служащего своеобразным именем элемента в массиве (если левая граница типа-диапазона равна 1, индекс элемента совпадает с его порядковым номером). При упоминании в программе любого элемента массива сразу за именем массива должен следовать индекс элемента в квадратных скобках, например:



var

b: array [0..40] of Char;

begin

b[17] := ' F ' ;

end.

В правильно составленной программе индекс не должен выходить за пределы, определенные типом-диапазоном. Например, можно использовать элементы В[38], но нельзя В[41].

Задание значений переменной типа массив может осуществляться с клавиатуры, путем генерирования случайным образом либо иным способом. Когда значения элементов задаются с клавиатуры или генерируются случайным образом, необходима организация цикла, в котором последовательно происходит обращение к каждому элементу массива. Вывод значений элементов массива на экран или в файл также происходит в цикле.

При написании программ необходимо следить за тем, чтобы значения индексов не превышали границ, указанных при объявлении массива, так как выход индекса за границы массива приводит к сбою в работе программы. Контроль значений индексов массивов можно организовать при помощи директивы компилятора {$R+}, которая приводит к проверке всех индексных выражений на соответствие их значений диапазону индекса.

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

Объявление двумерного массива можно осуществлять двумя способами.

Первый предполагает объявление одномерного массива, а затем использование этого типа для объявления типа-массива массивов:

Type mas = array[1..10] of integer;

matr = array[1..5] of mas;

Var a: matr;

Однако проще сразу объявить тип-массив, описывающий матрицу, состоящую из 5 строк и 10 столбцов:



Type matr = array[1..5,1..10] of integer;

Var a: matr;

Доступ к элементам двумерного массива также может осуществляться двумя способами:

a[[1],[1]] или гораздо проще a[1,1]

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

В памяти элементы матрицы располагаются последовательно:

a[1,1], a[1,2],…, a[1,10], a[2,1], a[2,2],…, a[5,10]

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

Для организации доступа последовательно ко всем элементам матрицы организуются два цикла, причем порядок «вложения» циклов определяется тем, как осуществляется перебор элементов: по столбцам или по строкам. Чаще используется проход по матрице по строкам, т. е. сначала в первой строке перебираются элементы всех столбцов, затем – во второй строке и т. д. В этом случае «внешним» будет цикл по строкам (т. е. по индексу i), а вложенным – цикл

по столбцам (т. е. по j). Ниже представлен пример заполнения матрицы значениями, вводимыми с клавиатуры, причем элементы строк матрицы могут вводиться в строчку через пробел, а для ввода значений новой строки надо нажать клавишу

for i:=1 to 5 do

begin

for j:=1 to 10 do

read(a[i,j]);

readln

end;


    1. Программы, реализующие алгебраические действия над

матрицами.
Так как в основе программного определения матрицы лежит математическое, то алгоритм написания программ, выражающих действия над матрицами, также имеет математическую базу. Рассмотрим программы, реали­зующие действия над матрицами из пункта 2.2. Все программы будем записывать на языке программирования Турбо Паскаль, так как он является самым распространенным языком изучения в школах.

Умножение числа на матрицу.
Алгоритм:

  1. Введем все данные;

  2. Запишем блок, реализующий умножение числа на матрицу. Т. е. если у нас есть двумерный массив А и его элементы необходимо умножить на некоторое заданное число k, то мы берем новый массив B с элементами

b[i,j]=k*a[i,j];

  1. Выведем результат.

Листинг программы

Uses crt;

var

a,b:array [1..10,1..10] of real;

{задаем двумерные массивы максимального размера 10Х10, элементы которого действительные числа}



k: real; {действительное число для умножения}

n,m:integer; {число строк и столбцов в массиве}

i,j:integer; {счетчики для обработки строк и столбцов}

begin clrscr;

write('введите число k= '); readln(k);

writeln ('введите размерность матрицы n*m');

write('введите число строк n<10: ');readln(n);

write('введите число столбцов m<10: ');readln(m);

writeln ('введите элементы матрицы ',n,'*',m);

for i:=1 to n do

begin writeln ;

for j:=1 to m do read(a[i,j]);

end;

{вывод матрицы А на экран}



writeln ('------Matrix A------');

for i:=1 to n do

begin writeln;

for j:=1 to m do write (a[i,j]:6:2);

end;

{операция умножения числа k на матрицу А}



for i:=1 to n do

for j:=1 to m do

b[i,j]:=k*a[i,j]; writeln;

{вывод матрицы B на экран}



writeln ('------Matrix B------');

for i:=1 to n do

begin writeln;

for j:=1 to m do write(b[i,j]:6:2);

end;

readkey;

end.

Результаты


---Matrix A---
1.00 2.00

3.00 4.00

---Matrix B---
3.00 6.00

9.00 12.00
введите число k=3

введите размерность матрицы n*m

введите число строк n<10: 2

введите число столбцов m<10:2

введите элементы матрицы 2*2

1 2

3 4

Сложение матриц

Алгоритм:

  1. Введем все данные;

  2. Запишем блок, реализующий сложение матриц. Т. е. если у нас есть двумерные массивы А и В (причем размерности матриц должны совпадать), элементы которых нам надо сложить, то мы берем новый массив С с элементами

c[i,j]= b[i,j]+a[i,j];

  1. Выведем результат.

Листинг программы

Uses crt;

var

a, b, c:array [1..10,1..10] of real;

{задаем двумерные массивы максимального размера 10Х10, элементы которого действительные числа}



n, m:integer; {число строк и столбцов в массиве}

i, j:integer; {счетчики для обработки строк и столбцов}

begin clrscr;

writeln ('введите размерность матрицы n*m');

write('введите число строк n<10: ');readln(n);

write('введите число столбцов m<10: ');readln(m);

writeln ('введите элементы матрицы А ',n,'*',m); {ввод матрицы А}

for i:=1 to n do

begin writeln ;

for j:=1 to m do

read(a[i,j]);

end;

writeln;

writeln ('введите элементы матрицы В ',n,'*',m); {ввод матрицы В}

for i:=1 to n do

begin writeln ;

for j:=1 to m do

read(b[i,j]);

end;writeln;

writeln ('------Matrix A------'); {вывод матрицы А на экран}

for i:=1 to n do

begin writeln;

for j:=1 to m do write (a[i,j]:6:2);

end;

writeln;

writeln ('------Matrix B------'); {вывод матрицы В на экран}

for i:=1 to n do

begin writeln;

for j:=1 to m do write (b[i,j]:6:2);

end;

{операция сложения двух массивов}



for i:=1 to n do

for j:=1 to m do

c[i,j]:=a[i,j]+b[i,j];

writeln;

writeln ('------Matrix C------'); {вывод матрицы С на экран}

for i:=1 to n do

begin writeln;

for j:=1 to m do write(c[i,j]:6:2);

end;

readkey;

end.
Результаты

введите размерность матрицы n*m

введите число строк n<10: 3

введите число столбцов m<10:3

введите элементы матрицы А 3*3

1 2 3

3 4 5

5 6 7

введите элементы матрицы В 3*3

2 3 0

0 -1 2

-2 6 -1


---Matrix A---
1.00 2.00 3.00

3.00 4.00 5.00

5.00 6.00 7.00

---Matrix B---
2.00 3.00 0.00

0.00 -1.00 2.00

-2.00 6.00 -1.00

---Matrix С---
3.00 5.00 3.00

3.00 3.00 7.00

3.00 12.00 6.00



Умножение матрицы на матрицу.
следующая страница >>