Математика на языке R
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
Прометей
Автор:
Зададаев Сергей Алексеевич
Год издания: 2024
Кол-во страниц: 346
Дополнительно
Вид издания:
Учебник
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-00172-606-7
Артикул: 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) и др.
Учебник будет полезен аспирантам, научным сотрудникам и преподавателям.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.02: Прикладная математика и информатика
- 02.03.01: Математика и компьютерные науки
- 38.03.01: Экономика
- 38.03.02: Менеджмент
- 38.03.05: Бизнес-информатика
- 39.03.01: Социология
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Федеральное государственное образовательное бюджетное учреждение высшего образования «ФИНАНСОВЫЙ УНИВЕРСИТЕТ ПРИ ПРАВИТЕЛЬСТВЕ РОССИЙСКОЙ ФЕДЕРАЦИИ» (Финансовый университет) Департамент математики Факультета информационных технологий и анализа больших данных С.А. Зададаев МАТЕМАТИКА НА ЯЗЫКЕ 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 воспользуйтесь следующими ниже шагами.