Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2. ЦИКЛИЧЕСКАЯ СТРУКТУРА УПРАВЛЕНИЯ. МАССИВ КАК...doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

VI.2. Операции над матрицами

39. (Норма матрицы.) Вычислить норму квадратной матрицы A=(aij) n‑го порядка.

40. (Построение матриц.) Построить матрицы

а) б)

в)  г) 

д)

41. (Построение матриц.) Построить матрицы C=( ), , с элементами

  1. ;

  2. .

42. (Циркулянты.) По заданному вектору построить циркулянтную (n n)-матрицу A, у которой первая строка совпадает с a, а каждая последующая строка есть циклический сдвиг (влево) предыдущей строки.

43. (Вертикальная рекурентность, или матрицы, образованные числами Стирлинга snk и Snk первого и второго рода.) Построить (m m)-матрицы s=(snk) и S=(Snk), , , где snk=Snk=0 при n<k и

s00=S00=1; sn0=Sn0=0 для n>0;

sn+1,k=sn,k–1–nsnk, Sn+1,k=Sn,k–1+kSnk для n+1 k 1.

44. (Построение некоторых известных матриц.)

  1. Для заданного вещественного вектора (x1,…,xn) построить (n n)-матрицу Вандермонда W=(wij), где , i, j=1,2,…,n.

  2. Для заданных вещественных векторов (x1,…,xn) и (y1,…,yn) построить (n n)-матрицу Коши C=(cij), где cij=(xi+yj)–1, i, j=1,2,…,n.

  3. Построить целочисленную (n n)-матрицу Смита S=(sij), где sij=н.о.д.(i,j), i, j=1,2,…,n.

  4. Вычислить определители матриц W, C и S.

Указание: известно, что

;

;

,

где det A – определитель матрицы A, – функция Эйлера, определяемая как число целых чисел из отрезка [1,k], взаимно простых с k.

45. (Транспонирование матрицы.) Транспонировать заданную квадратную матрицу.

46. (Числа разбиений.) Построить целочисленную квадратную матрицу Q=(qij) порядка s, элементы которой определены следующим образом:

q1k=qk1=1 для всех k=1,2,…; qmm=qm,m–1+1 для всех m=2,3,…;

qmk=qmm при m<k; qmk=qm,k–1+qm–k,k при m>k.

Замечание. qmk есть число способов представления натурального m в виде суммы неупорядоченных натуральных слагаемых, каждое их которых не превосходит r. Например, q5,4=7, так как 5 = 4+1 = 3+2 = 3+1+1 = 2+2+1 = 2+1+1+1 = 1+1+1+1+1.

47. ("Упаковка" и "распаковка" трехдиагональных матриц.)

  1. Преобразовать матрицу

в вектор .

  1. Выполнить обратное преобразование.

  2. Преобразовать матрицу

в вектор .

  1. Выполнить обратное преобразование.

48. ("Упаковка" и "распаковка" треугольных матриц.)

  1. Преобразовать треугольную матрицу

в вектор .

  1. Выполнить обратное преобразование.

49. ("Упаковка" и "распаковка" симметричной матрицы.)

  1. По заданной симметричной (n n)-матрице A=(aij) построить вектор

.

  1. Выполнить обратное преобразование.

50. (Трехдиагональные, треугольные и симметричные матрицы.) Установить, является ли заданная матрица: а) трехдиагональной, б) треугольной, в) симметричной.

51. (Решение системы линейных уравнений.)

  1. Найти решение системы линейных уравнений

где , i=1,2,…,n.

  1. Найти решение системы линейных уравнений

используя метод Гаусса – метод последовательного исключения неизвестных.

52. (Итерационные методы решения системы линейных уравнений.) Найти решение системы линейных уравнений

(*)

используя итерационные методы Якоби и Гаусса-Зейделя.

Указание. В методе Якоби уравнения (*) переписываются в следующей форме:

(**)

Далее, взяв какое-нибудь начальное приближение для x-ов, мы получим из уравнения (**) новое приближение. Этот процесс продолжается до тех пор, пока разность между двумя последовательными приближениями по всем x-ам не станет меньше некоторого малого значения (т. е. , где и – соответственно предыдущее и последующее приближения xi, i=1,2,…,n). Метод Гаусса-Зейделя отличается от метода Якоби тем, что в нем всегда берется для каждого x последнее из полученных приближений. Так, при вычислении второго приближения x3 применяется не первые, а вторые приближения x1 и x2.

53. (Разреженные матрицы.) Разреженная (m n)-матрица A (т. е. матрица, большинство элементов которой равны нулю) может быть представлена тремя векторами, а именно: вектором b, в котором перечислены ненулевые элементы по строкам; вектором j, в котором перечислены номера столбцов для каждого элемента, включенного в b; и, наконец, вектором , где ik – суммарное число ненулевых элементов в строках с номерами 1,2,…,k–1 (таким образом, ik+1-ый элемент вектора b есть первый ненулевой элемент в k-ой строке матрицы A).

Пример. Пусть

.

Тогда b=(1,2,1,1,4,3); j=(2,3,3,1,5,1,4); i=(2,3,5).

  1. Построить уплотненное представление <b,j,i> для заданной матрицы A.

  2. Выполнить обратное преобразование от <b,j,i> к A.

  3. Найти значение элемента ast матрицы A, расположенного на пересечении s-ой строки и t-го столбца, по заданной пятерке <s,t,b,j,i>, где .

54. (Седловая точка.) Седловой точкой матрицы называется любой ее элемент, являющийся минимальным в своей строке и максимальным в своем столбце. Вычислить lA – число седловых точек матрицы A. (Например, для матриц

, , ,

имеем lA=0, lB=1, lC=2, lD=9.) Попутно вычислить координаты последней из найденных седловых точек (в предположении, что ).

55. (Кронекерово произведение матриц.) Вычислить – кронекерово произведение матриц A и B, определяемое так:

,

где

, ,

Матрица C имеет, таким образом, размер ms nt.

56. (Обычное умножение матриц. Метод Винограда. Возведение матриц в степень.)

  1. Даны (l m)-матрица A=(aij) и (m n)-матрица B=(bij). Вычислить C=AB – их произведение.

  2. Даны квадратные матрицы X=(xij) и Y=(yij) порядка 2n. Вычислить Z – произведение матриц X и Y по методу Винограда.

  3. Дана квадратная матрица G. Вычислить матрицу D=Gn=G G … G (n сомножителей).

Указания.

  1. Здесь C=(cij) – это (l n)-матрица с элементами

, i=1,…,l; k=1,…,n.

  1. В методе Винограда для вычисления скалярных произведений используется следующее соотношение:

,

где

, .

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

  1. Подумайте здесь об ускоренном методе вычисления Gn. Разработайте метод, аналогичный индийскому способу возведения в степень, рассмотренный в задаче I.1.9.

57. (Умножение булевых матриц.) Булева матрица составлена из элементов, принимающих значения true и false. При перемножении булевых матриц A=(aij) размера (k l) и B=(btr) размера (l m) получается булева матрица C=(cuv) размера (r m), элементы которой определяются следующим образом:

, (*)

где & и – соответственно конъюнкция и дизъюнкция

  1. Вычислить C=A B – произведение булевых матриц A и B.

  2. Модифицировать задание, используя в (*) вместо операцию (неэквивалентность), определяемую так: , если x=y, и , если x y. (Если обозначить true и false соответственно через 0 и 1, то есть сложение по mod 2.)

58. (Перемножение треугольных матриц, представленных в векторной форме.) При перемножении двух треугольных матриц получается также треугольная матрица. Вычислить произведение двух треугольных матриц, представленных в векторной форме, как в п. а) задачи 48. (Переход к квадратным матрицам запрещен!)

59. (Нулевые подматрицы.) В матрице, составленной из нулей и единиц, найти наибольшую (по числу элементов) подматрицу, целиком состоящую из нулей. (Как показывает следующий пример, решение, вообще говоря, неоднозначно:

.)

Оцените временную сложность Вашего алгоритма.

60. (Подматрица наибольшего веса.) Вес матрицы определим как сумму ее элементов. Для заданной матрицы найти ее подматрицу наибольшего веса. (Как и в задаче 59, решение здесь, вообще говоря, неоднозначно.)

Оцените временную сложность Вашего алгоритма.

61. (Определитель квадратной матрицы.)

  1. Вычислить определитель вещественной матрицы n-го порядка, приводя ее к треугольному виду.

  2. Модифицировать разработанный алгоритм для вычисления определителя целочисленной матрицы. (Здесь разрешается оперировать только с целыми числами.)

62. (Универсальная матрица.) Двоичная (2n2n)-матрица Un определяется рекурсивно:

; , n=2,3,…,

где – матрица, полученная из инвертированием элементов, т.е. заменой 0 на 1 и 1 на 0.

Построить матрицу U8. Длина строки матрицы U8 составляет 256 битов, или 32 байта. Поэтому для хранения матрицы U8 достаточно 256  32 = 8192 байта.

Замечание. Матрица Un используется в теории кодирования. Всякое n-мерное подпространство двоичных векторов длины m может быть получено путем подходящего выбора m столбцов (возможно, с повторениями) матрицы Un. Строки, полученной таким образом матрицы, и будут составлять соответствующее n‑мерное подпространство.