- •1.Интерфейс и система консольных команд matlab.
- •2. Основные типы данных matlab. Преобразования данных.
- •3. Арифметические и матричные вычисления.
- •4. Вычисление элементарных и специальных математических функций в matlab.
- •6. Особенности файлового ввода-вывода.
- •7 Обработка текстовых данных
- •8 Символьные вычисления в Matlab.
- •11 Использование графических функций низкого уровня и дескрипторногой графики
- •12 Обработка растровых изображений.
- •13. Использование элементов графического интерфейса пользователя.
- •14. Численные методы в среде matlab. Преобразования полиномов. Преобразование Фурье.
- •15. Численные методы в среде matlab. Интерполяция функций одной и нескольких переменных.
- •16. Численные методы в среде matlab. Решение алгебраических уравнений и систем уравнений.
- •17. Численные методы в среде matlab. Численное интегрирование.
- •18. Численные методы в среде matlab. Интегрирование обыкновенных линейных дифференциальных уравнений.
- •19. Сходства и отличия организации системы команд и функций и основных констант сред SciLab и matlab. Специфика написания и вызова функций.
- •20. Графические возможности Scilab
3. Арифметические и матричные вычисления.
Функция norm()
Для матриц
norm(X) — наибольшее из сингулярных чисел X, max(svd(X))
norm(X,2) <=> norm(X)
norm(X,1) — наибольшая сумма по столбцам
= max(sum(abs(X))).
norm(X,inf) — наибольшая сумма по строкам
= max(sum(abs(X'))).
norm(X,'fro') норма Фробениуса
= sqrt(sum(diag(X'*X))).
cond(a) — возвращает число обусловленности матрицы а как
отношение максимального сингулярного числа матрицы к
минимальному. Если результат близок к 1, матрица хорошо
обусловлена.
det(a) — определитель матрицы
rank(a) — ранг матрицы
inv(a) — обратная матрица
orth(a) — находит ортонормированный базис
для матрицы а
lu(a) — lu-разложение матрицы на нижне- и
верхнетреугольные формы
qr(a) — qr-разложение матрицы на унитарную
и верхнетреугольную матрицу
Матричные функции
expm(x) — матричная экспонента
logm(x) — матричный натуральный логарифм
sqrtm(x) — матричный квадратный корень
Внимание! Эти операции выполняются не поэлементно, а по
стандатрным правилам линейной алгебры, используя
разложения функций в степенные ряды
Арифметические операторы задают выполнение арифметических операций.
В MATLAB практически все операторы предназначены для выполнения опера_
ций над матрицами (табл. 3.1). Ввиду очевидности арифметических операторов
их подробное описание опущено.
Таблица 3.1. Арифметические операторы и функции MATLAB
Функция |
Название |
Оператор |
Синтаксис |
plus |
Плюс |
+ |
M1+M2 |
uplus |
Унарный плюс |
+ |
+M |
minus |
Минус |
- |
M1-M2 |
uminus |
Унарный |
- |
-M |
mtimes |
Матричноеумножение |
* |
M1*M2 |
times |
Поэлементное умножение массивов |
.* |
A1*A2 |
mpower |
Возведение матрицы в степень |
^ |
M1^x |
power |
Поэлементное возведение массива в степень |
.^ |
A1^x |
mldivide |
Обратное (справа налево) деление матриц |
\ |
M1\M2 |
mrdivide |
Деление матриц слева направо |
/ |
M1/M2 |
ldivide |
Поэлементное деление массивов справа налево |
.\ |
ldivide Поэлементное деление массивов справа налево .\ A1.\A2 |
rdivide |
Поэлементное деление массивов слева направо |
./ |
A1./A2 |
kron |
Тензорное умножение Кронекера |
kron |
kron(X,Y) |
4. Вычисление элементарных и специальных математических функций в matlab.
Специальные математические функции являются решениями дифференциальных уравнений специального вида или обозначениями некоторых видов интегралов. Специфика специальных функций в MATLAB та же, что и элементарных, — их аргументами могут быть как одиночные численные значения, так и массивы чисел. В последнем случае функции возвращают массив тех же размерности и размера с преобразованием каждого элемента в соответствии с действием функции.
1. Функции Эйри
Функция Эйри формирует пару линейно независимых решений линейного дифференциального уравнения вида
Связь между функцией Эйри и модифицированной функцией Бесселя выражается следующей формулой:
где
airy(Z) — возвращает функцию Эйри, AKZ), для каждого элемента комплексного массива Z;
airy(k.Z) — возвращает различные варианты результата в зависимости от значения k:
k=0 — тот же результат, что и airy(Z);
k=l — производную от А1 (Z);
k=2 — функцию Эйри второго рода, 61 (Z) :
k=3 — производную от B1(Z).
2. Функции Бесселя
Линейное дифференциальное уравнение второго порядка вида
где v — неотрицательная константа, называется уравнением Бесселя, а его решения известны как функции Бесселя. Функции Jv(z) и J_v(z) формируют фундаментальное множество решений уравнения Бесселя для неотрицательных значений п (это так называемые функции Бесселя первого рода): где для гамма-функции используется следующее представление:
Второе решение уравнения Бесселя, линейно независимое от Jv(z), определяется как и задает функции Бесселя второго рода Yv(z).
Функции Бесселя третьего рода (функции Ханкеля) и функция Бесселя первого и второго рода связаны следующим выражением:
bessel j(nu,Z) — возвращает функцию Бесселя первого рода, Jv(z), для каждого элемента комплексного массива Z. Порядок ш может не быть целым, однако должен быть вещественным. Аргумент Z может быть комплексным. Результат вещественный, если Z положительно. Если nu и Z — массивы одинакового размера, то результат имеет тот же размер. Если любая входная величина — скаляр, результат расширяется до размера другой входной величины. Если одна входная величина — вектор-строка, а другая — вектор-столбец, результат представляет собой двумерный массив значений функции.
bessely(nu.Z) — возвращает функцию Бесселя второго рода, Yv(z).
[J.ierr] = besse1j(nu,Z) и [Y.ierr] = bessely(nu.Z) функции всегда возвращают массив с флагами ошибок:
ierr = 1 — запрещенные аргументы;
ierr = 2 — переполнение (возвращает Inf);
ierr = 3 — некоторая потеря точности при приведении аргумента;
ierr = 4 — недопустимая потеря точности: Z или nu слишком велики;
ierr = 5 — нет сходимости (возвращает NaN).
3. Бета-функция и ее варианты
Бета-функция определяется как
где Г (z) — гамма-функция. Неполная бета-функция определяется по формуле
beta(Z.W) — возвращает бета-функцию для соответствующих элементов комплексных массивов Z и W. Массивы должны быть одинакового размера (или одна из величин может быть скаляром).
beta i nc ( X , Z , W ) — возвращает неполную бета-функцию. Элементы X должны быть в закрытом интервале [0, 1].
beta 1 п ( Z , W ) — возвращает натуральный логарифм бета-функции log ( beta ( Z , W ) ) , без вычисления beta(Z.W). Так как сама бета-функция может принимать очень большие или очень малые значения, функция betaln(Z.W) иногда более полезна, так как позволяет избежать переполнения.
4. Эллиптические функции и интегралы
Эллиптические функции Якоби определяются интегралом и соотношениями
сn(u) = cos ф,
cn(u)=cosф,
dn(u) = (1-sin2ф)1/2,
аm(u) = ф.
В некоторых случаях при определении эллиптических функций используются модули k вместо параметра гл. Они связаны выражением k = т = sin a .
[SN.CN.DN] = ellipj(U.M) — возвращает эллиптические функции Якоби SN, CN и . DN, вычисленные для соответствующих элементов — аргумента U и параметра М. Входные величины U и М должны иметь один и тот же размер (или любая из них может быть скаляром).
[SN.CN.DN] = ellipj(U,M,to1) — возвращает эллиптическую функцию Якоби, вычисленную с точностью tol . Значение tol по умолчанию — eps; его можно увеличить, тогда результат будет вычислен быстрее, но с меньшей точностью.
5. Функции ошибки
Функция ошибки определяется следующим образом:
erf(X) — возвращает значение функции ошибки для каждого элемента вещественного массива X. Дополнительная (остаточная) функция ошибки задается соотношением
erfc(X) — возвращает значение остаточной функции ошибки.
erfcx(X) — возвращает значение масштабированной остаточной функции ошибки. Эта функция определяется так:
егfсх(х) = ех erfc(x).
erfinv(Y) — возвращает значение обратной функции ошибки для каждого элемента массива Y. Элементы массива Y должны лежать в области -1<Y<1.
6. Интегральная показательная функция
Интегральная показательная функция определяется следующим образом:
expint(X) — возвращает интегральную показательную функцию для каждого
элемента X.
7. Гамма-функция и ее варианты
Гамма-функция определяется выражением
Неполная гамма-функция определяется как
gamma (А) — возвращает гамма-функцию элементов А. Аргумент А должен быть вещественным.
gamma iпс(X,А) — возвращает неполную гамма-функцию соответствующих элементов X и А. Аргументы X и А должны быть вещественными и иметь одинаковый размер (или любой из них может быть скалярным)
gammaln(A) —возвращает логарифмическую гамма-функцию, gammaln(A) = 1og(gamma(A)). Команда gammaln позволяет избежать переполнения, которое может происходить, если вычислять логарифмическую гамма-функцию непосредственно, используя 1og(gamma(A)).
5 . 5М-сценарии
Сценарии являются самым простым типом M-файла – у них нет входных и выходных аргументов. Они используются для автоматизации многократно выполняемых вычислений. Сценарии оперируют данными из рабочей области и могут генерировать новые данные для последующей обработки в этом же файле. Данные, которые используются в сценарии, сохраняются в рабочей области после завершения сценария и могут быть использованы для дальнейших вычислений.
Пример
Следующие операторы вычисляют радиус-вектор rho для различных тригонометрических функций от угла theta и строят последовательность графиков в полярных координатах.
Строка комментария
% M-file petals - сценарий построения лепесткового графика
theta = -pi:0.01:pi;
rho(1, :) = 2*sin(5*theta).^2;
rho(2, :) = cos(10*theta).^3;
rho(3, :) = sin(theta).^2;
rho(4, :) = 5*cos(3.5*theta).^3;
for i = 1:4
polar (theta, rho(i, :))
pause
end
Вычисления
Команды графического вывода
Создайте М-файл petals.m, вводя указанные выше операторы. Этот файл является сценарием. Ввод команды petals.m в командной строке системы MATLAB вызывает выполнение операторов этого сценария.
После того, как сценарий отобразит первый график, нажмите клавишу Return, чтобы перейти к следующему графику. В сценарии отсутствуют входные и выходные аргументы; программа petals.m сама создаёт переменные, которые сохраняются в рабочей области системы MATLAB. Когда выполнение завершено, переменные (i, theta и rho) остаются в рабочей области. Для того чтобы увидеть этот список, следует воспользоваться командой whos.
М-функции
М-функции являются M-файлами, которые допускают наличие входных и выходных аргументов. Они работают с переменными в пределах собственной рабочей области, отличной от рабочей области системы MATLAB.
Пример
Функция average - это достаточно простой M-файл, который вычисляет среднее значение элементов вектора:
function y = average (x)
% AVERAGE Среднее значение элементов вектора.
% AVERAGE(X), где X - вектор. Вычисляет среднее значение элементов вектора.
% Если входной аргумент не является вектором, генерируется ошибка.
[m,n] = size(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))
error('Входной массив должен быть вектором’)
end
y =sum(x)/length(x); % Собственно вычисление
Попробуйте ввести эти команды в M-файл, именуемый average.m. Функция average допускает единственный входной и единственный выходной аргументы. Для того чтобы вызвать функцию average, надо ввести следующие операторы:
z = 1:99;
average(z)
ans = 50