Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ БУРЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПРОГРАММИРОВАНИЕ В СИСТЕМЕ MatLab Рекомендовано учебно-методическим советом БГУ в качестве практикума для студентов направления подготовки 09.03.02 Информационные системы и технологии, специальности 09.02.01 Компьютерные системы и комплексы Улан-Удэ Издательство Бурятского госуниверситета 2017 Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» УДК 004.45(075.8) ББК 22.183.49я75 П 784 Утверждено к печати редакционно-издательским советом Бурятского государственного университета Рецензенты Т. В. Кочева, кандидат технических наук, научный сотрудник лаборатории физического материаловедения ИФМ СО РАН Ф. В. Хандаров, кандидат технических наук, старший преподаватель кафедры «Информационных технологий» БГУ П 784 Программирование в системе MatLab : практикум / сост. Е. Р. Урмакшинова. — Улан-Удэ : Издательство Бурятского госуниверситета, 2017. — 46 с. ISBN 978-5-9793-0039-9 Практикум содержит лабораторные работы, направленные на приобретение навыков программирования в системе MatLab. Пособие предназначено для студентов технических специ- альностей. © Е. Р. Урмакшинова, сост., 2017 ISBN 978-5-9793-0039-9 © Бурятский госуниверситет, 2017 Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» CОДЕРЖАНИЕ ПРЕДИСЛОВИЕ……………………………………………. 4 Лабораторная работа № 1 «Операции с числами»………….. 6 Лабораторная работа № 2 «М-файлы. организация вво- да/вывода данных»………………………………………….. 9 Лабораторная работа № 3 «Функции по работе с векторами и матрицами»…………………………………………………. 11 Лабораторная работа № 4 «Построение 2D графика одной функции»……………………………………………………. 14 Лабораторная работа № 5 «Построение 2D графиков не- скольких функций в одном графическом окне»……………. 19 Лабораторная работа № 6 «Построение 3D графиков»…….. 23 Лабораторная работа № 7 «Условные операторы»………… 34 Лабораторная работа № 8 «Циклы с параметром и одно- мерные массивы»…………………………………………… 36 Лабораторная работа № 9 «Циклы с параметром и дву- мерные массивы»……………………………………………. 38 Лабораторная работа № 10 «Программирование функций» 41 ЗАКЛЮЧЕНИЕ………………………………………………. 44 БИБЛИОГРАФИЧЕСКИЙ СПИСОК……………………….. 45 3 Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» ПРЕДИСЛОВИЕ Настоящее учебное издание представляет собой электронное учебно-методическое пособие для дисциплины «Теория информа- ционных процессов и систем» в рамках реализации образовательной программы высшего образования по направлению подготовки 09.03.02 «Информационные системы и технологии» очной формы обучения и подготовлено в соответствии с требованиями Феде- рального государственного образовательного стандарта высшего образования, а также в рамках реализации образовательной про- граммы среднего образования по специальности 09.02.01 «Компь- ютерные системы и комплексы» очной формы обучения и подго- товлено в соответствии с требованиями Федерального государст- венного образовательного стандарта среднего образования. Дисциплина «Теория информационных процессов и систем» относится к обязательным дисциплинам базовой части Блока 1 в структуре ОП высшего образования. Изучение дисциплины направлено на формирование обще- профессиональных и профессиональных компетенций: ОПК-1 - владением широкой общей подготовкой (базовыми знаниями) для решения практических задач в области информаци- онных систем и технологий; ПК-11 - способностью к проектированию базовых и при- кладных информационных технологий. Основной задачей настоящего практикума является изучение основ программирования в системе MatLab. Студентам, инженерам, научным работникам, конечно, необ- ходимо иметь инструмент для расчѐтов, программирования, проек- тирования, анализа и исследования физических процессов, техни- ческих устройств и систем. Таким инструментом сегодня становятся пакеты прикладных программ для научно-технических расчѐтов, лидирующее место среди которых занимает MatLab, разработанный Кливом Моулером (англ. Cleve Moler) в конце 1970-х годов [1]. 4 Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» MatLab (сокращение от англ. «Matrix Laboratory») — пакет прикладных программ, предназначенный для решения технических задач, а также и одноимѐнный язык программирования, исполь- зуемый в этом пакете. Встроенные функции MatLab успешно при- меняют для расчетов инженерные и научные работники, пакет ра- ботает на большинстве современных операционных систем. Даже и в большой и мощной, математической системе, какой и является MatLab, существует необходимость программирования решения задач. Программирование в системе является эффективным средством ее расширения и адаптации к решению специфических проблем. Оно реализуется с помощью языка программирования системы. Язык MatLab является языком программирования высокого уровня, имеет структуры данных, основанные на матрицах, а также широкий спектр функций, интегрированную среду разработки, возможности объектно-ориентированного программирования и создания интерфейсов к программам, которые написаны на других языках программирования. Данный практикум по программированию в среде MatLab со- держит десять лабораторных работ, предназначенных для начи- нающих пользователей. Каждая лабораторная работа посвящена отдельным разделам программирования, что позволяет студентам самостоятельно выбрать теоретический материал для подготовки. Имеются краткие методические указания, поясняющие последова- тельность и особенности выполнения работ, контрольные вопросы. Индивидуальность работы студентов обеспечивается наличием двадцати вариантов заданий. 5 Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» ЛАБОРАТОРНАЯ РАБОТА № 1 «ОПЕРАЦИИ С ЧИСЛАМИ» Цель работы 1. Познакомиться с интерфейсом системы, приобрести навыки работы в командном окне MatLab. 2. Освоить ввод числовых данных и арифметических операций, изучить форматы представления данных в MatLab. 3. Освоить запись арифметических выражений в командной строке, изучить элементарные математические функции MatLab. 4. Освоить работу с тригонометрическими функциями, нау- читься осуществлять перевод из градусов в радианы и наоборот. Краткие методические указания 1. В командном окне задать значения для переменных. 2. Используя правила записи арифметических выражений, за- писать выражение на языке MatLab и получить ответ. Варианты заданий: 1. 𝑎 = 5,5;𝑏 = 9,32−2;𝑐 = 0,75;𝑥 = 7,21;𝑘 = 3 𝑎−𝑥 3 𝑎−𝑘𝑥2 𝑐𝑜𝑠𝑘𝑥2 𝑏𝑐 𝑦 = 𝑠𝑖𝑛 +104 + − 𝑐 2𝑏 𝑡𝑔3 𝑎𝑥 2. 𝑘 = 2;𝑥 = 0,34;𝑑 = 2,25;𝑛 = −2;𝑏 = 0,91;𝑐 = 3,6 𝑥−𝑑 𝑥2+𝑏2 𝑐𝑜𝑠𝑘𝑥 𝑦 = 10−3𝑡𝑔𝑘𝑛− − 3 𝑥2+𝑏2−𝑐𝑑 𝑠𝑖𝑛5 3. 𝑖 = 5;𝑘 = −2;𝑥 = 0,1;𝑎 = 26,3;𝑏 = 3,25 𝑎𝑥2−𝑏 3 102 𝑥𝑘 𝑦 = 𝑡𝑔𝑖𝑘− +103𝑒−5+ 𝑎+𝑏 2 (𝑎+𝑏)2 4. 𝑎 = −1,21;𝑐 = 0,08;𝑑 = 2,3;𝑖 = 4;𝑥 = 1,36 6 Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» 𝑐−𝑑 +(𝑎+𝑐)2 𝑐−𝑑 +𝑎2 𝑦 = +10−3𝑒𝑖𝑥 − 𝑠𝑖𝑛2𝑖 3 (𝑎+𝑐)2 5. 𝑘 = 2,4;𝑥 = −3,8;𝑐 = 0,47;𝑎 = 0,82;𝑏 = 7,23 𝑙𝑛 𝑘𝑥 104𝑎−𝑏 𝑦 = − 𝑥−𝑎2 − + 3 𝑥−𝑎2 +𝑐3𝑥 𝑠𝑖𝑛7 𝑐𝑜𝑠𝑘𝑥 6. 𝑘 = −3,2;𝑎 = 3,8;𝑏 = 0,47;𝑥 = 1,632 𝑎𝑥 𝑎−𝑏 𝑙𝑛3 𝑦 = 104 − + −𝑒−𝑘𝑥 𝑏2 𝑘𝑥 3 𝑎𝑥+𝑏2 7. 𝑎 = 1,7;𝑏 = −1,25;𝑐 = −0,3;𝑥 = 2,5;𝑘 = 3 𝑎𝑏𝑐 0,7𝑎𝑏𝑐 𝑏−𝑎 𝑦 = − +1045 𝑐𝑜𝑠𝑘 − 2,4 𝑠𝑖𝑛7 𝑘𝑥 1 5 8. 𝐹 = ; 𝛼 = 𝜋 0,03 7 𝐹 𝛼 𝑦 = 2 𝑡𝑔𝛼 𝑠𝑖𝑛2 𝜋 2 9. 𝑚 = −19,7; 𝛼 = 20° 1 𝑚3𝑐𝑜𝑠𝛼 𝑦 = ∙ 12 𝑠𝑖𝑛𝛼+𝑐𝑜𝑠𝛼 3 10. 𝑎 = 1,6;𝑏 = 2,56;𝑐 = 0,81;𝑥 = 1,9;𝑘 = 2 𝑎2 −𝑏2 𝑘2+𝑡𝑔3𝑘 𝑦 = − −1045 𝑠𝑖𝑛𝑘𝑥−𝑏𝑐 𝑠𝑖𝑛𝑘𝑥 𝑒𝑘𝑥 11. 𝑥 = 0,5;𝑎 = 2,71;𝑐 = 3,25;𝑑 = −3,53;𝑘 =5 sin(𝑎𝑥2 −𝑐) 𝑦 = − 3 𝑥2 +𝑙𝑛3−𝑐𝑜𝑠𝑘𝑥 +104𝑥5𝑐𝑑 0,25𝑘2𝑥𝑑 12. 𝑥 = 0,48;𝑏 = −0,31;𝑐 = 1,72;𝑎 =2,01;𝑘 = 3 𝑒𝑘𝑥 +𝑐2 𝑦 = 5 𝑎𝑥2−𝑏3 +𝑙𝑛𝑘𝑥− −10−3 2157 𝑠𝑖𝑛𝑘𝑥 7 Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» 13. 𝑥 = 2,5;𝑏 = 0,04;𝑘 = 3;𝑛 = 5 1 𝑥2 +𝑏 𝑠𝑖𝑛3 𝑦 = + −104𝑒𝑘𝑥 +𝑐𝑜𝑠 𝑥2 +𝑏+ 9 0,4𝑥 𝑥2 +𝑏 𝑛 14. ℎ = 0,28; 𝛼 = 41° 3ℎ3 𝑦 = 𝑠𝑖𝑛 𝛼+30° 𝑠𝑖𝑛 𝛼−30° 𝑐𝑜𝑠2𝛼 15. 𝑚 = 3,6486∙102 2 𝑦 = 𝑚 𝑚3 𝑚4 𝑚 3 16. 𝑆 = 𝑒1,11; 𝛼 = 7 𝜋 11 8 𝑆 𝛼 𝑦 = 𝑆 𝑠𝑖𝑛6 3 𝜋 2 17. 𝐴 = 51°;𝐵 = 39° 𝜋 1 𝑦 = ∙ 3 𝑐𝑡𝑔𝐴+𝑐𝑡𝑔𝐵 18. 𝑥 = 𝑒2,145 27𝑥−1 𝑦 = 𝑙𝑔2𝑥− 𝑠𝑖𝑛 𝑥 8 19. 𝑎 = 2,1754∙102 5 5𝑒4𝑎 𝑎+12,36 2 𝑦 = 𝑙𝑛 𝑎+7 20. 𝑑 = 10,6; 𝛼 = 50° 𝑦 = 𝑑3𝑐𝑡𝑔𝛼 𝑠𝑖𝑛4𝛼−𝑐𝑜𝑠4𝛼 8 Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Контрольные вопросы: 1. Какие форматы представления действительных чисел в ко- мандном окне вы знаете? 2. Как объявить переменную в MatLab? 3. Как сделать так, чтобы результат выполненных действий выводился в командном окне? 4. Как запретить вывод результата выполненных действий в командном окне? 5. Какую роль играет системная переменная ans? 6. Как возвратить в командную строку раннее выполненное действие? 7. Каков приоритет выполнения арифметических операций в MatLab? Как изменить последовательность выполнения арифмети- ческих операций? 8. Какие основные математические функции в MatLab вы знаете? 9. Как записываются в MatLab тригонометрические функции? Приведите примеры. 10. Как перевести градусы в радианы и обратно? 11. С помощью какого знака можно перенести часть арифмети- ческого выражения на другую строку? ЛАБОРАТОРНАЯ РАБОТА № 2 «М-ФАЙЛЫ. ОРГАНИЗАЦИЯ ВВОДА/ВЫВОДА ДАННЫХ» Цель работы 1. Изучить структуру и приобрести навыки работы с файла- ми-сценариями. 2. Освоить работу функций по интерактивному взаимодейст- вию m-файлов с пользователем: input, disp. 3. Изучить форматный вывод данных. Краткие методические указания 1. Написать файл-сценарий, который выдаѐт пользователю приглашение для ввода исходных данных. Данные вводятся через клавиатуру. 9 Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» 2. Вывести результаты вычислений в командное окно, исполь- зуя функции форматного вывода. Варианты заданий 1. Написать программу, которая пересчитывает длину из метров в ярды (1 ярд = 91,44 см). 2. Написать программу, которая пересчитывает расстояние между кораблями из «морских миль» в километры (1 миля = 1852 метра). 3. Написать программу, которая пересчитывает массу из ун- ций в килограммы (1 унция = 28,349523125 грамм). 4. Написать программу, которая пересчитывает объем ин- формации из килобайт в терабайты. 5. Написать программу, которая пересчитывает площадь зе- мельного участка из десятин в квадратные метры (1 десятина = 1,0925 гектара). 6. Известны координаты двух точек на плоскости. Вычислить расстояние между точками. 7. Даны катеты прямоугольного треугольника. Вычислить длину гипотенузы и периметр треугольника. 8. Треугольник задан координатами своих вершин. Вычис- лите периметр и площадь треугольника. 9. Известна длина гипотенузы равнобедренного прямоуголь- ного треугольника. Вычислить длину катета. 10. Известны длины двух диагоналей ромба. Вычислить длину стороны ромба. 11. Дана сторона квадрата. Вычислить его периметр, площадь и длину диагонали. 12. Известна длина диагонали квадрата. Найти длину стороны, периметр и площадь квадрата. 13. Вычислить объем прямоугольного параллелепипеда и длину большой диагонали: V=abc, d c2 a2 b2 14. Даны длины сторон прямоугольного параллелепипеда. Найти площадь боковой поверхности. 15. Даны основания и высота равнобедренной трапеции. Найти периметр и площадь трапеции. 16. Вычислить площадь круга S и длину окружности L. 10