Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / Лабы 2 / LAB_01

.TXT
Скачиваний:
18
Добавлен:
17.04.2013
Размер:
6.15 Кб
Скачать
Лабораторная работа 1. Знакомство с пакетом Matlab.

1. Скопировать с диска I: на диск H: файл matlab.ug и затем открыть его из MATLAB Command Windows (Меню: File, Open M-file выбрать диск, маска файлов *.*). Вы можете затем ознакомиться с содержащейся в нем информацией. Оставить блокнот с ним открытым для возможного постоянного к нему доступа командой Alt+Tab.

2. В окне команд запустить программу demo, после остановки вращения картинки нажать кнопку Continue, нажать Vizit в разделе MATLAB, в разделе MATRICES открыть Select a demo и выбрать тему Intro - введение. Нажмите кнопку Start, затем Next и т.д. Вам будут демонстрироваться возможности MATLAB с текстовыми комментариями.

3. Просмотреть файл matlab.ug в индивидуальном режиме, здесь уже на русском языке Вы встретите пояснения к некоторым возможностям MATLAB, показанным в Intro.

4. Приступить к самостоятельной работе по предлагаемым ниже заданиям, копируя результаты своих действий из окна команд в файл отчета, который создать с помощью Меню: File, New, M-file. Откроется Блокнот, в котором Вы сможете набирать текстовую информацию (и копировать из MATLAB), а затем сохранить ее как текстовый файл под именем Rep_01.txt, в корневом каталоге диска H:.

5. Ввести векторы строки x=[1 1.1 1.2 1.3 1.4 1.5] и y=[1 2 3 4 5 6]. Транспонировать их. Найти сумму, разность, их линейную комбинацию с коэффициентами 3 и 5. Вычислить скалярное произведение и другие возможные произведения (в том числе и почленное). См. matlab.ug пп.: 1. 3. 4.

Как можно было бы быстро ввести векторы y, x, используя начальное и конечное значение и шаг?

Команды, которыми выполнялись действия п. 5 скопировать во вновь созданный текстовый файл (с раширением .m m-file процедуру)
с именем pr_01 (именно - pr_01.m). Удалить в нем выведенные результаты и признаки ввода команд >>. Т.е. оставьте только команды. Сохраните его и в окне команд MATLAB вызовите этот файл процедуру на выполнение, набрав после приглашения >> только имя этого m-файла, т.е. >>pr_01 и нажмите Enter. Произойдет последовательное выполнение этих команд с выводом на экран результатов.

Внимание! Если Вы хотите подавить вывод какого-либо результата на экран, то завершите ввод команды точкой с запятой. Команда будет выполнена, но результат не появиться на экране. В файле pr_01.m подавите все вывод всех команд, кроме последней, сохраните файл и снова вызовите на выполнение.

Свои действия по п. 5 перенестите в файл отчета, отредактируйте его, оставив только содержательную информацию и покажите преподавателю.

6. Создать матрицу А размера 2х3 из единиц (см. help ones) и В размера 3х2 из нулей (см. help zeros).

7. Командами who и whos просмотреть содержимое памяти. В чем разница между этими командами?

8. Заполнить матрицу А компонентами вектора х, а матрицу В компонентами вектора у. Найти произведение АВ. Коммутативно ли оно? Создать матрицу С из матрицы В так, чтобы элементы второго столбца были больше четырех. Создать матрицу D сначала из двух столбцов матрицы А, затем из первого и третьего столбца. См. matlab.ug 4.

9. Изменить первую координату вектора х на -6 и ввести восьмую координату равную модулю первой координаты. Транспонировать х.

10. Создать матрицу Е, приписав к матрице А третью строку из чисел 7 8 и 9. Транспонировать ее. Найти ее ранг (rank), убедиться в линейной зависимости строк. Переопределить элемент Е(3,3) равным 10. Для матрицы Е найти ранг (см. help rank), определитель (см. help det), обратную матрицу (см. help inv), собственные векторы и собственные значения (см. help eig). Сделать проверку полученных результатов для собственных векторов.

Действия по п. 10 перенесите в файл отчета.

11. Переопределить матрицу Е(i,j)=sin(i*j), размера 3х3, используя оператор цикла for (см. help for).

Указание: цикл можно записать в одной командной строке for i=1:3,for j=1:3,E(i,j)=sin(i*j),pause,end,end При этом наличие оператора pause позволит Вам наблюдать результаты выполнения каждого шага цикла. Повторите цикл, сначала убрав этот оператор а затем и подавив вывод результато вычислений на экран (; в конце оператора). В последнем случае выведете на экран матрицу Е и сравните результаты. Повторите с матрицей Е вычисления пункта 10.

Попробуйте ввести цикл "красиво":

for i=1:3
for j=1:3
E(i,j)=sin(i*j);
end
end
E

Создайте m-файл процедуру pr_02.m выполнящий команды п. 11, запустите его и отразите Ваши действия в файле-отчете.

12. Очистите память (clear), буфер команд (clc), просмотрите содержимое памяти (who, whos).

13. Предскажите результат и выполните цикл

for i=1:3
for j=1:4
if i==j,
a(i,j)=2;
elseif abs(i-j)==1,
a(i,j)=-1;
else
a(i,j)=0;
end
end
end
а

Составьте блок-схему этой "программы" и покажите преподавателю.

14. Смоделируйте эксперимент с совпадающими днями рождения, который мы провели на первой лекции (см. блок-схему алгоритма) и создай соответствующий файл процедуру pr_03.m и запустите его на выполнение

Подсказка (вариант этого файла)

k=1;
p=0
a(k)=floor(365*rand)+1;
A=[k a(k)]
for k=2:365
a(k)=floor(365*rand)+1;
A=[A; k a(k)]
for i=1:k-1
if a(k)==a(i)
p=1;
break
end
end
if p==1
break
end
end
[i k; a(i) a(k)]

Внимание! Кто воспользовался этой подсказкой должен представить преподавателю блок-схему алгоритма этой процедуры.

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

15. Используйте файл pr_03.m, подавив вывод информации для моделирования 10, 50 подобных экспериментов с сохранением информации о номере завершающего опрошенного.

Вариант процедуры:

b=0;for j=1:10,pr_03;b=[b;k];end

Какую роль здесь играет b?

16. Проведите эксперимент п. 15 для 1000 подобных экспериментов, постройте график hist(b) (см. help hist) и объясните полученный результат преподавателю.

Соседние файлы в папке Лабы 2