Сделай Сам Свою Работу на 5

ГЕНЕРАЦИЯ ВЕКТОРОВ (ранжированных переменных, т.е. массивов с постоянным шагом)





РАБОТА В РЕЖИМЕ ПРЯМЫХ ВЫЧИСЛЕНИЙ

1) Вычисляемое выражение набирается, редактируется (если нужно) в командной строке, ввод завершается нажатием клавиши ENTER.

Средства для редактирования в командной строке: клавиши ← и → - перевод курсора вдоль строки, Home, End – быстрый переход к началу и концу строки, ↑ и ↓ - клавиши перелистывания строк (с их помощью в командной строке можно восстановить для редактирования и выполнения ранее выполнявшиеся операторы), клавиши Delete и Backspace (← в верхней строке клавиатуры) – для удаления символа над курсором и слева от него. Кроме того, в командном окне имеется сверху панель инструментов, позволяющая делать стандартные операции копирования, удаления, вставки из буфера обмена и др.

2) Для переноса длинного выражения на другую строку используется многоточие (… - три или более точек в конце строки). При нажатии ENTER курсор переместится в начало следующей строки, где можно продолжать набор оператора.

3) Основные системные переменные:

pi – значение числа π

ans – хранит результат последней выполненной операции (в том числе

и если этот результат – массив чисел). К ней можно обращаться



по имени, что бывает удобно при программировании.

inf - символ машинной бесконечности. Положительная величина,

которая больше чем любое представимое в оперативной памяти

компьютера положительное число, что так же бывает удобно

иметь при составлении алгоритмов.

i- мнимая единица – sqrt(-1). MATLAB выполняет действия в алгебре

комплексных чисел вида z = x+ i*y, где x – вещественная часть,

y – мнимая часть числа.

4) Знаки основных арифметических операций:

‘+ ‘- сложение, ‘-‘ – вычитание , ‘*’ – умножение, ‘/’ – деление слева направо, ’\’ – деление справа – налево, ‘^’ – возведение в степень.

Знаки операций применимы к векторным и матричным операндам.

Так, результаты операций A/B и B\A могут быть различны. Кроме того, одна из этих операций может быть возможна, в то время как другая – нет. Первая: A/B выполняется как A*inv(B), а вторая: B\A – как inv(B)*A. Вспомним, что умножение матриц не обладает свойством коммутативности. Знак умножения, примененный к матричным операндам, выполняет операцию умножения матриц по правилам матричной алгебры.



5)Постановка знака ‘;’в конце вычисляемого выражения не обязательна, его присутствие блокирует вывод на экран компьютера результата выполнения выражения, после которого он поставлен. Установка точки с запятой в конце каждого оператора желательна при написании М-программ, особенно – когда промежуточными результатами являются массивы чисел. (Заметим, правда, что иногда полезно умышленно опустить точку с запятой, если вывод вычисленного значения оператора желателен).

Действия с векторами и матрицами в MATLAB

Перейдем теперь в командное окно MATLAB. Выполните в командном окне предлагаемые далее действия с матрицами. При этом данный текст лучше не закрывать, а свернуть его, нажав на кнопку “-“ в правом верхнем углу окна Microsoft Word. (В этом случае вы сможете восстановить этот текст в процессе работы, активизируя его нажатием левой клавиши мыши на нижней панели)

Задание 1: (действия с векторами)

 

1) Введите вектор 'a' из 9 элементов. С экрана элементы вектора вводятся в квадратных скобках, разделяемые пробелом.

 

a = [1 2 3 4 6 4 3 4 5] % Вводите свой вектор с другими значениями.

 

Нажмите ENTER, посмотрите на сообщение на экране.

2) Теперь выполните то же но с точкой с запятой:

 

a = [1 2 3 4 6 4 3 4 5]; % Используйте клавиши перелистывания ↑ и ↓, чтобы не

% повторять набор заново!!

Нажмите ENTER, посмотрите на сообщение на экране.

 

3) Прибавьте число 2 к элементам вектора а :

Выполните оператор:

 

b = a + 2 % Сейчас мы умышленно не ставим точку с запятой, чтобы



% посмотреть на результат

4) Транспонируем вектор b:

C=b’ % Знак транспонирования матрицы – апостроф ‘ (соответствует

% клавише буквы Э на нижнем регистре латиницы)

 

5) Попробуйте выполнить операцию

 

D= a+C % убедитесь, что она невозможна, поймите почему (?).

 

Выполните

 

D=a’+C

 

Выполните слияние:

 

E=[a;b]

E=[E;b]

 

6) Постройте график значений элементов вектора b относительно номера компоненты:

 

plot(b)

grid on

 

MATLAB может строить графики, используя указываемые ему символы.

Постройте тот же график звездочками:

 

plot(b,'*')

axis([0 10 0 10])

 

Постройте гистограмму:

bar(b)

 

ГЕНЕРАЦИЯ ВЕКТОРОВ (ранжированных переменных, т.е. массивов с постоянным шагом)

 

Выполните операторы:

 

X=1:10 % шаг 1 % не ставьте точки с запятой, наблюдайте результаты

Y=0:0.25:1 % шаг 0.25

Z=0:pi/4:2*pi % шаг pi/4

 

X1=0:0.1*pi:4*pi

Y1=sin(X1)

 

Постройте графики:

plot(X1,Y1,X1,cos(X1))

 

Команда plot позволяет задать стиль и цвет линий.

Выполните:

plot(X1, Y1, 'g-', X1, cos(X1), ‘k:’)

 

Некоторые свойства линий:

Цвет Тип маркера Тип линий
y желтый точка сплошная
m розовый кружок : пунктирная
c голубой крестик -. штрих-пунктирная
r красный + знак «плюс» -- штриховая
g зеленый * звездочка    
b синий s квадрат    
w белый d ромб    
k черный v треугольник вершиной вниз    
    ^ треугольник вершиной вверх    
    < треугольник вершиной влево    
    > треугольник вершиной вправо    
    p пятиконечная звезда    
    h шестиконечная звезда    

 

 

Задание 2: (действия с матрицами)

 

 

% Создание матриц производится так же как и создание векторов, при этом

% используется знак (;) , чтобы отделить вводимые строки матрицы.

Введите матрицу размерности (3,3):

 

A = [1 2 0; 2 5 -1; 4 10 -1] % Введите свои значения. Не ставьте блокировку (;),

% чтобы следить за результатами.

 

Транспонируйте матрицу 'A' :

 

B = A'

 

Выполните умножение

 

C = A * B

 

Возведите квадратную матрицу в 5 степень:

 

F=A^5

 

Найдите обратную матрицу:

 

X = inv(A)

 

Вычислите матрицу

 

I =A*inv(A) % ясно, что должна получиться единичная матрица

 

Вычислите определитель матрицы:

 

D=det(A)

 

Найдите собственные значения матрицы:

 

eig(A)

 

% Функция "poly" генерирует вектор, элементами которого являются

% коэффициенты характеристического многочлена матрицы:

% det(lambda*I - A)

 

p = round(poly(A))

 

% Функция “round” округляет до ближайшего целого

% Корни многочлена p – характеристические значения исходной матрицы

% Таким образом, мы можем найти собственные значения матрицы оператором

 

roots(p) % Выполните вычисления этим способом

 

% В любой момент мы можем получить список значений переменных, хранящихся в памяти

% используя команды "who" или "whos".

 

Выполните:

 

who

whos

 

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

 

Выполните:

 

A % ENTER

 

X % ENTER

 

p % ENTER

 

F % ENTER

 

ПОЭЛЕМЕНТНОЕ ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ

 

Арифметические операции умножения, деления и возведения в степень имеют своих двойников с поэлементным выполнением. Поясним: пусть

 

x=[1 2 3 4] и y=[5 6 7 8].

 

Предположим, что вам хотелось бы перемножить (поделить, возвести в степень) элементы векторов x и y.

Если мы напишем x*y или x/y или x^3, то получим сообщение об ошибке, так как строки нельзя перемножить, разделить друг на друга по правилам матричной алгебры (несоответствие размерностей). Однако для получения желаемого результата в MATLAB есть дубли арифметических операций. Они имеют те же значки, что и основные операции, но с точкой перед знаком операции.

 

Выполните в командном окне:

 

x.*y % Результат – вектор, элементы которого равны произведениям соответствующих элементов векторов x и y

x./y % Элементы x будут поделены на соответствующие элементы y

x.^3 % Элементы вектора x будут возведены в 3-ю степень.

 

 

MATLAB работает с комплексными числами и бесконечными величинами.

ВЫПОЛНИТЕ:

 

sqrt(-1)

 

log(0)

 

ГЕНЕРАЦИЯ СПЕЦИАЛЬНЫХ МАТРИЦ:

 

Для создания специальных матриц существуют функции:

 

zeros – создание матрицы с нулевыми элементами,

ones - создание матрицы с единичными элементами,

rand – создание матрицы со случайными элементами (равномерно на [0,1] распределенными случайными числами),

eye – создание единичной матрицы

 

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

 

A = zeros(3,2)

AA = zeros(5)

B = ones(1,10)

BB = ones(3)

C=rand(2,5)

CC=rand(7)

E=eye(5)

 

ОПЕРАТОРЫ СЛИЯНИЯ МАТРИЦ

 

Выполните операторы

A=ones(2,3)

V=ones(1,3)

A=[A;V] % матрица A получит дополнительную строку из элементов вектора V

B=rand(2,2)

C=rand(3,3)

G=cat(1,A,C) % Объединение матриц A и C вдоль размерности 1 (по вертикали)

GG=cat(2,A,C) % Объединение матриц вдоль размерности 2 (по горизонтали)

 

ОПЕРАТОРЫ ВЫРЕЗКИ ДЛЯ МАТРИЦ

 

Выполните операторы, наблюдайте за результатами

 

A=[1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

16 17 18 19 20]

B=A(1,:) % Взятие первой строки исходной матрицы

C=A(:,4) % Взятие четвертого столбца исходной матрицы

D=A(3:4,1:2) % Выделение (вырезка) строк 3 – 4 , столбцов 1 – 2

G=A(2:3,3:4) % Выделение (вырезка) строк 2 – 3 , столбцов 3 – 4

E=A(:) % Создание единого массива (столбца) из элементов матрицы A.

 

 

МЕТОД ГАУССА

 

В заключение, решите систему 5-и линейных алгебраических уравнений с 5 неизвестными методом Гаусса.

Введите матрицу системы

 

A=rand(5,5) % здесь коэффициенты системы – случайные числа. Введите свои

% конкретные значения

B=rand(5,1) % вектор-столбец – правая часть системы уравнений, которая в

% матричной форме может быть записана как A*X=B, где X –

% столбец неизвестных. Решение системы, как известно,

% X=A^(-1)*B, где A^(-1) – обратная матрица для матрицы A

 

РЕШЕНИЕ СИСТЕМЫ:

 

X=A\B % Оператор выполняется как inv(A)*B, что и требуется для решения

% системы. Отметим, что в действительности этот оператор

% выполняется путем реализации метода Гаусса для решения исходной

% системы линейных алгебраических уравнений.

 

Таким образом, для того, чтобы решить систему линейных алгебраических уравнений методом Гаусса в MATLAB, достаточно выполнить всего один оператор – оператор деления (справа – налево) правой части системы на матрицу системы уравнений.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.