Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Понятие о математическом выражении



 

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

Вот примеры простых математических выражений:

2.301*sin(x)

4+exp(3)/5

sqrt(y)/2

sin(pi/2)

1.2.4 Действительные и комплексные числа

 

Число – простейший объект языка MATLAB, представляющий количественные данные. Числа можно считать константами, имена которых совпадают с их значениями:

-3

Возможно представление чисел в научном формате с указанием мантиссы и порядка чисел:

2.301

123.456e-24

-234.456e10

В мантиссе чисел целая часть отделяется от дробной не запятой, а точкой. Для отделения порядка чисел от мантиссы используется символ e. Пробелы между символами в числах не допускаются.

Числа могут быть комплексными: z=Re(x) + Im(x)*i.

3i

2j

2+3i

-3.14i

-123.456-3i

Константы и системные переменные

 

Основные системные переменные (задаются системой при ее загрузке и могут переопределяться):

i или j – мнимая единица

pi – число " пи"

eps – погрешность операций над числами с плавающей точкой (2-52)

realmin – наименьшее число с плавающей точкой (2-1022)

realmax – наибольшее число с плавающей точкой (21023)

inf – значение машинной бесконечности

ans – переменная, хранящая результат последней операции

NaN – указание на нечисловой характер данных (Not-a-Number)

Бесконечность появляется при делении на нуль или при выполнении математи­ческого выражения, приводящего к переполнению, т.е. к превышению realmax. Не число (NaN) генерируется при вычислении выражений типа 0/0 или Inf- Inf, которые не имеют определенного математического значения.

 

Пример:

> > 2*pi

> > eps

> > 1/0

Inf

> > 0/0

NaN

1.2.6 Переменные и присваивание им значений

 

{Имя_переменной} = {выражение}

В MATLAB нет необходимости в определении типа переменных или размерно­сти. Когда MATLAB встречает новое имя переменной, он автоматически созда­ет переменную и выделяет соответствующий объем памяти. Если переменная уже существует, MATLAB изменяет ее состав и если это необходимо выделяет дополнительную память. Например, если мы назначим:

a = 25,

система создает матрицу 1x1 с именем а и сохраняет значение 25 в ее един­ственном элементе. Имя переменной может содержать сколько угодно символов, но запоминается и идентифицируется только 31 начальный символ. Имя должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания. Недопустимо включать в имена переменных пробелы и спец. знаки +, - и т.д.

Уничтожение определений переменных:

who и whos– вывести список имеющихся переменных;

clear – уничтожение определений всех переменных;

clear x – уничтожить только x;

clear a, b, c – только a, b и c;

 

Операторы

 

Простейшие алгебраические:

+ сложение

- вычитание

* умножение

/, \ деление

^ степень

' комплексно сопряженное транспонирование

() определение порядка вычисления

 

Отношения:

< - меньше

> - больше

< = - меньше или равно

> = - больше или равно

== - равно

~= - не равно

Функции

MATLAB предоставляет большое количество элементарных математических функций, таких как abs, sqrt, exp, sin. Вычисление квадратного корня или лога­рифма отрицательного числа не является ошибкой: в этом случае результатом является соответствующее комплексное число. MATLAB также предоставляет и более сложные функции, включая Гамма функцию и функции Бесселя. Боль­шинство из этих функций имеют комплексные аргументы. Чтобы вывести спи­сок всех элементарных математических функций, наберите:

help elfun

Для вывода более сложных математических и матричных функций, наберите

help specfun

help elmat

Некоторые функции, такие как sqrt и sin, - встроенные. Они являются частью MATLAB, поэтому они очень эффективны, но их вычислительные детали труд­но доступны. В то время как другие функции, такие как gamma и sink, реализо­ваны в виде программного кода в М-файлах. Поэтому вы можете легко увидеть их код и, в случае необхо­димости, даже модифицировать его.

Форматы вывода результата вычислений

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

 

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

 

> > format name, где name – имя формата

 

short – короткое представление в фиксированном формате (5 знаков)

short e – короткое представление в экспоненциальном формате (5 знаков мантиссы и 3 знака порядка)

long – длинное представление в фиксированном формате (15 знаков)

long e – (15 знаков мантиссы и 3 знака порядка)

hex – представление чисел в шестнадцатеричной форме

bank – представление для денежных единиц

 

Задание формата сказывается только на форме вывода чисел. Вычисления все равно происходят в формате двойной точности, а ввод возможен в любом удобном для пользователя виде. Альтернативный вариант задания формата представления числовых данных осуществляется через File -> Preferences -> Command Window -> Numeric Format.

Основные операции над матрицами

Задание векторов и матриц

 

Вы можете вводить матрицы в MATLAB несколькими способами:

а) вводить полный список элементов

 

> > V=[1 2 3] – задает вектор, имеющий три элемента;

> > M=[1 2 3; 4 5 6; 7 8 9]; - задает матрицу 3х3;

> > V=[2+2/(3+4) exp(5) sqrt(10)]; - задает значение выражения в качестве элементов матрицы.

 

> > A(1: 5, 1: 5)=0 A = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > > A(1,: )=1 A = 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   > > A(end, 3: end)=-1 A = 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 -1  

б) генерировать матрицы, используя встроенные функции

 

Имеется ряд специальных функций для задания векторов и матриц. Например, функция magic(n) задает магическую матрицу размера nxn, у которой сумма всех столбцов, всех строк и даже диагоналей равна одному и тому же числу:

 

> > M=magic(4), а также:

 

zeros все нули

ones все единицы

rand равномерное распределение случайных элементов

randn нормальное распределение случайных элементов

eye единичная матрица (в диагонали единицы)

 

> > Z = zeros(2, 4)

> > F = 5*ones(3, 3)

> > N = 10*rand(1, 10)

в) загружать матрицы из внешних файлов

 

Команда load считывает двоичные файлы, содержащие матрицы, созданные в MATLAB ранее, или текстовые файлы, содержащие численные данные. Тексто­вые файлы должны быть сформированы в виде прямоугольной таблицы чисел, отделенных пробелами, с равным количеством элементов в каждой строке.

На­пример, создадим вне MATLAB текстовой файл, содержащий 4 строки:

 

16.0 3.0 2.0 13.0
5.0 10.0 11.0 8.0
9.0 6.0 7.0 12.0
4.0 15.0 14.0 1.0

Сохраним этот файл под именем magik.dat. Тогда команда load magik.dat прочитает этот файл и создаст переменную magik, содержащую нашу матрицу.

г) загружать матрицы из М-файлов

Вы можете создавать свои собственные матрицы, используя М-файлы, которые представляют собой текстовые файлы, содержащие код MATLAB. Просто соз­дайте файл с выражением, которое вы хотите написать в командной строке MATLAB. Сохраните его в файле с расширением.m.[2]

Например, создадим файл, содержащий строку:

A=[16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1];

Сохраним его под именем magik.m. Тогда выражение magik прочитает файл и создаст переменную А, содержащую исходную матрицу.

Замечание: Очень часто необходимо произвести формирование упорядоченных числовых последовательностей (числовых массивов - векторов ). Первоначальное создание таких массивов производится с помощью оператора ": " (без кавычек)

{Начальное_значение}: {Шаг}: {Конечное_значение}

 

Пример:

> > 1: 5

> > i=0: 2: 10

> > x=1: -.2: 0

> > x=0: 5

Обращение к элементам матрицы

Если мы ввели какую-либо матрицу, то она ав­томатически запоминается средой MATLAB и мы можем к ней легко обра­титься, указав имя переменной, которой она присвоена.

Для выбора отдельного элемента, расположенного в строке i и столбце j матрицы можно использовать индексы А(i, j)

> > А(2, 2)

> > А(2, 2)=10

Если вы пытаетесь использовать значение элемента вне матрицы, MATLAB вы­даст ошибку: t=A(4, 5)

??? Index exceeds matrix dimensions.

 

Найдем сумму элементов в четвер­том столбце матрицы А, набрав:

 

А(1, 4) + А(2, 4) + А(3, 4) + А(4, 4) получим

ans = 34

То же самое можно сделать, набрав:

sum(A(:, 4))


Поделиться:



Последнее изменение этой страницы: 2019-05-17; Просмотров: 240; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.045 с.)
Главная | Случайная страница | Обратная связь