MatlabРефераты >> Математика >> Matlab
Вы возможно уже знаете, что особые свойства магического квадрата связаны с различными способами суммирования его элементов. Если вы берёте сумму элементов вдоль какой-либо строки или столбца, или вдоль какой-либо из двух главных диагоналей, вы всегда получите одно и тоже число. Давайте проверим это, используя MATLAB. Первое утверждение, которое мы проверим -
sum (А)
MATLAB выдаст ответ
ans =
34 34 34 34
Когда выходная переменная не определена, MATLAB использует переменную ans, коротко от answer - ответ, для хранения результатов вычисления. Мы подсчитали вектор-строку, содержащую сумму элементов столбцов матрицы А. Действительно, каждый столбец имеет одинаковую сумму, магическую сумму, равную 34.
А как насчет сумм в строках? Лучший способ получить сумму в строках - это транспонировать нашу матрицу, подсчитать сумму в столбцах, а потом транспонировать результат. Операция транспонирования обозначается апострофом или одинарной кавычкой. Она зеркально отображает матрицу относительно главной диагонали и меняет строки на столбцы. Таким образом
sum(A') '
вызывает результат вектор-столбец, содержащий суммы в строках
ans = 34
34
34
34
Сумму элементов на главной диагонали можно легко получить с помощью функции diag, которая выбирает эту диагональ.
diag (A)
ans = 16
10
7
1
А функция
sum (diag (А) ) вызывает
ans = 34
Другая диагональ, называемая антидиагональю, не так важна математически, поэтому MATLAB не имеет специальной функции для неё. Но функция, которая вначале предполагалась для использования в графике, fliplr, зеркально отображает матрицу слева направо.
sum(diag(fliplr(A)))
ans = 34
Индексы
Элемент в строке i и столбце j матрицы А обозначается A(i,j). Например, А(4,2) - это число в четвертой строке и втором столбце. Для нашего магического квадрата А(4,2) = 15. Таким образом, можно вычислить сумму элементов в четвертом столбце матрицы А, набрав
A(1,4) + А(2,4) + А(3,4) + А(4,4)
получим
ans = 34
Однако это не самый лучший способ суммирования отдельной строки.
Также возможно обращаться к элементам матрицы через один индекс, A(k). Это обычный способ ссылаться на строки и столбцы матрицы. Но его можно использовать только с двумерными матрицами. В этом случае массив рассматривается как длинный вектор, сформированный из столбцов исходной матрицы.
Так, для нашего магического квадрата, А(8) - это другой способ ссылаться на значение 15, хранящееся в А(4,2).
Если вы пытаетесь использовать значение элемента вне матрицы, MATLAB выдаст ошибку:
t=A(4,5)
??? Index exceeds matrix dimensions.
С другой стороны, если вы сохраняете значение вне матрицы, то размер матрицы увеличивается.
X=A;
X(4,5) = 17
X =
16 3 2 13 0
5 10 11 8 0
9 6 7 12 0
4 15 14 1 17
Оператор двоеточия
Двоеточие : - это один из наиболее важных операторов MATLAB. Он проявляется в различных формах. Выражение
1:10
- это вектор-строка, содержащая целые числа от 1 до 10
123456789 10
Для получения обратного интервала, опишем приращение. Например
100:-7:50
что дает
100 93 86 79 72 65 58 51
ИЛИ
0:pi/4:pi
что даст
О 0.7854 1.5708 2.3562 3.1416
Индексное выражение, включая двоеточие, относится к части матрицы.
A(1:k, j)
это первые k элементов j -го столбца матрицы А.
Так
sum(A(l:4,4))
вычисляет сумму четвертой строки. Но есть и лучший способ. Двоеточие, само по себе, обращается ко всем элементам в строке и столбце матрицы, а слово end — к последней строке или столбцу. Так
sum(А (:, end) )
вычисляет сумму элементов в последнем столбце матрицы А
ans = 34
2. Выражения
Как и большинство других языков программирования, MATLAB предоставляет возможность использования математических выражений, но в отличие от многих из них, эти выражения в MATLAB включают матрицы. Основные составляющие выражения:
• переменные
• числа
• операторы
• функции
Переменные
В MATLAB нет необходимости в определении типа переменных или размерности. Когда MATLAB встречает новое имя переменной, он автоматически создает переменную и выделяет соответствующий объем памяти. Если переменная уже существует, MATLAB изменяет ее состав и если это необходимо выделяет дополнительную память. Например,
num_students = 25
создает матрицу 1x1 с именем num_students и сохраняет значение 25 в ее единственном элементе.
Имена переменных состоят из букв, цифр или символов подчеркивания. MATLAB использует только первые 31 символ имени переменной. MATLAB чувствителен к регистрам, он различает заглавные и строчные буквы. Поэтому А и а - не одна и та же переменная. Чтобы увидеть матрицу связанную с переменной, просто введите название переменной.
2.1 Числа
MATLAB использует принятую десятичную систему счисления, с необязательной десятичной точкой и знаками плюс-минус для чисел. Научная система счисления использует букву е для определения множителя степени десяти. Мнимые числа используют i или j как суффикс. Некоторые примеры правильных чисел приведены ниже
3 -99 0.0001
9.6397238 1.60210e-20 6.02252e23
1i -3.14159j 3e5i
Числа с плавающей точкой обладают ограниченной точностью - приблизительно 16 значащих цифр и ограниченным диапазоном – приблизительно от 10-308 до 10308
2.2 Операторы
Выражения используют обычные арифметические операции и правила старшинства.
+ сложение
– вычитание
* умножение
/ деление
Λ степень
' комплексно сопряженное транспонирование
() определение порядка вычисления
2.3 Специальные символы
[ ] – квадратные скобки используют для создания матриц и векторов;
– пробел служит для разделения элементов матриц;
, – запятая применяется для разделения элементов матриц и операторов в строке ввода;
; – точка с запятой отделяет строки матриц, а точка с запятой в конце оператора (команды) отменяет вывод результата на экран;
: – двоеточие используется для указания диапазона (интервала изменения величины) и в качестве знака групповой операции над элементами матриц;
% – знак процента обозначает начало комментария;
! – отмечает начало команды DOS
’ – апостроф указывает на символьные строки.
2.4 Функции
MATLAB предоставляет большое количество элементарных математических функций, таких как abs, sqrt, exp, sin. Вычисление квадратного корня или логарифма отрицательного числа не является ошибкой: в этом случае результатом является соответствующее комплексное число. MATLAB также предоставляет и более сложные функции, включая Гамма функцию и функции Бесселя. Большинство из этих функций имеют комплексные аргументы. Чтобы вывести список всех элементарных математических функций, наберите
help elfun Для вывода более сложных математических и матричных функций, наберите