Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
16.04.2013
Размер:
6.19 Кб
Скачать
Лабораторная работа 1. Знакомство с пакетом Matlab.

Начнем с создания ярлыка MATLAB 6.0 на своем рабочем столе. Затем отредактируем свойства ярлыка так, чтобы рабочим каталогом стал корневой каталог Вашего сетевого диска H:\ Затем запустим MATLAB. Перед Вами окно команд MATLAB, в котором можно непосредственно вводить команды и клавишей ENTER запускать их на выполнение. Попробуйте: введите после символа приглашения >>2*2 и нажмите ENTER, sin(1) и нажмите ENTER, rand и нажмите ENTER, help help и нажмите ENTER, и т.д. Убедитесь в том, что введенные команды хранятся в стеке и доступ к ним клавишами-стрелками вверх-вниз.

1. Скопируйте с диска I: на диск H: файл matlab.ug и затем откройте его из MATLAB Command Windows (Меню: File, Open M-file, выбрать диск H:, маска файлов *.ug). Вы можете затем ознакомиться с содержащейся в нем информацией. Оставьте блокнот с ним открытым для возможного постоянного к нему доступа командой переключения окон 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, используя начальное и конечное значение и шаг?

Команды можно записывать в текстовом ASCII файле и, если присвоить ему расширение m (получим m-файл процедуру), запускать эти команды последовательно на выполнение, введя в командной строке имя этого m-файла. Таким образом в MATLAB можно программировать.

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

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

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

Создайте простейший m-файл функцию, например, y=X^2 (qvadrat.m). Обратите внимание на то, что для вычисления функции от вектора (x=1:5;), необходимо использовать поэлементное выполнение операции выполнения в квадрат (x.^2). Как Вы думаете, почему?

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
а

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

Соседние файлы в папке lab1