Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

0085730_32E51_mosin_v_g_matematicheskie_osnovy

.pdf
Скачиваний:
31
Добавлен:
12.03.2016
Размер:
1.22 Mб
Скачать

Министерство образования и науки Российской Федерации Федеральное агентство по образованию

Государственное образовательное учреждение профессионального образования “Самарский государственный архитектурно-строительный университет”.

Допущено учебно-методическим советом по специальности “Дизайн архитектурной среды”

учебно-методического объединения по образованию в области архитектуры в качестве учебного посбия для студентов специальностей 052400 (070601) “Дизайн” и 290100 (270301) “Архитектура”

и направлений 530400 (070600) “Дизайн” и 521700 (270300) “Архитектура”.

Самара 2005

2

УДК 681.3.07

Мосин В. Г. Математические основы компьютерной графики: Монография.

— Самара: СГАСУ, 2005. — 227 с. ISBN 5-9585-0084-8

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

Книга предназначена для студентов первого курса специальностей “Дизайн” и “Архитектура” для изучения математики в рамках курса “Математика и информатика”.

Рецензенты: док. арх. Ахмедова Е. А., к. ф.-м. н. Юсупова О. В.

ISBN 5-9585-0084-8

Редактор Л. И. Глезерова

Технический редактор А. И. Непогодина

Корректор Е. М. Фоменкова

Подписано в печать 20.03.05 г. Бумага офсетная. Печать оперативная. Уч.-изд. л 14,75. Усл. печ. л 14,25. Тираж 100 экз. Заказ № 520.

Самарский государственный архитектурно-строительный университет. 443001, г. Самара, ул. Молодогвардейская, 194.

Отпечатано в ООО “СамЛЮКС”, г. Самара, ул. Бубнова, 3, тел. (8462) 92-67-97.

c Самарский государственный архитектурно-строительный университет, 2005.

Оглавление

1 Математика графических преобразований

11

1.1

Линейные задачи . . . . . . . . . . . . . . . . . . . . . . . . . .

11

1.2

Нелинейные задачи . . . . . . . . . . . . . . . . . . . . . . . . .

12

I

Преобразования плоскости

15

2

Линейная алгебра

17

 

2.1

Полная матричная алгебра . . . . . . . . . . . . . . . . . . . . .

18

 

 

2.1.1

Матрицы . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

 

 

2.1.2

Полная матричная алгебра . . . . . . . . . . . . . . . .

21

 

 

2.1.3

Матричное обращение . . . . . . . . . . . . . . . . . . .

24

 

2.2

Векторные пространства . . . . . . . . . . . . . . . . . . . . . .

27

 

 

2.2.1

Определения и примеры . . . . . . . . . . . . . . . . . .

28

2.2.2Линейная зависимость и линейная независимость си-

стем векторов . . . . . . . . . . . . . . . . . . . . . . . .

30

2.2.3Базис и размерность векторного пространства . . . . . 36

2.2.4 Подпространства векторных пространств . . . . . . . . 40 2.2.5 Замена базиса . . . . . . . . . . . . . . . . . . . . . . . . 41 2.3 Линейные операторы . . . . . . . . . . . . . . . . . . . . . . . . 44 2.3.1 Определения и примеры . . . . . . . . . . . . . . . . . . 44 2.3.2 Ядро и образ линейного оператора . . . . . . . . . . . . 48 2.3.3 Алгебра линейных операторов . . . . . . . . . . . . . . . 50 2.3.4 Матрицы линейных операторов . . . . . . . . . . . . . . 54 2.3.5 Матрицы основных плоских преобразований . . . . . . 59

3 Проективные операторы

63

3.1

Проективная плоскость . . . . . . . . . . . . . . . . . . . . . . .

64

3.2

Проективные операторы . . . . . . . . . . . . . . . . . . . . . .

65

3.3Пример алгоритма покадровой анимации . . . . . . . . . . . . 71

3.3.1

Геометрическая версия алгоритма . . . . . . . . . . . .

72

3.3.2

Аналитическая версия алгоритма . . . . . . . . . . . . .

72

II

Плоские кривые

85

4

Криволинейные траектории

87

 

4.1 Различные способы задания кривых . . . . . . . . . . . . . . .

87

3

4

Оглавление

4.2 Интерполяция . . . . . . . . . . . . . . . . . . . . . . .

. . . . . 91

5 Математический анализ

95

5.1Пределы. Непрерывность функций . . . . . . . . . . . . . . . . 96

5.1.1Предел последовательности . . . . . . . . . . . . . . . . 96

5.1.2Бесконечно малые и бесконечно большие последова-

тельности . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

5.1.3Свойства сходящихся последовательностей . . . . . . . 102

5.1.4 Монотонные последовательности . . . . . . . . . . . . . 105 5.1.5 Предел функции . . . . . . . . . . . . . . . . . . . . . . . 108 5.1.6 Непрерывность . . . . . . . . . . . . . . . . . . . . . . . 113 5.2 Производные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 5.2.1 Производная . . . . . . . . . . . . . . . . . . . . . . . . . 117 5.2.2 Правила дифференцирования . . . . . . . . . . . . . . . 119

5.2.3Производные простейших элементарных функций . . . 121

5.2.4 Производная сложной функции . . . . . . . . . . . . . . 129 5.2.5 Производные высших порядков . . . . . . . . . . . . . . 131 5.2.6 Производные функций, заданных параметрически . . . 132 5.3 Геометрический смысл производной . . . . . . . . . . . . . . . 133 5.3.1 Геометрический смысл производной явной функции . . 133

5.3.2Геометрический смысл производной функции, задан-

ной параметрически . . . . . . . . . . . . . . . . . . . . . 135

6 Интерполяция кривых

139

6.1

Точная интерполяция . . . . . . . . . . . . . . . . . . . . . . . .

139

6.2

Интерполяция в форме Эрмита . . . . . . . . . . . . . . . . . .

143

 

6.2.1

Кривые Безье . . . . . . . . . . . . . . . . . . . . . . . .

148

6.3

Пример алгоритма интерполяции . . . . . . . . . . . . . . . . .

149

 

6.3.1

Геометрическая версия алгоритма . . . . . . . . . . . .

149

 

6.3.2

Аналитическая версия алгоритма . . . . . . . . . . . . .

150

III Приложения

 

155

A Определители, матрицы и линейные системы

 

157

A.1

Определители . . . . . . . . . . . . . . . . . . . . . .

. . . . . .

157

 

A.1.1

Определители второго и третьего порядков . . . . . . .

157

 

A.1.2

Свойства определителей . . . . . . . . . . . .

. . . . . .

159

A.2

Действия с матрицами . . . . . . . . . . . . . . . . .

. . . . . .

164

 

A.2.1

Умножение матриц . . . . . . . . . . . . . . .

. . . . . .

165

 

A.2.2

Обратные матрицы . . . . . . . . . . . . . . .

. . . . . .

167

 

A.2.3

Матричные уравнения . . . . . . . . . . . . .

. . . . . .

170

A.3

Линейные системы . . . . . . . . . . . . . . . . . . .

. . . . . .

174

 

A.3.1

Метод Крамера решения линейных систем . . . . . . .

175

 

A.3.2

Метод Гаусса решения линейных систем . . .

. . . . . .

177

 

A.3.3 Матричный метод решения линейных систем

. . . . . .

179

 

A.3.4

Вырожденные линейные системы . . . . . . .

. . . . . .

181

A.4

Задачи для самостоятельного решения . . . . . . . .

. . . . . .

182

Оглавление

 

5

B Векторные пространства

187

B.1

Системы векторов . . . . . . . . . . . . . . . . . . . . . . . . . .

188

 

B.1.1 Линейная зависимость и линейная независимость си-

 

 

 

стем векторов . . . . . . . . . . . . . . . . . . . . . . . .

188

 

B.1.2

Базисы векторных пространств . . . . . . . . . . . . . .

190

B.2

Линейные операторы . . . . . . . . . . . . . . . . . . . . . . . .

193

 

B.2.1

Матрицы линейных операторов . . . . . . . . . . . . . .

194

 

B.2.2

Действие линейного оператора в матричной форме . .

197

B.3

Проективные операторы . . . . . . . . . . . . . . . . . . . . . .

198

B.4

Задачи для самостоятельного решения . . . . . . . . . . . . . .

203

C Функции и графики

205

C.1

Дифференцирование функций . . . . . . . . . . . . . . . . . . .

205

 

C.1.1 Дифференцирование функции, заданной явно.

 

 

 

Простейшие случаи . . . . . . . . . . . . . . . . . . . . .

205

 

C.1.2

Дифференцирование сложной функции . . . . . . . . .

208

 

C.1.3

Дифференцирование функции, заданной

 

 

 

параметрически . . . . . . . . . . . . . . . . . . . . . . .

212

C.2

Касательные к кривым . . . . . . . . . . . . . . . . . . . . . . .

213

 

C.2.1 Уравнение касательной к графику явной функции . . .

214

 

C.2.2 Уравнение касательной к кривой, описанной парамет-

 

 

 

рически . . . . . . . . . . . . . . . . . . . . . . . . . . . .

214

C.3

Алгоритмы интерполяции . . . . . . . . . . . . . . . . . . . . .

218

 

C.3.1

Точная интерполяция . . . . . . . . . . . . . . . . . . . .

218

 

C.3.2 Интерполяция в форме Эрмита . . . . . . . . . . . . . .

219

C.4

Задачи для самостоятельного решения . . . . . . . . . . . . . .

223

6

Оглавление

Предисловие

В течение несколькоих лет я читаю авторский курс “Математические основы компьютерной графики” студентам-дизайнерам Самарского государственного архитектурно-строительного университета. Эта книга является воспроизведением моих лекций и практических занятий.

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

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

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

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

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

Целевая аудитория

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

7

торам, дизайнерам, модельерам.

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

Структура книги

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

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

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

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

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

Глава 3 Посвящена в основном проективной плоскости, проективным операторам, действующим в ней (включая смещение) и их матричной реализации. Кульминацией первой части является пример алгоритма покадровой 2d-анимации, реализованный средствами линейной и проективной алгебры.

Глава 4 Описаны различные способы задания кривых (явный, неявный, параметрический). Дана классификация задач интерполяции, используемых для постороения криволинейных траекторий в графических системах.

Глава 5 Начала математического анализа: теоретическое обоснование дифференцирования (теория пределов, классы непрерывных, дифференцируемых и гладких функций), приемы дифференцирования, геометрический смысл производной.

Глава 6 Посвящена алгоритмам интерполяции кривых (точная интерполяция, интерполяция в форме Эрмита, кривые Безье). Кульминацией второй части книги служит пример алгоритма эрмитовой интерполяции двух гладко сопряженных сегментов кривой, реализованный средствами математического анализа.

8

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

BЗадачи линейной алгебры: линейная зависимость и линейная независимость систем векторов, замена базиса, действие линейного оператора в матричной форме. Представлены приемы работы с проективными операторами в матричной форме.

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

Работая с теоретическими главами следует параллельно обращаться к приложениям. Первая часть книги (то есть главы с первой по третью) изучается праллельно с приложениями A и B, а вторая часть книги (то есть главы с четвертой по шестую) — параллельно с приложением C.

Слова благодарности

Яхочу поблагодарить всех людей, которые в той или иной стпени помогли мне написать эту книгу.

Явыражаю благодарность своему учителю, доктору физико-математичес- ких наук, профессору Самарского государственного университета Александру Николаевичу Панову. Без его участия я никогда бы не достиг скольконибудь значимого математического уровня.

Явыражаю благодарность своим коллегам — Ольге Викторовне Юсуповой и Аяту Крымовичу Кайракбаеву, за понимание и поддержку моих идей.

Яблагодарен студентам групп “7д” Самарского государственного архитек- турно-строительного университета, на которых я обкатывал книгу, за терпение, с которым они перенесли все мои математические издевательства.

Яблагодарю сотрудников вычислительного центра Самарского государственного архитектурно-строительного университета и лично Олега Вячеславовича Георгиевского за идеальные условия, в которых я работал над макетом рукописи.

Яхочу сказать спасибо своему товарищу Алексею Рысаеву и своей первой жене Нине за помощь в области высоких TEXнологий при верстке.

Яблагодарю своего близкого друга Светлану Боровик за тепло и заботу, которыми она окружала меня во время работы над книгой.

Отдельное спасибо группе Агата Кристи за музыкальное сопровождение творческого процесса и, вообще — процесса жизни.

В. Мосин

9

10