Практикум лаб раб. Контрольные вопросы для проверки усвоения материала и задания на выполнение работы
Скачать 1.14 Mb.
|
pi Число π >> pi ans = 3.1416 eps Погрешность для операций над числами с плавающей точкой >> eps ans = 2.2204e-016 realmin Наименьшее число с плавающей точкой >> realmin ans = 2.2251e-308 realmax Наибольшее число с плавающей точкой >> realmax ans = 1.7977e+308 inf Значение машинной бесконечности >> 5/0 ans = Inf nan Указание на нечисловой характер данных (Not-a-Number) >> 0/0 ans = NaN Для задания переменным значений используется операция присваивания, вводимая знаком равенства имя переменной = выражение. Функция – объект языка MATLAB со стандартным именем, который предназначен для выполнения действий с несколькими параметрами, которые заключены в круглые скобки и имеет формат [Y1, Y2, …] = имя функции (X1, X2, …), где имя функции – стандартное имя функции (X1, X2, …) – входные параметры, [Y1, Y2, …] – выходные (возвращаемые) параметры, которые часто представляются в виде вектора. Если результат вычислений не присваивается никакой переменной, то он автоматически помещаются в переменную с именем ans. Несколько стандартных математических функций системы MATLAB представлены в табл. 1.6. 12 Выражение – объект языка MATLAB, представляющий собой совокупность констант, функций и переменных, которые объединены символами операций. В системе MATLAB существует три типа выражений арифметические, логические и символьные. Таблица 1.6 Математические функции Функция Назначение Пример abs(a) Возвращает абсолютную величину для каждого числового элемента вектора а. Если а содержит комплексные числа, abs(a) вычисляет модуль каждого числа >> a =-5; abs(a) ans = 5 >> a = [-5 7 -6]; abs(a) ans = 5 7 6 exp(a) Возвращает экспоненту для каждого элемента 0.1484 1.0966 0.4034 factorial(a) Возвращает произведение всех натуральных чисел от 1 до a включительно >> a= 5; factorial(a) ans = 120 >> a=[5 6]; factorial(a) ans = 120 720 sqrt(a) Вычисление квадратного корня из элементов массива a >> a= 49; sqrt(a) ans = 7 >> a= [49 -49]; sqrt(a) ans = 7.0000 0 + 7.0000i log(a) Возвращает значение натурального логарифма элементов массива a >> a = 2; log(a) ans = 0.6931 >> a= [2 3]; log(a) ans = 0.6931 1.0986 log2(a) Возвращает значение логарифма по основанию элементов массива a >> a = 2; log2(a) ans = 1 >> a = [2 3]; log2(a) ans = 1.0000 1.5850 log10(a) Возвращает значение логарифма по основанию элементов массива a >> a = 2; log10(a) ans = 0.3010 >> a = [2 3]; log10(a) ans = 0.3010 0.4771 sin(a), asin(a), cos(a), acos(a), tan(a), atan(a), cot(a) Возвращает значение тригонометрической функции для каждого элемента a (если задан вектор. Аргумент тригонометрической функции задаѐтся в радианах. Для пе- ресчѐта использовать выражение рад = (град) >> a = 23; sin(a) ans = -0.8462 >> a = [2 3]; sin(a) ans = 0.9093 0.1411 % Примеры выражений >> x + sin (a + b – c / d) % Арифметическое выражение >> a – sqrt (b + c) & (i = = j) % Логическое выражение >> syms a b c; % Символьное выражение f = a + b + c 13 В системе MATLAB приоритет операций регулируют скобки (табл. 1.7). Математическое выражение должно быть записано в одну строку или с использованием многоточия в качестве указателя переноса строки y = (log10(8) + log10(3))*... 1/3(log10(16)) Таблица 1.7 Примеры различия записи выражений системы MATLAB от общематематической Математическая запись Запись в MATLAB -0,123 · 10 -7 -0,123e-7 123 · 4567 123*4567 8π + e 31 8*pi+exp(31) 7 39 x y abs(x)+sqrt(39)+y^7 sin 19 + sin19 sin(19)+sin(19*pi/180) log7 + log3 log(7)+log(3) Основным типом данных, с которым производятся вычисления в MATLAB является double. При этом все числа представляются в виде вещественных чисел с плавающей точкой двойной точности (8 байт. При этом достигается точность порядка 15 значащих цифр. Такой формат называется long. Чтобы не перегружать командное окно для вывода обычно используется формат short, при котором на экран выводятся только 4 знака после запятой. Для того, чтобы вывести вещественные числа в командное окно в формате двойной точности следует набрать команду format long. Вернуться в стандартный режим вывода можно командой format short. Для работы с целыми беззнаковыми числами можно использовать форматы uint8, uint16, uint32, а для работы с целыми числами со знаком int8, int16, int32. Цифра, которая входит в обозначение формата, показывает число двоичных разрядов, которые используются для представления чисел. Диапазоны используемых целых чисел приведены в табл. 1.8. Таблица 1.8 Диапазоны целых чисел Название Число битв представлении числа Диапазон чисел uint8 8 0…255 int8 8 -128…+127 uint16 16 0…65 535 int16 16 -32 768…+32 767 uint32 32 0…4 294 967 295 int32 32 -2 147 483 648…+2 147 483 647 Работа с комплексными числами Комплексные числа содержать действительную Re(X) и мнимую Im(X) части и записываются в виде X = Re(X) + Im(X)*i. Мнимая часть имеет множитель i или j, означающей корень квадратный из -1. Для работы с комплексными числами и данными в MATLAB используются встроенные функции, показанные в табл. 1.9. файлы Работа из командной строки MATLAB не всегда удобна при разработке и отладке программ. Гораздо удобнее готовить, редактировать и сохранять исходные тексты программ в среде встроенного редактора, который одновременно является и отладчиком программ. Для 14 вызова редактора нужно набрать команду edit в командной строке. Окно редактора MATLAB имеет несколько ниспадающих меню для выполнения действий типа сохранить, посмотреть и отладить файлы. Этот редактор делает некоторые простейшие синтаксические проверки и выделяет разными цветами различные элементы программного кода. Создаваемые в редакторе текстовые файлы сохраняются с расширением .m, поэтому их часто называют файлами. файлы могут быть файлами-сценариями (скриптами, состоящими из последовательностей исполняемых команд MATLAB, или М-функциями, которые допускают использование аргументов и могут иметь выходные данные. Обычно в виде скриптов оформляются основные программы, а в виде М-функций отдельные подпрограммы, которые можно неоднократно использовать с помощью вызовов. Таблица 1.9 Функции для работы с комплексными числами Функция Назначение Пример complex(a,b) Возвращает комплексное число (a – вещественная часть, b – мнимая часть. >> a = 4; b = 2; complex(a,b) ans = 4.0000 + 2.0000i conj(X) Возвращает сопряжѐнное комплексное число >> a = 4-3i; conj(a) ans =4.0000 + 3.0000i imag(X) Возвращает мнимую часть комплексного числа. >> a = 6-3i; imag(a) ans = -3 real(X) Возвращает вещественную часть комплексного числа. >> a = 6-3i; real(a) ans = 6 isreal(X) Возвращает 1, если X вещественный, и 0, если хотя бы один компонент имеет мнимую часть. >> a = 6-3i; isreal(a) ans = 0 angle(X) Служит для получения аргумента комплексного числа, углы лежат в диапазоне [-π; +π], в радианах >> a = 6+3i; angle(a) ans = 0.4636 abs(X) Возвращает модуль комплексного числа. >> a = 6+3i; abs(a) ans = 6.7082 Z=R.*exp(i*theta) Даѐт переход от произвольной формы представления комплексного числа к алгебраической, где R = abs(X), theta = angle(X). >>a = 4-3i; R = abs(a); theta = angle(a); R.*exp(i*theta) ans = 4.0000 – 3.0000i Структура файла-сценария обычно имеет следующий вид % Основной комментарий (имя программы) % Дополнительный комментарий (описание программы) Тело_файла (Содержит любые допустимые выражения MATLAB) При написании программ следует помнить в языке MATLAB переменные не описываются. Любое новое имя, появляющееся в тексте программы при ее выполнении, воспринимается системой как имя матрицы целесообразно каждый оператор записывать в отдельной строке текста программы. Признаком конца оператора является конец строки. Допускается размещать несколько операторов водной строке, тогда предыдущий оператор этой строки должен заканчиваться символом или « , »; длинные операторы записываются в несколько строк. При этом предыдущая строка оператора должна заканчиваться тремя точками « … »; 15 если очередной оператор не заканчивается символом « ; », результат его действия при выполнении программы будет выведен в командное окно. Если это не требуется, то вывод на экран результатов можно подавить, завершив оператор символом « ; »; в программах MATLAB символ окончания текста программы отсутствует. Стандартные файлы MATLAB В MATLAB используются несколько стандартных расширений файлов файлы (с расширением .m) – файлы, содержащие тексты программ на языке MATLAB (файлы-сценарии и файлы-функции); файлы – файлы с описанием оконных форм (Figure) пользовательского интерфейса, обычно используются в программах на MATLAB; файлы – файлы моделей Simulink; файлы – промежуточные файлы, содержащие скомпилированный код процедур MATLAB. Использование файлов обычно существенно повышает быстродействие по сравнению с выполнением (интерпретированием) файлов и позволяет защитить от несанкционированного доступа программный код файлы – файлы, содержащие данные в двоичном коде (обычно значения каких- либо переменных, доступ к которым возможен из командного окна MATLAB либо с помощью специальных средств Simulink. Подготовка к работе Ознакомиться с теоретическим материалом и рекомендованной литературой. Подготовить ответы на контрольные вопросы. Задание на выполнение работы Организовать ввод данных и вычисления согласно заданиям ниже. Задание Изучить структуру и меню основного окна MATLAB. Определить и записать название и версию используемого программного продукта. Ввести в командной строке, согласно варианту из табл. 1.10, системные переменные системные константы) и получить их значения в коротком и длинном форматах представления чисел. Таблица 1.10 Варианты для выполнения задания 1 № варианта Системные переменные 1 2π, eps, realmin, realmax, 1:0, 0:0 2 8π, eps4, realmin, realmax, 2:0, 0:0 3 25π, eps, realmin, realmax, 3:0, 0:0 4 5π, eps2, realmin, realmax, 4:0, 0:0 5 7π, eps7, realmin, realmax, 5:0, 0:0 6 24π, eps, realmin, realmax, 6:0, 0:0 7 π, eps2, realmin, realmax, 7:0, 0:0 8 3π, eps, realmin, realmax, 8:0, 0:0 9 8π, eps4, realmin, realmax, 9:0, 0:0 10 12π, eps, realmin, realmax, 10:0, 0:0 Результаты свести в таблицу, приведенную ниже, и проанализировать, заполнив ее третий столбец 16 Вводимая переменная Полученное значение Смысл системной переменной константы формат short формат long eps^2 формат short формат long realmin формат short формат long realmax формат short формат long 9/0 0/0 Задание В командном режиме создать 4 простые переменные и присвоить им числовые значения, полученные в результате вычисления арифметических выражений из табл. 1.11. Убедиться в правильности вычислений. Результаты внести в отчет. Используя встроенный редактор MATLAB, оформить решение указанных выше задач в виде программы и сохранить его в виде файла. Таблица 1.11 Варианты для выполнения задания 2 № варианта Арифметические выражения а) б) в) г) 1 2 5 7 16 7 4 17 sin 60 2,5 7 8 3 17 sin13 sin13 log 7 log3 1 5 2 0,16 8 15 sin18 6 15 3 cos 5 6 16 45 ctg tg 2 log 7 lg3 2 7 3 8 13 0,58 2 3 0, 25 0,16 6 6, 47 tg sin18 16 tg 2 lg30 log 8 3 7 4 0,5 3 8 7 4 17 sin 45 25 7 8 18 cos16 ctg 2 lg81 log 0,9 13 5 5 5 24 7,13 28 7 3 8 (7 15)8, 25 tg 18 sin18 ctg 2 log 2 lg10 13 7 6 3 11 3,19 14 sin18 3 5 0,855 1, 2 30 30 tg tg 2 log 19 lg19 8 3 7 6 15 0,15 cos17 7 11 2 cos 6 19 16 ctg tg lg 7 lg 0,8 12 7 8 5 12 5 7 3 3 17 cos30 7 49 18 18 ctg tg 2 lg 49 log 8 1 8 9 0,16 6,15 27 3 7 sin 5 ctg cos15 cos15 2 2 log 2 log 8 3 5 10 5,1 8 13 2 1 0,16 cos 45 sin 3 sin10 sin10 2 2 log 10 log 2 3 5 18 Отлаженную программу и результаты внести в отчет. Задание В командном режиме работы создать переменные и присвоить им числовые значения тригонометрических функций, согласно варианту из табл. 1.12. Результаты внести в отчет. Создать и отладить программу для решения изложенной выше задачи используя встроенный редактор MATLAB. Сохранить ее в виде файла. Отлаженную программу и результаты внести в отчет. Таблица 1.12 Варианты для выполнения задания 3 № варианта Функции 1 cos(1), sin(90 ), cos(45 ), tg(0 ), arcctg(10), sin(π/3) 2 sins(2), cos(45 ), sin(30 ), ctg(120 ), arctg(9), cos(π/6) 3 cos(3), sin(180 ), cos(60 ), tg(45 ), arcctg(8), sin(π/2) 4 sin(4), cos(90 ), sin(90 ), ctg(30 ), arctg(7), cos(π/9) 5 cos(5), sin(30 ), cos(50 ), tg(60 ), arcctg(6), sin(π/12) 6 sin(6), sin(10 ), cos(90 ), ctg(45 ), arctg(5), cos(π/6) 7 cos(7), sin(30 ), cos(50 ), tg(360 ), arcctg(4), sin(π/3) 8 sin(8), cos(90 ), sin(70 ), ctg(180 ), arctg(3), cos(π/2) 9 cos(9), sin(60 ), cos(50 ), tg(45 ), arcctg(2), sin(π/6) 10 sin(10), cos(45 ), sin(90 ), ctg(30 ), arcctg(1), cos(π/12) Задание Составить и отладить программу, которая должна работать в соответствии с алгоритмом, приведенным ниже Ввести три комплексных числа, согласно варианту из табл. 1.13. Вычислить действительные и мнимые части трех комплексных чисел z1, z2, z3. Вычислить сумму трех комплексных чисел z1, z2, z3 и занести ее в z4. Вычислить число z5 комплексно-сопряженное числу z4. Вычислить модули и аргументы для двух комплексных чисел z4 и z5, записать их в показательной форме. Сделать для проверки обратный переход – от показательной формы представления комплексного числа в алгебраическую форму для чисел z4 и z5. Отлаженную программу и результаты ее работы внести в отчет. Таблица 1.13 Варианты для выполнения задания 4 № варианта Комплексные числа 1 z1=4+2i, z2=5+3i, z3=3-i 2 z1=2+i, z2=4-3i, z3=1+6i 3 z1=7+2i, z2=3+2i, z3=2+4i 4 z1=4-3i, z2=6-i, z3=8+3i 5 z1=1-4i, z2=4-9i, z3=4-7i 6 z1=1+5i, z2=1+8i, z3=2+2i 7 z1=4+6i, z2=2-6i, z3=1-i 8 z1=8+7i, z2=6-3i, z3=3+9i 9 z1=9+8i, z2=4-6i, z3=2-5i 10 z1=4-9i, z2=4+5i, z3=4-3i 19 Требования к отчёту Отчѐт должен содержать титульный лист с указанием названия ВУЗа, кафедры, номера и темы лабораторной работы, а также фамилии ИО. студента, подготовившего отчѐт; цель выполняемой работы задания результаты выполнения задания. Контрольные вопросы Из каких частей состоит основное окно системы MATLAB? Дайте краткое описание каждой из этих частей. Что представляет собой режим прямых вычислений Режим команд Что такое текущая сессия Как просмотреть список переменных, созданных в текущей сессии Какие основные правила должны соблюдаться при вводе команд в командную строку Назовите основные объекты языка MATLAB. Что такое команда языка MATLAB? Опишите синтаксис команды HELP. Что такое оператор Какие виды операторов существуют Что такое константа Назовите основные системные константы MATLAB. Какие типы констант существуют Что такое переменная Назовите основные правила для составления имен переменных. Какая операция используется для задания переменным значений Опишите синтаксис этой операции. В какой переменной хранится возвращаемое функцией значение Что такое функция и каков ее формат Назовите основные математические функции, используемые в системе MATLAB. Что такое выражение в языке MATLAB? Назовите основные типы выражений. Какая команда позволяет получить сведения о переменных в рабочем пространстве Какая команда позволяет удалить переменные из памяти Что представляет собой комплексное число Какие основные функции используются для работы с комплексными числами Как выполнить очистку окна Command Windows? Какую функцию выполняет точка с запятой в конце команды Как можно использовать встроенный редактор MATLAB для создания и отладки программ Как организовать программу на языке MATLAB в виде файла Какие типы файлов используются в MATLAB? Рекомендуемая литература Matlab и Simulink – сообщество пользователей, материалы, книги, форум Электронный ресурс – Режим доступа http://matlab.exponenta.ru, свободный. – Загл. с экрана. Дьяконов, В. П. MATLAB. Полный самоучитель Текст / В. П. Дьяконов. – М ДМК Пресс, 2012. – 768 с. Дьяконов, В. П. MATLAB 6.5 SP1/7/7 SP1 + Simulink 5/6. Работа с изображениями и видеопотоками Текст / В. П. Дьяконов. – М СОЛОН-Пресс, 2005. – с. Солонина, АИ. Цифровая обработка сигналов. Моделирование в MATLAB Текст / АИ. Солонина, СМ. Арбузов. – СПб.: БХВ-Петербург, 2008. – 816 с. 20 Лабораторная работа №2 Работа с векторами и матрицами Цель работы Изучение способов создания векторов и матриц. Изучение основных операций с матрицами. Теоретический материал Задание матриц MATLAB – пакет программ, специально предназначенный для осуществления вычислений с векторами, матрицами и полиномами. Под вектором в MATLAB понимается одномерный массив чисел, а под матрицей – двумерный массив. При этом следует четко понимать, что вектор, вектор-строка, вектор-столбец – это математические объекты, а одномерный или двумерный массив – структура данных, предназначенная для хранения этих объектов. По умолчанию предполагается, что любая заданная переменная является вектором или матрицей (в терминах программы – массивом. Массиву (матрице) присваивается имя, а доступ к его элементам осуществляется с помощью целочисленных индексов, которые определяют порядковые номера элементов. В зависимости от количества индексов массивы разделяются на одномерные, двумерные и многомерные. Например, отдельное заданное число (скаляр) система воспринимает как матрицу размером х (массив из одной строки и одного столбца, вектор-строку из N элементов – как матрицу размером х (одномерный массива двумерный массив содержащий M строки столбцов как матрицу размером MxN. В системе MATLAB существует несколько способов задания матриц поэлементный ввод генерирование матрицы, используя готовые функции загрузка матрицы из внешних источников (файлов создание матрицы с помощью собственных функций. Для непосредственного ввода матрицы необходимо в квадратных скобках построчно набрать значения элементов, разделяя их пробелами или запятыми, а для обозначения окончания строки и перехода к следующей использовать точку с запятой >> V=[9 8 7 6 5] % создать вектор-строку из пяти целых чисел V = 9 8 7 6 5 >> A = [1 2 3; 4 5 6; 7 8 9] % создать матрицу х A = 1 2 3 4 5 6 7 8 9 Для создания вектора-столбца удобно использовать операцию транспонирования век- тора-строки, которая задается оператором « |