Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практическая работа МатЛАБ 2016.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
155 Кб
Скачать
☆

Выделение треугольных частей матриц

При выполнении ряда матричных вычислений возникает необходимость в выделении треугольных частей матриц. Следующие функции обеспечивают такое выделение:

  • tril(X) — возвращает матрицу, все элементы которой выше главной диагонали X заменены нулями, неизменными остаются лишь элементы нижней треугольной части, включая элементы главной диагонали;

  • tril(X.k) — возвращает неизменной нижнюю треугольную часть матрицы X начиная с k-й диагонали. При k=0 это главная диагональ, при k>0 — одна из верхних диагоналей, при k<0 — одна из нижних диагоналей.

Пример:

» М=[3.1.4:8.3.2;8.1.1]

М = 

3     1     4

8     3     2

8     1     1

» tril(M) 

ans =

3    0    0

8    3    0

8    1     1

  • triu(X) — возвращает неизменной верхнюю треугольную часть матрицы X включая элементы главной диагонали, и заменяет нулями остальные элементы;

  • triu(X.k) — возвращает неизменной верхнюю треугольную часть матрицы X начиная с k-й диагонали. При k=0 — это главная диагональ, при k>0 — одна из верхних диагоналей, при k<0 — одна из нижних диагоналей.

Пример:

м =

3     1     4

8    3    2

8     1     1

» triu(M)

ans =

3    1    4

0    3    2 

0    0    1

Арифметические операторы и функции

Арифметические операторы являются самыми распространенными и известными. В отличие от большинства языков программирования в системе MATLAB практически все операторы являются матричными, т. е. предназначены для выполнения операций над матрицами. В табл. 8.1 приводится список арифметических операторов и синтаксис их применения.

Таблица 8.1. Арифметические операторы и функции MATLAB

Функция

Название Оператор

Синтаксис

Plus

Плюс +

М1+М2

Uplus

Унарный плюс +

+М

Minus

Минус

М1-М2

Uminus

Унарный минус

-М

Mtimes

Матричное умножение *

М1*М2

Times

Поэлементное умножение массивов .*

А1*А2

Mpower

Возведение матрицы в степень

М1^х

Power

Поэлементное возведение массива в степень

А1^х

Mldivide

Обратное (справа налево) деление матриц \

M1\M2

Mrdivide

Деление матриц слева направо /

М1/М2

Ldivide

Поэлементное деление массивов справа налево . \

А1.\А2

Rdivide

Поэлементное деление массивов слева направо . /

А1 . /А2

Kron

Тензорное умножение Кронекера kron

kron(X.Y)

>> m1=[2 6 3; 5 8 -3]

m1 =

2 6 3

5 8 -3

>> m2=[7 6 10; -5 6 -5]

m2 =

7 6 10

-5 6 -5

>> m2-m1

ans =

5 0 7

-10 -2 -2

>> minus(m2,m1)

ans =

5 0 7 // результат одинаковый

-10 -2 -2

Обратите внимание на то, что каждый оператор имеет аналогичную по назначению функцию. Например, оператору матричного умножения * соответствует функция mtimes(Ml,M2). Примеры применения арифметических операторов уже не раз приводились, так что ограничимся несколькими дополнительными примерами:

Соответствие функций операторам и командам в системе MATLAB является одним из основных положений программирования. Оно позволяет одновременно использовать элементы как операторного, так и функционального программирования.

Следует отметить, что в математических выражениях операторы имеют определенный приоритет исполнения. Например, в MATLAB приоритет логических операторов выше, чем арифметических, приоритет возведения в степень выше приоритетов умножения и деления, приоритет умножения и деления выше приоритета сложения и вычитания. Для изменения приоритета операций в математических выражениях используются круглые скобки. Степень вложения скобок не ограничивается.