- •Предисловие
- •Введение
- •Глава 1. Множества
- •§ 1. Множества н их спецификация
- •§ 2. Простейшие операции над множествами
- •X ∉ ø при любом х.
- •§ 3. Диаграммы Венна
- •§ 4. Подмножества и доказательства
- •§ 5. Произведения множеств
- •Глава 2. Отношения
- •§ 1. Основные понятия
- •§ 2. Графические представления
- •§ 3. Свойства отношений
- •§ 4. Разбиения и отношения эквивалентности
- •§ 5. Отношения порядка
- •§ 6. Отношения на базах данных и структурах данных
- •§ 7. Составные отношения
- •§ 8. Замыкание отношений
- •Глава 3. Функции
- •§ 1. Функции и отображения
- •§ 2. Обратные функции и отображения
- •§ 3. Мощность множеств и счетность
- •§ 4. Некоторые специальные классы функций
- •§ 5. Аналитические свойства вещественных функций
- •§ 6. Операции
- •Глава 4. Основные понятия арифметики
- •§ 1. «Малая» конечная арифметика
- •§ 2. «Большая» конечная арифметика
- •§ 3. Двоичная арифметика
- •§ 4. Логическая арифметика
- •Глава 5. Алгебраические структуры
- •§ 1. Алгебраические структуры и подструктуры
- •§ 2. Простейшие операционные структуры
- •§ 3. Кольца и поля
- •§ 4. Линейная алгебра
- •4.1. Векторные пространства о линейные преобразования.
- •§ 5. Решетка и булевы алгебры
- •§ 6. Замкнутые полукольца
- •Глава 6. Матрицы
- •§ 1. Матрицы и бинарные отношения на конечных множествах
- •§ 2. Матрицы над другими алгебраическими структурами
- •§ 3. Матрицы и векторные пространства
- •Глава 7. Теория графов
- •§ 1. Вводные понятия
- •§ 2. Маршруты, циклы и связанность.
- •§ 3. Планарные графы
- •3.1. Теоремы Эйлера и Куратовского.
- •3.2. Раскраска карт и графов.
- •§ 4. Структуры данных для представления графа
- •§ 5. Обход графа
- •5.2. Обход графа по глубине.
- •5.4. Остовные леса обходов по глубине и ширине.
- •§ 6. Ориентированные графы
- •6.2. Маршруты и связность в орграфах.
- •Глава 8. Языки и грамматики
- •§ 1. Основные понятия
- •§ 2. Грамматики с фразовой структурой
- •2.1. Основные определения.
- •§ 3. Контекстно-свободные языки
- •§ 4. Понятия грамматического разбора и грамматических модификаций
- •§ 5. Грамматики операторного предшествования
- •Глава 9. Конечные автоматы
- •§ 1. Общие понятия
- •§ 2. Конечные автоматы
- •§ 3. Регулярная алгебра
- •Глава 10.Компьютерная геометрия
- •§ 1. Системы координат для подмножеств r3
- •§ 2. Преобразования
- •§ 3. Кривые и поверхности
Д. КУК, Г. БЕЙЗ
КОМПЬЮТЕРНАЯ
МАТЕМАТИКА
Перевод с английского Г. М. КОБЕЛЬКОВА
МОСКВА «НАУКА»
ГЛАВНАЯ РЕДАКЦИЯ
ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ
1990
ББК
22.18
К89
УДК
519.6
Кук Д., Бейз Г. Компьютерная математика: Пер. с англ.— М.: Наука, Гл. ред. физ.-мат. лит., 1990.— 384 с— ISBN 5-02-014216-6.
На основе фундаментальных понятий математики, введенных в начале, математически строго описывается ряд проблем и дается их решение. Изложение, где это возможно, носит строгий математический характер. Доказательства утверждений проводятся па конструктивном уровне. Дается большое количество примеров и упражнений, результаты которых, как правило, используются в дальнейшем.
Для студентов, аспирантов и научных работников, занимающихся вопросами компьютерной математики и ее приложениями.
Табл. 28. Ил. 164.
Оглавление
ПРЕДИСЛОВИЕ 7
ВВЕДЕНИЕ 8
ГЛАВА 1. МНОЖЕСТВА 11
§ 1. Множества н их спецификация 11
§ 2. Простейшие операции над множествами 17
§ 3. Диаграммы Венна 24
§ 4. Подмножества и доказательства 27
§ 5. Произведения множеств 36
ГЛАВА 2. ОТНОШЕНИЯ 39
§ 1. Основные понятия 40
§ 2. Графические представления 44
§ 3. Свойства отношений 48
§ 4. Разбиения и отношения эквивалентности 50
§ 5. Отношения порядка 54
§ 6. Отношения на базах данных и структурах данных 57
§ 7. Составные отношения 65
§ 8. Замыкание отношений 68
ГЛАВА 3. Функции 71
§ 1. Функции и отображения 71
§ 2. Обратные функции и отображения 75
§ 3. Мощность множеств и счетность 76
§ 4. Некоторые специальные классы функций 86
§ 5. Аналитические свойства вещественных функций 95
§ 6. Операции 110
ГЛАВА 4. ОСНОВНЫЕ ПОНЯТИЯ АРИФМЕТИКИ 120
§ 1. «Малая» конечная арифметика 120
§ 2. «Большая» конечная арифметика 125
§ 3. Двоичная арифметика 131
§ 4. Логическая арифметика 137
ГЛАВА 5. АЛГЕБРАИЧЕСКИЕ СТРУКТУРЫ 141
§ 1. Алгебраические структуры и подструктуры 142
§ 2. Простейшие операционные структуры 145
§ 3. Кольца и поля 148
§ 4. Линейная алгебра 160
§ 5. Решетка и булевы алгебры 180
§ 6. Замкнутые полукольца 202
ГЛАВА 6. МАТРИЦЫ 205
§ 1. Матрицы и бинарные отношения на конечных множествах 205
§ 2. Матрицы над другими алгебраическими структурами 212
§ 3. Матрицы и векторные пространства 216
Глава 7. Теория графов 227
§ 1. Вводные понятия 227
§ 2. Маршруты, циклы и связанность. 236
§ 3. Планарные графы 241
§ 4. Структуры данных для представления графа 248
§ 5. Обход графа 252
§ 6. Ориентированные графы 257
ГЛАВА 8. ЯЗЫКИ И ГРАММАТИКИ 273
§ 1. Основные понятия 273
§ 2. Грамматики с фразовой структурой 281
§ 3. Контекстно-свободные языки 292
§ 4. Понятия грамматического разбора и грамматических модификаций 298
§ 5. Грамматики операторного предшествования 314
ГЛАВА 9. КОНЕЧНЫЕ АВТОМАТЫ 318
§ 1. Общие понятия 319
§ 2. Конечные автоматы 337
§ 3. Регулярная алгебра 349
ГЛАВА 10.КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ 358
§ 1. Системы координат для подмножеств R3 360
§ 2. Преобразования 366
§ 3. Кривые и поверхности 387
Предисловие
Вычисления являются точной наукой, и систематическое изучение всех аспектов, включая такие различные области, как разработка баз данных, проверка систем и создание математического обеспечения, с необходимостью вызывает использование математических моделей. С этой точки зрения многие учебные программы по вычислениям в университетах и институтах содержат специальные курсы, знакомящие студентов с соответствующими математическими структурами и методами. Содержание этой книги является таким курсом и занимает примерно 100 лекционных часов; курс читался студентам факультета компьютерных наук Технологического университета в Лафбаро. Материал книги соответствует первым двум годам обучения. Лекции первого года посещают все студенты. Курс лекций второго года является необязательным; он обеспечивает основу для курсов, читающихся на последнем году обучения. Содержание книги совершенствовалось в течение ряда лет. В течение этого времени мы ощущали помощь многих из окружающих нас людей, включая многочисленных коллег (как в Лафбаро, так и в других местах) и студентов, которые помогали при подготовке по проверке материала. Мы особенно хотим поблагодарить наших жен – Крис и Кэрис – за постоянную поддержку и понимание в течение всего процесса написания книги. Особо благодарим Крис Кук за многочисленные часы, которые она провела, помогая нам в создании проекта рукописи, Орнеллу Ларднер за аккуратно напечатанный окончательный вариант и Алана Бенсона, который прочитал всю работу и сделал много конструктивных предложений. Ответственность за все оставшиеся ошибки и неточности принадлежит исключительно нам.
Д. Кук, Г. Бейз
Лафбаро, 1982
Введение
Книга в основном представляет собой курс лекций по компьютерной математике для университетов и институтов; однако она также может быть полезной для специалистов, работающих в этой области и желающих получить более глубокие знания предмета.
Книга содержит материал из тех областей современной математики, которые имеют отношения к вычислениям, и, как следствие, обеспечивает читателя средством для сжатого и точного описания многих проблем компьютерной науки. Несмотря на нашу приверженность излагать материал, непосредственно относящийся к компьютерной науке, в книге сделана попытка дать его разумное и строгое представление, приемлемое с математической точки зрения. Изложение по возможности носит конструктивный характер. Везде, где возможно, в каждой новой теме используются понятия и термины из предыдущих тем; материал сопровождается многочисленными упражнениями и примерами. Следует подчеркнуть, что разбор примеров и решение упражнений являются составной частью изучения предлагаемого материала.
Преследуя эту цель, мы должны с чего-то начать. Нашим исходным неопределяемым понятием является понятие множества, описываемое перечислением свойств, которыми оно обладает. Исходя из этого, можно определить все последующие понятия конструктивным и математически приемлемым образом. Такой подход необходим, поскольку любую ошибку легко можно проследить, вернувшись назад к неправильному предложению где-то в цепочке рассуждений. Это также означает, что часть или же вся рассматриваемая теория может быть запрограммирована.
Множества обсуждаются в гл. 1 и используются далее во всей книге. Главы 2, 3 и 5—7 образуют основу строгого обсуждения многих разделов компьютерной математики; материал этих глав выбран таким образом, чтобы его можно было широко использовать. В гл. 4 описывается математическая модель арифметической системы, используемой в цифровых компьютерах при работе с целыми числами. Главы 8—10 связывают математическую теорию из предыдущих глав с разделами компьютерной математики. В частности, здесь выделены такие области, как теория языков, теория автоматов и компьютерная геометрия. Эти темы отражают одновременно и интересы авторов, и их желание изложить важные разделы современной математики, представляющие общий интерес, а не только прикладной. Другие области, где может применяться излагаемый в книге материал, включают в себя базы данных, сети, программную проверку и численный анализ. Главы 8—10 являются исходными для дальнейшего изучения таких тем, как компиляция, системы моделирования, теория вычислений, компьютерная графика, вычислительная геометрия и автоматическое проектирование. Логические внутренние связи между главами и другими изучаемыми областями показаны на следующей диаграмме:
Терминология и обозначения обычно строго вводятся в соответствующем месте текста. Однако иногда в примерах мы используем термины, которые раньше не определились. В таких случаях обычно следует руководствоваться интуицией, а не формальными соображениями. Так, в одном из случаев в гл. 1 используется термин «конечная машина», в то время как определение дано лишь в гл. 9. В § 5 гл. 3 некоторые свойства действительных чисел используются без доказательства. Например, мы используем неравенство треугольника , где обозначает абсолютную величину числа, в некоторых доказательствах, относящихся к пределам. При желании читатель может опустить эти доказательства до прочтения из п. 3.4 гл. 5. Повсюду в книге символ // будет означать конец определения, примера, доказательства и т. п., а символ # — обнаружение логической ошибки, т. е. противоречие. Также по причинам, которые станут ясными в § 5 гл. 1, мы обычно будем использовать для обозначения операции умножения символ * (а не Х), хотя, когда мы будем иметь дело с обычными числами, символ * иногда будет опускаться с целью упрощения записи в больших выражениях.