Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по работе с вистеме матричных расчетов MatLAB.doc
Скачиваний:
21
Добавлен:
28.05.2022
Размер:
693.76 Кб
Скачать

Основные понятия

Система MatLAB работает в основном с характерными для нее данными и типами данных поэтому введем ряд определений.

Массив – это данные (объекты) одной природы сгруппированные по одному и тому же характерному признаку.

Матрица – массив представленный в виде прямоугольной таблицы, каждый элемент имеет номер (индекс), определяющий однозначно его положение в матрице, в индексировании идет сначала номер строки, а потом номер столбца, где расположен элемент.

Многомерный массив – пространственная матрица имеющая три и более размерностей, каждый элемент также имеет индекс, однозначно определяющий его положение. Грубо говоря многомерный массив – это матрица матриц.

Вектор – одномерная матрицы. Без особых указаний со стороны пользователя это матрица-столбец.

Структура – это набор разнотипных полей. Поле может содержать как массив так и число так и строку. Одно поле содержит данные только одного типа.

Строка – набор (массив) символов символьных таблиц компьютера.

Типы данных

Обобщенный тип double – это общий тип для всех числовых величин. Это тип представления числовой информации в компьютере с использованием плавающей запятой. Для этого представления отводиться 8 байт, в результате десятичные цифры имеют точность в 15 значащих цифр. Наибольшее по модулю число это 1.797693134862316е+308; наименьшее по модуль число – 2.225073858507201е-308. Для простой записи этих чисел системой зарезервированы слова realmax и realmin.

Для понижения точности представления чисел используется тип single. Для представления числа в данном типе необходимо записать в приветствии:

>> x=single(7.7)

x =

7.7000

Данный тип данных использует 4 байта памяти.

Очень много целых типов данных, определенных лишь диапазоном значений. Количество памяти отображено в их названии. Также в их названии отображен и знак.

  • int8 – тип данных использующийся для представления целых чисел с использованием 8 байт памяти. Тип имеет знак и может принимать значения от -128 до +127 (т.е ).

  • uint8 – тип аналогичный int8, но не имеющий знаки и принимающий значения от 0 до 255 ( ).

  • int16

  • uint16

  • int32

  • uint32

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

>>e=int8(2.2)

e=

2

>>e=int8(2.8)

e=

3

Как отмечалось выше MatLAB работает с массивами и даже любое «одиночное число» с любым типом будет рассматриваться системой кА массив на один элемент:

>>e=[e 2]

e=

2

По умолчанию любая созданная числовая переменная имеет тип double.

Помимо числовых форматов (самых важных) существует и строковый формат представления информации. Тип char отвечает за это. Строковый тип данных это массив символов. При работе со строкой необходимо использовать все правила работы с массивами, но с поправкой на символы. Об этом типе данных пойдет речь в других лекциях.

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

Лекция № 2

Простейшие вычисления. Работа с матрицами и векторами. Многомерные матрицы. Диалоговый режим работы

Самое примитивное использование системы MatLAB – это научный калькулятор. При этом использовании система работает всего лишь на сотой доли его возможностей, но такое использование вполне достаточно для получения хороших результатов в определенной мере.

При таком использование необходимо использовать определенные правила записи математических функций (см. таблицу 2.1).

Таблица 2.1 Синтаксис математических функций и операций.

Синтаксис математики

Синтаксис программы

sin(x), cos(x), tg(x), ctg(x), sec(x), csec(x); arcsin(x) и т.д.; sh(x) и т.д.; arcsh(x) и т.д.

sin(x), cos(x), tan(x), ctan(x), sc(x), csc(x); asin(x) и т.д.; hsin(x) и т.д.; hasin(x) и т.д.

ln(x), lg(x), ,

log(x), log10(x), exp(x), a^b

+ - * / ( )

+ - * / ( )

Использование MatLAB в качестве калькулятора при использование вещественных чисел достаточно просто и его освоение не выходит за границы знания синтаксиса среды.

Мы рассмотрим в данной части лекции лишь пару специальных математических операций:

  • Использование деления слева на право. Это деление отличается записью наклонной черты. Привычное нам деление записывается «/», а это деление записывается «\». Поясним на примере вычисления:

>> 8\2

ans =

0.2500

>> 8/2

ans =

4

Т.е. В первом случае как рас и использовано деление о котором идет речь, записанное выражение эквивалентно нашим обычным «двум восьмым», т.е. четверти, что и показало вычисление. Подобная операция используется при работе со СЛАУ.

Еще мы рассмотрим основные функции касающиеся работы с числами и выражениями:

Таблица 2.2 Числовые функции.

Функция и ее синтаксис

Описание

format short

Формирует все последующие выдачи ответов и чисел в сокращенном формате

format rat

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

format long

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

sqrt(x)

Вычисляет корень квадратный

pow2(x)

Возводит двойку в степень х

pi

Выдает число пи

round(x)

Округляет число до целого по всем правилам округления

fix(x)

Отсекает дробную часть без округления

floor(x)

Округляет до меньшего целого

ceil(x)

Округляет до большого целого

mod(x,y)

rem(x,y)

sign(x)

Выдает знак числа формируя ответ в виде 1 со знаком или нуля в случае х=0

factor(x)

Раскладывает на простые сомножители

isprime(x)

Выдает истину (1) если х простое число

primes(x)

Формирует ряд простых чисел до числа х

rat(x)

Представляет число х в виде дроби или совокупности дробей

factorial(x)

Вычисляет факториал числа х

nchosek(n,m)

Вычисляет число сочетаний m из n

abs(x)

Вычисляет модуль числа х (в том числе и комплексных)

inf

Эквивалент бесконечности

NaN

Неопределенность вида 0/0 или ∞/∞

Вообще работать с обычным вещественным переменным в системе довольно просто поэтому рассмотренных нами функций будет вполне достаточно.

Наибольший интерес нас будет интересовать использование комплексного переменного и работы с комплексными числами. Приведем синтаксис записи комплексного числа:

8+i*7

-9-j*1

Как видите программа может воспринимать (точнее в системе зарезервировано) мнимую единицу как j или i. Все (почти все) вышеперечисленные функции вещественного исчисления могут работать и с комплексными числами.

Для начала работы мы должны рассмотреть наиболее часто применяемые функции:

Таблица 2.3 Функции комплексного переменного.

Функция и ее синтаксис

Описание

abs(x)

Вычисляет модуль числа х

conj(x)

Возвращает число комплексно-сопряженное х

imag(x)

Выдает мнимую часть числа

real(x)

Выдает действительную часть числа

angle(x)

Возвращает аргумент (в радианах) числа, но надо следить за квадрантом куда попадает число, т.к. среда использует arctg

isreal(x)

Проверяет число на его принадлежность к классу вещественных числе, возвращает 1 (истину) если это так, иначе (х – комплексное число) возвращает лож (0)

При работе с комплексными числами можно использовать соотношение Эйлера, т.е. записав число в экспоненциальной форме можно получить (нажав Enter) это же число но в алгебраической записи. При этом надо помнить что угол указывается в радианах.

>> 5*exp(-j*pi/6)

ans =

4.3301 - 2.5000i

При записи операторов в среде можно использовать специальные функции подавляющие вывод результата выражения (вычисления) сразу же. Этим специальным символом служит точка с запятой т.е. «;». При записи нескольких выражений в одну строчку можно применять помимо точки с запятой и запятую. В случае если необходимо растянуть один оператор на несколько строк (для лучшей наглядность, например) необходимо использовать троеточие «…», записывают троеточие в месте переноса выражения на другую строчку:

>> A=[1 2 8 ...

3 7 0 ...

7 9 5];