русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Формирование векторов и матриц


Дата добавления: 2015-07-23; просмотров: 737; Нарушение авторских прав


Особенности задания векторов и матриц


Описанные выше простые правила вычислений распространяются и на гораздо более сложные вычисления, которые (при использовании обычных языков программирования типа Бейсик или Паскаль) требуют составления специальных программ. MATLAB — система, специально предназначенная для проведения сложных вычислений с векторами, матрицами и массивами. При этом она по умолчанию предполагает, что каждая заданная переменная — это вектор, матрица или массив. Все определяется конкретным значением переменной. Например, если задано Х=1, то это значит, что X —это вектор с единственным элементом, имеющим значение 1. Если надо задать вектор из трех элементов, то их значения следует перечислить в квадратных скобках, разделяя пробелами. Так, например, присваивавание
» V=[l 2 3]

V=
1 2 3
задает вектор V, имеющий три элемента со значениями 1, 2 и 3. После ввода вектора система выводит его на экран дисплея.
Задание матрицы требует указания нескольких строк. Для разграничения строк используется знак ; (точка с запятой). Этот же знак в конце ввода предотвращает вывод матрицы или вектора (и вообще результата любой операции) на экран дисплея. Так, ввод
» М=[1 2 3: 4 5 6; 7 8 9];
задает квадратную матрицу, которую можно вывести:
» M
M =
1 2 3

4 5 6

7 8 9
Возможен ввод элементов матриц и векторов в виде арифметических выражений, содержащих любые доступные системе функции, например:
» V= [2+2/(3+4) exp(5) sqrt(l0)]:

» V

V =

2.2857 148.4132 3.1623
Для указания отдельного элемента вектора или матрицы используются выражения вида V(1) или M(i. j). Например, если задать
» М(2. 2)
arts= 5
то результат будет равен 5. Если нужно присвоить элементу M(i. j) [ В тексте программ MATLAB лучше не использовать i и j как индексы, так как i и j — обозначение квадратного корня из -1. Но можно использовать I и J. — Примеч. ред. ] новое значение х, следует использовать выражение
M(ij)=x
Например, если элементу М(2, 2) надо присвоить значение 10, следует записать



» М(2. 2)=10
Выражение М( i) с одним индексом дает доступ к элементам матрицы, развернутым в один столбец. Такая матрица образуется из исходной, если подряд выписать ее столбцы.
Следующий пример поясняет такой доступ к элементам матрицы М:
» М=[1 2 3: 4 5 6: 7 8 9]

М =
1 2 3
4 5 6
7 8 9

» М(2)
ans =
4
» M(8)

ans =
6
» M(9)

ans =
9
» М(5)=100;

» М

М =
1 2 3
4 100 6
7 8 9
Возможно задание векторов и матриц с комплексными элементами, например:
» i=sqrt(-l):
» СМ =[1 2: 3 4] + i*[5 6: 7 8]
или
» СМ - [1+5*1 2+6*1: 3+7*1 4+8*1]
Это создает матрицу:
CM=
1.0000 + 5.00001 2.0000 + 6.00001

3.0000 + 7.00001 4.0000 + 8.00001
Наряду с операциями над отдельными элементами матриц и векторов система позволяет производить операции умножения, деления и возведения в степень сразу над всеми элементами, т. е. над массивами. Для этого перед знаком операции ставится точка. Например, оператор * означает умножение для векторов или матриц, а оператор .* —поэлементное умножение всех элементов массива. Так, если М — матрица, то М.*2 даст матрицу, все элементы которой умножены на скаляр — число 2. Впрочем, для умножения матрицы,на скаляр оба выражения — М*2 и М.*2 — оказываются эквивалентными.
Имеется также ряд особых функций для задания векторов и матриц. Например, функция magic(n) задает магическую матрицу размера пхп, у которой сумма всех столбцов, всех строк и даже диагоналей равна одному и тому же числу:
» M=magic(4)

М =

   
   
   
   
   

» sum(M)

ans=
34 34 34 34

» sum(M')

ans=
34 34 34 34

» sum(diag(M))

ans=
34

» M(1.2)+M(2.2)+M(3.2)+M(4.2)
ans= 34

Уже сама по себе возможность создания такой матрицы с помощью простой функции magic заинтересует любителей математики. Но векторных и матричных функций в системе множество, и мы их детально рассмотрим в дальнейшем. Напомним, что для стирания переменных из рабочей области памяти служит команда clear.

Объединение малых матриц в большую


Описанный способ задания матриц позволяет выполнить операцию конкатенации — объединения малых матриц в большую. Например, создадим вначале магическую матрицу размера 3x3:
» A=magic(3)
А=

   
   
   
   
         

Теперь можно построить матрицу, содержащую четыре матрицы:
» В-[А А+16:А+32 А+16]

В =

   
   
   
   
   
   

Полученная матрица имеет уже размер 6x6. Вычислим сумму ее столбцов:
» sum(B)

ans =
126 126 126 126 126 126
Любопытно, что она одинакова для всех столбцов. А для вычисления суммы стро! используем команду
» sum(B.')

ans =
78 78 78 174 174 174
Здесь запись В.' означает транспонирование матрицы В, т. е. замену строк столб цами. На этот раз сумма оказалась разной. Это отвергает изначально возникши предположение, что матрица В тоже является магической. Для истинно магической матрицы суммы столбцов и строк должны быть одинаковыми:
» D=magic(6)
D=

   
   
   
   
   
   
               

» sum(D)
ans=
111 111 111 111 111 111

» sum(D.')

ans=
111 111 111 111 111 111
Более того, для магической матрицы одинаковой является и сумма элементов по основным диагоналям (главной диагонали и главной антидиагонали).

Удаление столбцов и строк матриц


Для формирования матриц и выполнения ряда матричных операций возникает необходимость удаления отдельных столбцов и строк матрицы. Для этого используются пустые квадратные скобки [ ]. Проделаем это с матрицей М:
» М=[1 2 3; 4 5 6; 7 8 9]
М =

   
   
   
   
         

Удалим второй столбец используя оператор : (двоеточие):

» М(:.2)=[ ]
1 3

4 6

7 9

А теперь, используя оператор : (двоеточие), удалим вторую строку:
» М(2.:)=[ ]
М =
1 3

7 9

 

 



<== предыдущая лекция | следующая лекция ==>
Форматы чисел | Операции с рабочей областью и текстом сессии


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.207 сек.