-
В этом большом уроке описываются функции системы MATLAB, предназначенные для реализации алгоритмов типовых численных методов решения прикладных задач и обработки данных.
-
Теперь рассмотрим функции, введенные для решения систем линейных уравнений с ограничениями методом наименьших квадратов: | X =lscov(A,B.V) – возвращает вектор X решения СЛУ вида А*Х=В+е, гдее – вектор шумов, который имеет ковариационную матрицу V.
-
Решение СЛУ с разреженными матрицами – хотя и не единственная, но несомненно одна из основных сфер применения аппарата разреженных матриц, описанного в уроке 12. Ниже приведены функции, относящиеся к этой области применения разреженных матриц.
-
Решение СЛУ с разреженной матрицей возможно также известным двунаправленным методом сопряженных градиентов. Он реализован указанной ниже функцией. | bicg(А. В) – возвращает решение X СЛУ А*Х=В. Матрица коэффициентов А должна быть квадратной размера nхn, а вектор-столбец правых частей уравнений В должен иметь длину n.
-
Итерационный метод сопряженных градиентов реализован функцией peg: | peg(А.В) – возвращает решение X СЛУ А*Х=В. Матрица А должна быть квадратной, симметрической [В нашем примере матрица А – несимметрическая, т. е. A(i,j)– *A(j,i). – Примеч.
-
Квадратичный метод сопряженных градиентов реализуется в системе MATLAB с помощью функции cgs: | cgs(A.B) – возвращает решение X СЛУ А*Х=В. А – квадратная матрица. Функция cgs начинает итерации от начальной оценки, по умолчанию представляющей собой вектор размера n, состоящий из нулей.
-
Ряд функций системы MATLAB предназначен для работы с функциями. По аналогии с дескрипторами графических объектов могут использоваться объекты класса дескрипторов функций, задаваемых с помощью символа @, например: | >> fe=@exp | Примечание | Подфункциями понимаются как встроенные функции, например sin(x) или ехр(х),так и функции пользователя, например f(x), задаваемые как т-файлы-функции.
-
Еще одна важная задача численных методов – поиск минимума функции f(x) в некотором интервале изменения х – от х 1 до х 2 . Если нужно найти максимум такой функции, то достаточно поставить знак "минус" перед функцией.
-
Значительно сложнее задача минимизации функций нескольких переменных f(х 1 ,…). При этом значения переменных представляются вектором х, причем начальные значения задаются вектором х 0 . Для минимизации функций ряда переменных MATLAB обычно использует разновидности симплекс-метода Нелдера-Мида.
-
Для выполнения аппроксимации Лапласиана в MATLAB используется следующая функция: | del2(11) – возвращает матрицу L дискретной аппроксимации дифференциального оператора Лапласа, примененного к функции U: | Матрица L имеет тот же размер, что и матрица U, и каждый ее элемент равен разности элемента массива U и среднего значения четырех его соседних элементов (для узлов сетки во внутренней области).
-
diff(X) – возвращает конечные разности смежных элементов массива X. Если X – вектор, то diff(X) возвращает вектор разностей соседних элементов [Х(2)-Х(1) Х(3)-Х(2)… X(n)-X(n-D], у которого количество элементов на единицу меньше, чем у исходного вектора X.
-
Вычисление конечно-разностным методом градиента функций реализуется следующей функцией: | FX = gradient(F) – возвращает градиент функции одной переменной, заданной вектором ее значений F. FX соответствует конечным разностям в направлении х,
-
Численное интегрирование традиционно является одной из важнейших сфер применения математического аппарата. В данном разделе приводятся функции для численного интегрирования различными методами.
-
Приведенные ниже функции осуществляют интегрирование и двойное интегрирование, используя квадратурную формулу Симпсона или метод Гаусса-Лобатто. Квадратура – численный метод нахождения площади под графиком функции/(т), т. е.
-
Полиномы (у нас их принято называть также степенными многочленами) – широко известный объект математических вычислений и обработки данных. Обычно полином записывается в виде: | р(х) = а n х^n + x n-1 x^n – 1+… + а 2 x^2 + а 1 ^х + а 0 , | И так обычно принято в MATLAB для п, отрицательных по умолчанию, хотя и возможны иные формы записи, например: | р(х) = a 1 x^n + а 2 x^n-1 +… + а n х + а n+1.
-
В этом разделе приведены функции вычисления коэффициентов характеристического полинома, значения полинома в точке и матричного полинома. | poly(A) – для квадратной матрицы А размера пхп возвращает вектор-строку размером n+1, элементы которой являются коэффициентами характеристического полинома det(A-sI), где I – единичная матрица, as – оператор Лапласа.
-
Приведенная ниже функция вычисляет собственные значения матричного полинома. | [Х.е] = polyeig(A0,A1,…Ap) – решает задачу собственных значений для матричного полинома степени р вида: | Где степень полинома р – целое неотрицательное число, а А 0, А1 ,…, Аp – входные матрицы порядка n.
-
Анализ поведения многих систем и устройств в динамике, а также решение многих задач в теории колебаний и в поведении упругих: оболочек обычно базируются на решении систем обыкновенных дифференциальных уравнений (ОДУ).
-
В описанных далее функциях для решения систем дифференциальных уравнений приняты следующие обозначения и правила: | options – аргумент, создаваемый функцией odeset (еще одна функция – odeget или bvpget (только для bvp4c)– позволяет вывести параметры, установленные по умолчанию или с помощью функции odeset /bvpset); | tspan – вектор, определяющий интервал интегрирования [tO tfinal].
-
Можно использовать m-файл типа odefunction (или m-file типа odefile для совместимости с прежними версиями, но последний случай мы рассматривать не будем, чтобы определить систему дифференциальных уравнений в одной из явных (первая формула) или неявных форм: | y'= F(t, у), My' = F(t, у) или M(t)y' = Y(t, у), | Где t – независимая переменная (скаляр), которая обычно представляет время;
-
При помощи перечисленных ниже функций можно получить и создать или изменить параметры решателя: | o=odeget(options, 'name') – извлекает значение свойства, определенного строкой 'name', из структуры параметров options;
-
Специалистов в области численных методов решения дифференциальных уравнений в частных производных несомненно заинтересует обширный пакет Partial Differential Equations Toolbox (PDETB). Хотя этот пакет является самостоятельным приложением и в ядро MATLAB не входит, мы приведем краткое описание некоторых его возможностей с парой примеров.