Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной...

14
Информатика Лекция 8 Матрицы (типы и структуры данных)

Upload: others

Post on 08-Aug-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Информатика Лекция 8

Матрицы (типы и структуры данных)

Page 2: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Определение

Матрица – прямоугольная таблица, состоящая из m-строк и n-столбцов, элементы которой aik принадлежат некоторому множеству (одно для всех aik) i=1..m, k=1..n

||aik|| Типы матриц: ◦ Целочисленная ◦ Действительных чисел ◦ Двоичная ◦ Символьных строк и т. д.

Если m = n, то матрица называется квадратной матрицей порядка m

Кузнецов И.Р. 2

Page 3: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Квадратные матрицы

Главная диагональ квадратной матрицы – это вектор (a11, a22, … , ann)

Квадратная матрица порядка n называется единичной матрицей, если все элементы ее главной диагонали равны 1, а все элементы вне этой диагонали равны 0.

Нулевая матрица – это матрица, все элементы которой равны 0.

След квадратной матрицы – сумма элементов, стоящих на главной диагонали

Кузнецов И.Р. 3

Page 4: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Примеры матриц

Симметричной называют матрицу, элементы которой, расположенные симметрично по отношению к главной диагонали, равны между собой aik = aki , где i, k = 1..n

Кососимметричной называют матрицу, элементы которой, расположенные симметрично по отношению к главной диагонали, равны по величине и противоположны по знаку aik = -aki , где i, k = 1..n, причем aii = 0 , где i = 1..n

Диагональной называется матрица, все элементы которой равны нулю, кроме тех, что расположены на главной диагонали aik = 0, если i ≠ k, и aik ≠ 0, если i = k, где i, k = 1..n

Кузнецов И.Р. 4

Page 5: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Алгебра матриц

Сумма cik = aik + bik , i=1..m, k=1..n

Разность

cik = aik - bik , i=1..m, k=1..n

Произведение матриц (для прямоугольных матриц число столбцов матрицы А должно равняться числу строк матрицы В) cik = ai1b1k + ai2b2k + … + ainbnk, i=1..m, k=1..n

(умножение матриц некоммутативно)

Для единичной матрицы: АЕ = ЕА = А

Кузнецов И.Р. 5

Page 6: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Конструктор и селектор матриц

Для конструктора используется регулярный тип – двумерный массив T1 – тип строки (упорядоченный, дискретный)

T2 – тип столбца (упорядоченный, дискретный)

T3 – тип компонент матрицы

Селектор

инд.выр. 1 – правило вычисления номера строки инд.выр. 2 – правило вычисления номера столбца матрицы

Кузнецов И.Р. 6

type имя [T1, Т2] ; = array of T3

имя индексное

выражение 1 ] [

индексное

выражение 2 ,

Page 7: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Пример Дана прямоугольная матрица А, имеющая m-строк

(i=1..m) и n-столбцов (k=1..n).

Пусть m1 N – максимальное число строк матрицы А (m1 = 13) n1 N – максимальное число столбцов матрицы А (n1 = 31)

m, n N – текущие значения числа строк и столбцов матрицы А (1< m < m1; 1< n < n1)

Конструктор матрицы – const m1 = 13; n1 = 31; type index_1 = 1..m1; index_2 = 1..n1; matrix = array [index_1, index_2] of real; var m, i: index_1; n, j: index_2; A: matrix;

Кузнецов И.Р. 7

Page 8: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Бином Ньютона

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

Примеры: (a + b) = a3 + 3a2b + 3ab2 + b3 (1 + x) = 1 + 6x + 15x2 + 20x3 + 15x4 + 6x5 + x6

◦ Расчет коэффициентов разложения

Кузнецов И.Р. 8

Page 9: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Треугольник Паскаля

Таблица чисел, являющихся биномиальными коэффициентами

Кузнецов И.Р. 9

Page 10: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Первый уровень алгоритма

Кузнецов И.Р.

10

Ввод номера строки

Раскроем блок

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

n

Обнуление массива

Вывод коэффициентов

Расчет коэффициентов

c = (c0, c1, c2, …, cn), причем c0 = 1

c[i] = c[i-1] + c[i];

Вычисление n-й строки треугольника Паскаля

Page 11: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Кузнецов И.Р. 11

Расчет коэффициентов

строки с номером n

i ≥ 1

j ≤n

нет

да

c[i] = c[i-1] + c[i]

j=1

да

нет

j = j + 1 i = j

i = i - 1

Page 12: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Постановка задачи для ЭВМ

Зададим максимальное число элементов вектора c n1 N, n1=1000

i, j, n N – натуральные,

0 ≤ i ≤ n; 1 ≤ j ≤ n;

c – массив целого типа (регулярный тип)

также описываются форматы ввода-вывода всех данных (зависят от используемого языка программирования)

Кузнецов И.Р. 12

Page 13: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Текст программы (C++) #include <stdio.h>

#define N 1000

long c[N];

int main ()

{ long n, i, j;

scanf ("%ld",&n);

for( i = 1; i <= n; i++) c[i] = 0;

c[0] = 1;

for( j = 1; j <= n; j++)

for( i = j; i >= 1; i--)

c[i] = c[i-1] + c[i];

for( i = 0; i <= n; i++) printf ("%ld ", c[i]);

return 0;

}

Кузнецов И.Р. 13

Page 14: Лекция 8 · 2014-10-20 · Информатика Лекция 8 ... главной диагонали равны 1, а все элементы вне этой диагонали

Цикл лекций подготовлен в 2013/2014уч. году

Кузнецовым Игорем Ростиславовичем, доцентом кафедры радиоэлектронных средств Санкт-Петербургского Государственного электротехнического университета «ЛЭТИ»

Прочитан в дисциплине «Информатика»

© Кузнецов И.Р.

14

Кузнецов И.Р.