Matlab — это язык программирования высокого уровня и интерактивная среда, предназначенная для инженерных расчетов, визуализации и программирования
Введение
Matlab является популярной системой компьютерного моделирования на математической основе, которая предназначена для выполнения научных и инженерных расчётных процедур, включая следующие типы расчётов:
- Реализация простых вычислений по уже существующим выражениям.
- Реализация поиска решений нелинейных систем и уравнений.
- Реализация поиска решений задач линейной алгебры.
- Реализация поиска решений проблем оптимальности.
- Осуществление вычислений дифференциальных и интегральных выражений.
- Осуществление обработки данных экспериментов.
- Реализация поиска решений обыкновенных дифференциальных уравнений и систем обыкновенных уравнений.
- Создание моделей дискретных и непрерывных систем.
Кроме того, программа Matlab имеет обширный набор инструментов для построения и коррекции различного типа графических отображений формул.
Решение систем обыкновенных уравнений
Решение систем линейных уравнений может быть отнесено к наиболее массовой сфере использования матричных методов. В системе MATLAB используются указанные методы и некоторые дополнительные функции для решения систем линейных уравнений. Общеизвестно, что обыкновенная система линейных уравнений может быть представлена в следующем виде:
$а_{11} X_{1}, а_{12} X_{2}. ..., а_{1n} X_n = b_1$
Здесь:
- $а_{11}, ..., а_{пп}$ являются коэффициентами, образующими матрицу $А$, которые могут иметь как действительные, так и комплексные значения.
- $x_1 , х_2 ,..., х_п$ являются неизвестными, образующими вектор $X$.
- $b_1 , b_2 ,..., b_п$ являются свободными членами (действительными или комплексными), образующими вектор $В$.
Такую систему можно представить в матричном виде как:
АХ=В.
Здесь:
- А является матрицей коэффициентов уравнений.
- X является искомым вектором неизвестных.
- В является вектором свободных членов.
В зависимости от того, какого вида матрица А и ее основных особенностей, Matlab позволяет осуществить разные методики решения. Для реализации разных алгоритмов решения системы линейных уравнений и связанных с ними матричных операций используются следующий набор операторов:
+, -, $*$, /, \, ' .
Как уже указывалось выше, Matlab обладает двумя различными типами арифметических операций, а именно:
- Поэлементные арифметические операции.
- Арифметические операции для массивов (векторов и матриц) в целом.
Матричные арифметические операции реализуются согласно правилам линейной алгебры. Арифметические операции сложения и вычитания над массивами должны выполняться поэлементно. Знак точки «.» обозначает отличие операции над элементами массивов от операций с матрицами. Но, так как действия сложения и вычитания аналогичны для матриц и элементов массива, знаки «.+» и «.-» в этих случаях не применяются.
Для выполнения других операций используются следующие обозначения:
Значок * — обозначает реализацию матричного умножения.
С = А*В — обозначает выполнение линейного алгебраического произведения матриц А и В.
Для варианта не скалярных А и В количество столбцов матрицы А обязано быть равным количеству строк матрицы В. Скалярные величины могут быть умножены на матрицу любого размера.
/ — обозначает операцию правого деления.
Запись выражения Х=В/А позволяет выполнить решение ряда систем линейных уравнений АХ=В.
Здесь:
- А является матрицей с размером тхп.
- В является матрицей с размером nxk.
\ — обозначает операцию левого деления.
Запись выражения Х=В\А позволяет выполнить решение ряда систем линейных уравнений ХА=В.
Здесь:
- А является матрицей с размером тхп.
- В является матрицей с размером nxk.
В случае, когда А является квадратной матрицей, то А\В будет примерно тем же самым, что и inv(A)*B. В других случаях возможны следующие варианты:
- Если А является матрицей с размером пхп, а В является вектор-столбцом с п компонентами или матрицей с несколькими такими столбцами, то Х=А\В будет решением уравнения АХ=В, которое определяется при помощи метода исключения Гаусса.
- Если А является матрицей с размером тхп, а В является вектор-столбцом с m компонентами или матрицей с несколькими подобными столбцами, то система будет считаться не доопределенной или переопределенной и должна решаться на базе минимизации второй нормы невязок.
Ранг k матрицы А может быть найден на основе QR-разложения с выбором ведущего компонента. Найденное решение X будет обладать не более чем k ненулевых элементов на столбец. В случае, когда k∠n решение обычно не совпадает с pinv(A)*B, имеющим наименьшую норму невязок ||Х||.
Рассмотрим другие операции.
^ — обозначает операцию возведения матрицы в степень.
Х А р — обозначает X в степени р, в случае, когда р является скалярной величиной..
Если р является целым числом, то степень матрицы определяется умножением X на себя р раз. Если же р является целым отрицательным числом, то X сначала должно быть инвертировано.
' — обозначает операцию транспонирования матрицы, то есть замену строк столбцами и наоборот.
К примеру, А' — это транспонированная матрица А. Для комплексных матриц транспонирование должно быть дополнено комплексным сопряжением.
Транспонирование при решении системы линейных уравнений удобно, когда в матрице А переставлены местами столбцы и строки. При записи системы линейных уравнений в матричной форме следует отслеживать правильность записи матрицы А и вектора В. Приведём пример (в виде m-файла):
Рисунок 1. Пример в виде m-файла. Автор24 — интернет-биржа студенческих работ
Данная программа может выдать итоговые результаты решения тремя методами:
X1 =
3.0000 -4.0000-1.00001.0000
Х2 =
3.0000 -4.0000-1.00001.0000
X3 =
3.0000 -4.0000-1.00001.0000
Естественно, итоговые результаты решения получились одинаковыми для всех трех методов. При решении систем линейных уравнений, в частности с разреженной матрицей коэффициентов, удобно использовать функции colmmd (colamd), symmmd (symamd).