Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Математика на языке R

Покупка
Артикул: 828966.01.99
В учебнике последовательно излагаются основы языка программирования R с постепенным углублением по мере продвижения по осваиваемым навыкам в применении к высшей математике первого курса. Для комфортного программирования на R практикум ориентирован на популярную оболочку RStudio. Структурно учебник представляет собой 17 компьютерных практикумов по изучению и применению вычислительных возможностей языка R в решении базовых задач математического анализа и линейной алгебры и календарно соответствует программе дисциплины «Цифровая математика на языке R и Excel», читаемой в Финансовом университете при Правительстве РФ на первом курсе общеэкономических специальностей. Учебник будет полезен студентам широкого спектра направлений подготовки: от экономики (38.03.01), менеджмента (38.03.02), социологии (39.03.01) и других гуманитарных направлений до прикладной математики и информатики (01.03.02), бизнес-информатики (38.03.05), математики и компьютерных наук (02.03.01) и др. Учебник будет полезен аспирантам, научным сотрудникам и преподавателям.
Зададаев, С. А. Математика на языке R : учебник / С. А. Зададаев. - 3-е изд., доп. и перераб. - Москва : Прометей, 2024. - 346 с. - ISBN 978-5-00172-606-7. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2144356 (дата обращения: 21.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Федеральное государственное образовательное бюджетное учреждение 
высшего образования
«ФИНАНСОВЫЙ УНИВЕРСИТЕТ  
ПРИ ПРАВИТЕЛЬСТВЕ РОССИЙСКОЙ ФЕДЕРАЦИИ»
(Финансовый университет)

Департамент математики Факультета информационных технологий 
и анализа больших данных

С.А. Зададаев

МАТЕМАТИКА  
НА ЯЗЫКЕ R 

Учебник

3-е издание, дополненное и переработанное

МОСКВА 
2024

УДК 519.85
ББК 32.973
 
З-15

Автор:
Зададаев Сергей Алексеевич, кандидат физ.-мат. наук, профессор, 
руководитель Департамента математики Факультета информационных 
технологий и анализа больших данных Финансового университета при 
Правительстве Российской Федерации.

Рецензенты:
В.И. Соловьев, д.э.н., профессор, руководитель ДАДПРиФТ Финансового университета при Правительстве РФ;
Д.В. Сошников, к.ф.-м.н., доцент НИУ ВШЭ, координатор академических программ Департамента стратегических технологий Майкрософт Россия.

Зададаев С.А.
З-15 
 
Математика на языке R: Учебник / С.А. Зададаев. — 3-е издание, дополненное и переработанное. — М.: Прометей, 2024. — 346 с.

ISBN  978-5-00172-606-7

В учебнике последовательно излагаются основы языка программирования R с постепенным углублением по мере продвижения 
по осваиваемым навыкам в применении к высшей математике первого курса. Для комфортного программирования на R практикум ориентирован на популярную оболочку RStudio. 
Структурно учебник представляет собой 17 компьютерных практикумов по изучению и применению вычислительных возможностей 
языка R в решении базовых задач математического анализа и линейной алгебры и календарно соответствует программе дисциплины 
«Цифровая математика на языке R и Excel», читаемой в Финансовом 
университете при Правительстве РФ на первом курсе общеэкономических специальностей.
Учебник будет полезен студентам широкого спектра направлений подготовки: от экономики (38.03.01), менеджмента (38.03.02), 
социологии (39.03.01) и других гуманитарных направлений до прикладной математики и информатики (01.03.02), бизнес-информатики (38.03.05), математики и компьютерных наук (02.03.01) и др.
Учебник будет полезен аспирантам, научным сотрудникам и преподавателям.

 
©  Зададаев С.А., 2024
ISBN 978-5-00172-606-7 
© Издательство «Прометей», 2024

—   3  —

ОГЛАВЛЕНИЕ

ВМЕСТО ПРЕДИСЛОВИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

КОМПЕТЕНЦИИ ДИСЦИПЛИНЫ . . . . . . . . . . . . . . . . . . . . . . . . . . 9

ИНСТРУКЦИЯ ПО УСТАНОВКЕ ПАКЕТОВ R  
И RSTUDIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

ПРАКТИКУМ 1. ВВЕДЕНИЕ В R (RSTUDIO) . . . . . . . . . . . . . . . 14
Требования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Запуск RStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Оператор комментария #  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Загрузка библиотек . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
R — калькулятор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Выводимая точность вычислений . . . . . . . . . . . . . . . . . . . . . . . . 29
Массивы чисел в R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Некоторые дополнительные настройки RStudio . . . . . . . . . . . . 33
Горячие клавиши в R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Забегая немного вперед . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Полезные команды в R  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 37
Типичные ошибки в R  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 38
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . . 40

ПРАКТИКУМ 2. ПРОГРАММИРОВАНИЕ 
ПОЛЬЗОВАТЕЛЬСКИХ ФУНКЦИЙ В R (RSTUDIO)  . . . . . . . . 42
Задание математических функций . . . . . . . . . . . . . . . . . . . . . . . 42
Построение графиков функций . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Задание произвольных пользовательских функций . . . . . . . . . 51
Использование векторизованных процедур:  
оператор ifelse  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Использование векторизованных процедур: оператор […] . . . . 60
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . . 62
Приложение к практикуму 2: Библиотека Cairo . . . . . . . . . . . . 64
Приложение к практикуму 2: Функция Radical . . . . . . . . . . . . 67

—   4   —

Оглавление

ПРАКТИКУМ 3. ИССЛЕДОВАНИЕ НУЛЕЙ  
И ЭКСТРЕМУМОВ ФУНКЦИЙ (RSTUDIO) . . . . . . . . . . . . . . . . . 69
Аналог Excel "Подбор параметра"  . . . . . . . . . . . . . . . . . . . . . . . 70
Процедура поиска нулей функции: uniroot . . . . . . . . . . . . . . . . 84
Библиотека rootSolve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Процедура поиска экстремума функции: optimize . . . . . . . . . . 92
Процедура поиска экстремума функции: nlm . . . . . . . . . . . . . . 97
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 100

ПРАКТИКУМ 4. ЧИСЛЕННОЕ НАХОЖДЕНИЕ 
ОПРЕДЕЛЕННОГО И НЕСОБСТВЕННОГО ИНТЕГРАЛА  
В R (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Приближенное вычисление определенных  
интегралов в R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Приближенное вычисление несобственных  
интегралов в R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 112

ПРАКТИКУМ 5. ПОСТРОЕНИЕ ПОВЕРХНОСТЕЙ  
И ЛИНИЙ УРОВНЯ В R (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . 114
Построение графиков функций двух переменных . . . . . . . . . . 114
Линии уровня функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Построение поверхностей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 131

ПРАКТИКУМ 6. СИМВОЛЬНОЕ  
ДИФФЕРЕНЦИРОВАНИЕ В R (RSTUDIO)  . . . . . . . . . . . . . . . . 133
Тип expression (выражение)  . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Основной оператор символьного дифференцирования  
D(f, "x")  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Базовые функции deriv и deriv3 . . . . . . . . . . . . . . . . . . . . . . . . 140
Универсальная процедура дифференциального  
исчисления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Заключение к практикуму 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 152

ПРАКТИКУМ 7. ТИПЫ ДАННЫХ В R (RSTUDIO) . . . . . . . . . 153
R — динамически типизированный язык  . . . . . . . . . . . . . . . . 153

—   5  —

Оглавление

Атомарные данные  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Логический тип (logical)  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .155
Целочисленный тип (integer)  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .156
Вещественный тип (numeric, double)  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .158
Комплексные числа (complex)  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .158
Текстовые/строковые переменные (character)  .  .  .  .  .  .  .  .  .  .160
Факторные переменные (factor)  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .163
Многомерные данные  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .167
Векторы (vector)  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .167
Массивы (array)  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .171
Таблицы (data .frame)   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .173
Списки (List)  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .177
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 180

ПРАКТИКУМ 8. ЦИКЛИЧЕСКИЕ ПРОЦЕДУРЫ  
В R (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Цикл for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Цикл while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Цикл repeat  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Векторизованная процедура sapply  . . . . . . . . . . . . . . . . . . . . . 192
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 204

ПРАКТИКУМ 9. ЧИСЛЕННОЕ РЕШЕНИЕ 
ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В R (RSTUDIO) . . . 206
Задача Коши . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Схема Эйлера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Итог по схеме Эйлера .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .210
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 226

ПРАКТИКУМ 10. ЗАДАНИЕ ВЕКТОРОВ И МАТРИЦ  
В R (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Объявление векторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Объявление матриц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 238

ПРАКТИКУМ 11. СОХРАНЕНИЕ РЕЗУЛЬТАТОВ В R 
И ИМПОРТ/ЭКСПОРТ ДАННЫХ ИЗ EXCEL (RSTUDIO) . . . 240
Команда read.table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

—   6   —

Оглавление

Процедуры read.csv и read.csv2  . . . . . . . . . . . . . . . . . . . . . . . . 241
Библиотека "xlsx" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Процедура read.xlsx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Процедуры write.xlsx и write.xlsx2  . . . . . . . . . . . . . . . . . . . . . 247
Формат RDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 252
Приложение Космос (для отличников). . . . . . . . . . . . . . . . . . . 253

ПРАКТИКУМ 12. ВЕКТОРНАЯ АЛГЕБРА (RSTUDIO) . . . . . 261
Задание векторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Линейная комбинация векторов . . . . . . . . . . . . . . . . . . . . . . . . 262
Скалярное произведение векторов . . . . . . . . . . . . . . . . . . . . . . 263
Длина вектора  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Косинус угла между векторами  . . . . . . . . . . . . . . . . . . . . . . . . 266
Произвольные выражения векторной алгебры . . . . . . . . . . . . 267
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 268
Ответы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

ПРАКТИКУМ 13. АЛГЕБРА МАТРИЦ (RSTUDIO) . . . . . . . . . 269
Задание матриц  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Размерность матрицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Кванторы общности и существования  . . . . . . . . . . . . . . . . . . . 272
Транспонирование матриц  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Сложение матриц и умножение их на числа  . . . . . . . . . . . . . . 275
Произведение матриц  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Возведение в степень . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Определители матриц  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Обратная матрица  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Ранг матрицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Вместо заключения к практикуму 13 . . . . . . . . . . . . . . . . . . . . 282
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 283

ПРАКТИКУМ 14. МАТРИЧНЫЕ УРАВНЕНИЯ (RSTUDIO) . . 284
Системы линейных алгебраических уравнений  . . . . . . . . . . . 284
Матричные уравнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Системы нелинейных алгебраических уравнений* . . . . . . . . . 292
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 296

—   7  —

Оглавление

ПРАКТИКУМ 15. РАСШИРЕНИЕ DOUBLE- 
АРИФМЕТИКИ  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Алгебраически точное решение матричных уравнений*  . . . . 298
Разложение векторов по базису  . . . . . . . . . . . . . . . . . . . . . . . . 304
Заключение к практикуму 15 . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 308

ПРАКТИКУМ 16. СПЕКТРАЛЬНОЕ И СИНГУЛЯРНОЕ 
РАЗЛОЖЕНИЕ МАТРИЦ (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . 310
Матрица линейного оператора  . . . . . . . . . . . . . . . . . . . . . . . . . 310
Преобразование матрицы линейного оператора  . . . . . . . . . . . 314
Собственные числа и собственные векторы матриц . . . . . . . . . 317
Спектральное разложение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Преобразование матрицы квадратичной формы . . . . . . . . . . . 321
Сингулярное разложение матриц* . . . . . . . . . . . . . . . . . . . . . . 322
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 325

ПРАКТИКУМ 17. ЗАДАЧИ ЛИНЕЙНОЙ  
ОПТИМИЗАЦИИ (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Стандартная задача линейного программирования  . . . . . . . . 328
Целочисленное линейное программирование  . . . . . . . . . . . . . 334
Транспортная задача . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Задания для самостоятельной работы  . . . . . . . . . . . . . . . . . . . 341
Рекомендуемая литература к практикуму 17  . . . . . . . . . . . . . 342

ЗАКЛЮЧЕНИЕ  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

—   8   —

ВМЕСТО ПРЕДИСЛОВИЯ

Прежде чем приступить к изучению и освоению материала этого учебника, важно правильно представлять себе 
специфику современного прикладного программирования. 
А она заключается в том, что нет ничего более быстро меняющегося, чем информационные технологии. 
В процессе изучения вам самим наверняка захочется 
написать более совершенную функцию или процедуру, чем 
в обсуждаемом стандарте R. Сложно быстро изменить производственные технологии, но легко — программные. 
Так что, приготовьтесь к постоянным усовершенствованиям пакета R, его библиотек и оболочки RStudio. Маловероятно, но возможно, что некоторые операции вообще 
не будут работать из-за их кардинального обновления. Это 
совершенная норма настоящего времени, и если вы хотите 
быть на олимпе вычислительных и визуализрующих возможностей, то решительно подключайте в свои союзники 
internet с его российскими и англоязычными ресурсами 
профессионалов, обсуждающих и творящих на языке R по 
всему миру. 
Сама по себе семантика языка R достаточно проста для 
понимания и использования, и все-таки советуем на первых порах набирать программные коды вручную, а не копировать их из текста, если вы используете электронный 
вариант учебника. Такие коды выделены в тексте так:

# Здравствуй, мир! :) 
# Я сделаю тебя лучше! ))

Всем удачи!

—   9  —

КОМПЕТЕНЦИИ ДИСЦИПЛИНЫ

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

Компетенция 
Знания, умения, владения

 1
Способность применять математические 
методы для решения 
стандартных теоретических и прикладных 
задач, интерпретировать полученные математические результаты

Знать вычислительные методики основных задач математического анализа и линейной 
алгебры;
Уметь использовать компьютерные технологии при реализации 
математических методов и моделей для описания и анализа 
прикладных задач.
Владеть навыками вычислительной работы в R и коммуникации с Excel.

2
Способность оформлять аналитические 
и отчетные материалы 
по результатам выполненной работы

Знать основные средства визуализации количественных 
данных в R
Уметь использовать компьютерные технологии представления 
данных и графической визуализации результатов применения 
математических методов и моделей для описания и анализа 
различных прикладных задач
Владеть навыками работы 
в RStudio в части визуализации 
количественных данных.

—   10   —

ИНСТРУКЦИЯ ПО УСТАНОВКЕ 
ПАКЕТОВ R И RSTUDIO

Пропустите этот раздел, если R и RSudio уже установлены на вашем компьютере.

ВНИМАНИЕ!!!
Прежде, чем вы будете устанавливать R, а затем RStudio и его различные библиотеки R, необходимо убедиться, 
что вы работаете под учетной записью, обладающей тремя 
важными свойствами:
1. Установлены права admin, то есть это учетка администратора!
2. Имя учетки задано в одно слово без пробелов на латинице!
3. Файлы на компьютере по умолчанию сохраняются 
на жесткий диск, а не на какое-либо облако, например, 
OneDrive.
Очень часто имя учетки написано по-русски, или в два 
слова, или без прав администратора. Если это так, тогда 
просто заведите новую учетку с именем в одно английское 
слово с правами администратора (инструкция в яндексе 
по запросу, например: "Как создать новую учетную запись 
администратора в windows"), а возможное автосохранение 
на облако обязательно отключите (некоторые пользователи 
вообще решительно удаляют OneDrive).
После этого не будет никаких проблем ни сейчас, ни в 
будущем с установкой, обновлением и работой R в RStudio!!!

Установка R и RStudio

Для установки R и RStudio под операционную систему 
Windows воспользуйтесь следующими ниже шагами.