![]() |
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Понятие о математическом выражении
Центральным понятием всех математических систем является математическое выражение. Оно задает то, что должно быть вычислено в численном (реже символьном) виде. Но в отличие от других систем, эти выражения в 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)]; - задает значение выражения в качестве элементов матрицы.
б) генерировать матрицы, используя встроенные функции
Имеется ряд специальных функций для задания векторов и матриц. Например, функция 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 строки:
Сохраним этот файл под именем 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; Просмотров: 265; Нарушение авторского права страницы