Лабораторная работа № 3 - “Массивы и графики в среде MATLAB” (1249998)
Текст из файла
Лабораторная работа № 3.
“Массивы и графики в среде MATLAB”.
1.Создать дневник сеанса работы в MatLab с помощью команды
diary C:\labrab_3.txt.
А. Ввод и редактирование массивов.
2.Создать в командном окне Matlab [Л. №2, с.6] :
2.1. вектор-строку и матрицу 3х3, используя конкатенацию.
2.2. вектор-строку, задавая начальное значение, шаг изменения и конечное значение элементов вектора, применяя знак “двоеточие”.
2.3. вектор-столбец с элементами, представленными арифметическими выражениями [Л. №1, с.8].
2.4. вектор-столбец из вектора строки путем транспонирования [Л. №2, с.10].
2.5. матрицу небольшого размера из командной строки с использованием клавиши “Enter” вместо знака “;” [Л. №2, с.7].
2.6. матрицу размером 2х4, состоящую из одних нулей с помощью функции zeros (см. генерирование элементов матрицы [л.3.1, с.8]). Присвоить любым двум элементам матрицы значения, отличающиеся от 0. Вызвать фрагменты записанной матрицы, содержащие измененные элементы, по следующим обращениям к ее частям: имя_матрицы(1:2,3) и имя_матрицы(1:2,3:4). Пояснить такую форму записи.
ПРИМЕЧАНИЕ: смотрите по команде “>>help elmat” в командной строке информацию о функциях, используемых для создания массивов.
3. Отредактировать одну из созданных выше матриц (она должна иметь имя) с помощью редактора массивов Array Editor, который можно вызвать двойным щелчком (2ЛКМ) на строке с именем переменной в окне Workspace. В отдельные клетки появившейся таблицы вводятся числа, выражения, переменные или функции [Л. №2, с.7].
4. Создать в командной строке пустой массив M=[] и заполнить его с помощью редактора массивов Array Editor. Выяснить, как добавить или удалить строку или столбец в создаваемом массиве.
5. Выполнить команды who и whos и пояснить полученные результаты [л.1, с.6]. Сравнить результаты с данными в окне Workspace. Сохранить содержимое рабочего пространства [л.1, с.5] командами меню “File” - “Save Workspace As…” и запомнить, какое расширение будет присвоено созданному файлу. Обратить внимание на дуальность записи команды загрузки данных в рабочее пространство [л.1, с.7, 8].
ВОПРОСЫ: А1. Что такое вектор, матрица и массив? Как задается имя массива и как обратиться к элементу вектора и матрицы?
А2. Что такое конкатенация; зачем и как она применяется в Matlab? Каким образом разделяются элементы массива при его записи в Matlab?
А3. Как записать значения переменной в заданном диапазоне с известным шагом изменения значений? Можно ли при записи индексов элементов матрицы обращаться к группе элементов строки и/или столбца? Как записать в индексах “все элементы строки и/или столбца”?
А4.Как обратиться с помощью индекса к группе элементов вектора, размещенных в массиве последовательно? Как «растянуть» матрицу в единый вектор-столбец ? [л.3.1, с.11] Что такое транспонирование матрицы и как оно выполняется в Matlab? Как ввести матрицу небольшого размера из командной строки без использования знака “;” ?
А5. Как создать новую переменную в окне Workspace? Как задать или отредактировать ее значения, если переменная является массивом, используя контекстное меню этого окна? Как заполнить пустой массив, созданный в командной строке, с помощью редактора массивов Array Editor?
А6. Как можно “генерировать” массивы, состоящие из одних нулей или единиц? Можно ли получить эффект при использовании этого метода для создания векторов или матриц, в которых не все элементы являются нулями или единицами? Что такое зона просмотра и зона редактирования текстового поля окна “Command Window” ? Как отредактировать в командной строке значения элементов массивов, размещенных в зоне просмотра?
А7. Что такое рабочее пространство? Что позволяют увидеть команды who и whos? Какое расширение присваивается файлу при сохранении содержимого рабочего пространства? Что содержится в рабочем пространстве? Что такое дуальность записи команд?
Б. Работа с выражениями в MATLAB.
6. Выполнить произвольные арифметические операции с целыми числами, а также с числами, имеющими дробную десятичную часть и, так называемую, “научную систему” записи. Научная форма записи еще называется экспоненциальным видом представления числа; эта форма использует мантиссу, букву “е” и показатель степени (например, 2.8510e3, где е – основание степени равное 10; показатель степени может быть отрицательным числом) [Л. 1, с. 5,8].
7. Выполнить 3 способами возврат в командную строку ранее введенных выражений [л.2, с.3] : с помощью клавиш “↑” и “↓”; копированием из зоны просмотра; вставкой из окна Command History. Обратить внимание, что 2ЛКМ на какой – либо команде в этом окне равнозначно вводу данной команды в командную строку с последующим нажатием клавиши <Enter>.
8. Выполнить ввод форматов и запомнить форму вывода результатов и количество знаков после десятичной точки в числах, выведенных с использованием следующих форматов: format long, format short, format short e, format bank [Л. 1, с.10]. Для этого после ввода в командную строку формата вернуть одно или несколько ранее введенных выражений (см. п.5), выполнить их и обратить внимание на произошедшие изменения. Ознакомиться с тем, что введенная функция format без параметров восстанавливает используемое по умолчанию состояние format short. Определить, что выполняют форматы compact и loose (широкий) [Л. 1, с. 12].
9. Ознакомиться в Help (или в лекции 3.1, с.8) с назначением функции rand и с особенностями применения встроенных функций в Matlab [Л. 2, с.1]. Записать выражение N=fix(10*rand(1,10)), вывести на экран значения N и пояснить полученный результат.
10. Прочитать текст команд, изображенный на рисунке в лекции 2 на стр. 5, и понять, как в Matlab можно выявить семантические (смысловые) ошибки, допущенные при написании выражения. Обратить внимание, что функция pretty выводит в командное окно символьное выражение в виде, близком к принятому в математике написанию формул.
ВОПРОСЫ: Б1. В каком случае результату вычислений присваивается имя ans ? Можно ли в одну строку ввести несколько выражений и/или команд? Как предотвратить вывод результата исполнения выражения на экран?
Б2. Какие знаете способы возврата в командную строку ранее введенных выражений? Можно ли редактировать в командной строке? Есть ли возможность исполнить команду, сохраненную в окне Command History, без предварительного копирования ее в зону редактирования? Как скопировать последовательность команд из этого окна в командную строку?
Б3. Какие знаете форматы вывода результатов вычислений? Как записывается команда о формате и каков диапазон ее действия? Как вернуть формат задаваемый “по умолчанию” и какое имя имеет функция формата, устраняющая при выводе результата вычислений лишние пустые строки?
Б4. Пояснить, приведенное в п.7 выражение с функциями fix и rand.
Б5. Пояснить, иллюстрацией решения какой задачи являются выражения, приведенные на рисунке в лекции 2 на стр. 5. Прокомментировать все строчки записей.
В. Преобразования и параметры массивов.
11. Выполнить операции горизонтального и вертикального “сцепления” матриц или векторов из массивов, выполненных в предыдущих пунктах лабораторной работы и пригодных для этих операций [Л. 3.1, с.11]. Создать новый массив на основе существующего, выделив из него часть (блок) с меньшим числом строк и/или столбцов [Л. 3.1, с.10]. Выполнить удаление строки или столбца матрицы, используя пустые квадратные скобки [ ]. См. [Л. 3.1, с.11]. Изменить размер матрицы с помощью функции reshape(имя_матрицы, число_строк, число_столбцов). Учесть, что число элементов в новой и старой матрицах должно быть одинаковым.
12. Записать скаляр, вектор и двумерный массив. Вычислить для них функции size и ndims и пояснить результат [Л.2, с. 8].
13. Выполнить умножение квадратных матриц и матрицы на скаляр двумя способами: с помощью знака умножения “*” и - сочетания этого знака с точкой ”.*” [л.3.1, с.2, 3]. Пояснить результаты и, что означают эти способы умножения.
14. Записать матрицы A=[1 1 1; 2 2 2; 3 3 3] и B=[0 0 0; 7 7 7; 1 2 3]. Получить результат для операции отношения А<=B и пояснить его [л.3.1, с.18]. При необходимости и имеющейся возможности смотрите справку по логическим операциям с помощью команды doc ops .
15. Создать вектор с использованием векторной индексаци (т.е. применения вектора в качестве индекса) на основе ранее созданного вектора [Л.3.1, с.1]. Для этого записать вектор v=[3;4], матрицу I=[1 1; 2 2; 2 2; 1 1] и получить связанную с ними матрицу A=v(I). Такая процедура является вариантом множественной индексации. Пояснить полученный результат и сформулировать требование к значениям элементов матрицы I.
ВОПРОСЫ: В1. Какие должны выполняться условия для горизонтального и вертикального “сцепления” матриц или векторов? Как получить новый массив с меньшими размерами из существующего массива ? Что можно удалить, используя символы изображения пустого массива (пустые квадратные скобки [ ]): один элемент массива, строку или столбец полностью (рассмотреть применительно к вектору и матрице)?
В2. Есть ли в Matlab функция, позволяющая изменить число строк и столбцов при сохранении числа элементов массива? Пояснить, какие размер и размерность имеют в Matlab скаляр, вектор и двумерный массив.
В3. Что означают в Matlab арифметические знаки с точкой (.* , ./ , …)
и без точки? Нужно ли при сравнении двух массивов с помощью операторов отношения иметь одинаковый размер массивов? Какой размер будет иметь результирующий массив и что он будет содержать?
В4. Что такое векторная индексация (индексация вектором)? Какому требованию должны удовлетворять значения элементов вектора, который используется в качестве индекса? Какие знаете записи индексов элементов векторов и матриц, если не используется для этого вектор?
Г. Построение графиков в MATLAB.
16. Задать вектор Y, состоящий из 5-7 элементов, и получить кусочно-линейную зависимость его элементов от их индексов по функции plot(Y) [Л. 3.2, с. 1,2]. Задать t=1:10, a=t+t.^2*i, построить график plot(a) и обратить внимание, на каких осях откладываются действительные и мнимые части комплексного числа [Л.1, с.12; л. 4.1, с. 6] при построении графика.
17. Задать изменения аргумента t в интервале от 0 до 2 с шагом 0.1 и получить графическую зависимость y=sin(t) по функциям plot(y) и plot(t,y) [Л. 3.2, с. 2,3]. Задать b=10a , где а – комплексное число из п. 14, построить график plot(a,b) и объяснить полученный результат.
18. Задать с помощью функции plot одновременное выполнение на одном графике трех любых математических зависимостей [Л. 3.2, с. 5].
19. Получить с помощью функции plot изображение синусоиды зеленой пунктирной линией со знаками х в расчетных точках. Обеспечить такой интервал между знаками х, чтобы они не задевали друг друга [Л. 4.1, с. 1].
Построить синусоиду красной сплошной линией с черными знаками “о” в расчетных точках.
20. Создать функцией subplot одновременный вывод на экран 4-х подграфиков (создав матрицу рисунков 2х2) и получить на одном графике зависимость cos(x)-1, на другом – sin(x) [Л. 4.1, с. 5]. Не стирать функцию sin(x) и добавить на один с ней график функцию cos(x), т.е. необходимо предварительно выполнить команду hold on [Л. 4.1, с. 5]. Получить на графике cos(x)-1 логарифмический масштаб по оси Y [Л. 4.1, с. 2].
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.