Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
Лабораторная работа 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) и объясните полученный результат преподавателю.
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) и объясните полученный результат преподавателю.