
- •Программное обеспечение управления качеством и базы и банки данных matlab
- •Matlab в роли суперкалькулятора
- •Основные арифметичесике операторы
- •Специальные символы
- •Начальное значение:шаг:конечное значение
- •Форматы чисел
- •Перестановки элементов матриц
- •Cуммирование элементов
- •Решение систем линейных уравнений
- •Численное интегрирование
- •Объединение массивов
- •Нахождение средних, срединных значений массива и стандартных отклонний
- •Вычисление коэффициентов корреляции
- •Вычисление матрицы ковариации
- •Основы программирования
- •Условный оператор
- •Циклы типа for…end
- •Графики в логарифмическом и полулогарифмическом масштабе
- •Столбцовые диаграммы
- •Построение гистограммы
- •Графики с зонами погрешностей
- •Графики в полярной системе координат
- •Контурные графики
- •Создание массивов данных для трехмерной графики
- •Сетчатые 3d-графики с окраской и с проекциями
- •Построение поверхности с окраской и проекциями
- •Построение освещенной поверхности
- •Трехмерные контурные графики
- •Ввод текста в любое место графика
- •Вывод пояснений
- •Управление свойствами осей графиков
Решение систем линейных уравнений
Решение систем линейных уравнений относится к самой массовой области применения различных матричных методов.
Как известно, обычная система линейных уравнений имеет вид:
a1,1x1+ a1,2x2+…+ a1,nxn=b1
a2,1x1+ a2,2x2+…+ a2,nxn=b2
. . . . . . . . . . . . . . . . . . . . . . .
an,1x1+ an,2x2+…+ an,nxn=bn
Здесь a1,1, a2,1,…, an,n – коэффициенты, образующие матрицу А и могущие иметь действитель-ные или комплексные значения; x1, x2, ..., xn – неизвестные, образующие вектор Х и b1, b2, ..., bn – свободные члены (действительные или комплексные), образующие вектор B. Эта система мо-жет быть представлена в матричном виде как АХ=В, где А – матрица коэффициентов уравнений, Х – искомый вектор неизвестных и В – вектор свободных членов. В зависимости от вида матри-цы А и ее характерных особенностей MATLAB позволяет реализовать различные методы решения.
Для реализации различных алгоритмов решения систем линейных уравнений и связан-ных с ними матричных операций применяются рассмотренные ранее операторы +, – , *, /, \, ^, ‘.
При записи систем линейных уравнений в матричной форме необходимо следить за пра-вильностью записи матрицы А и вектора В.
Например, необходимо решить систему уравнений
Матрица А создается следующим образом: первая строки матрицы записывается из коэф-фициентов, расположенных при переменной а, а вторая строка – из коэффициентов b, т.е.
>> A=[1 9; 3 -3]
A =
1 9
3 -3
В вектор В записываются свободные члены:
>>B=[17 3]
B =
17 3
Решить систему можно одним из трех способов, записав
>> X1=B/A
>> X2=B*A^-1
>> X3=B*inv(A)
X1 =
2 5
X2 =
2 5
X3 =
2 5
Результаты, естественно, будут одинаковыми для всех трех методов
Численное интегрирование
Численное интегрирование традиционно является одной из важнейших сфер применения математического аппарата. Заключается оно в приближенном вычислении определенного ин-теграла вида
одним из многочисленных численных методов.
Приведенные ниже функции выполняют численное интегрирование методом трапеций:
trapz(Y) возвращает интеграл, используя интегрирование методом трапеций. Если Y – вектор, то trapz(Y) возвращает интеграл элементов вектора Y, если Y – матрица, то trapz(Y) возвращает вектор-строку, содержащую интегралы каждого столбца этой матрицы;
trapz(Х, Y) возвращает интеграл от функции Y по переменной Х, используя метод трапеций.
trapz(..., dim) возвращает интеграл по строкам или столбцам для входной матрицы, в зависимости от значения переменной dim.
Например,
>> X=0:pi/70:pi/2;
>> Y=cos(X);
>> Z=trapz(Y)
Z=22.2780
Пиведенные ниже функции осуществляют интегрирование, используя квадратурную формулу и метод Ньютона-Котеса. Квадратура – численный метод нахождения площади под графиком функции f(x), то есть вычисление определенного интеграла вида
.
Функции quad и quad8 используют два различных алгоритма квадратуры для вычисления определенного интеграла. Функция quad выполняет интегрирование по методу низкого порядка, используя рекурсивное правило Симпсона, а функция quad8 выполняет интегрирование по методу более высокого порядка, используя квадратурные формулы Ньютона-Котеса.8-го порядка.
quad(‘fun’, a, b) возвращает численное значение определенного интеграла от заданной функции ‘fun’ на отрезке [a. b];
quad(‘fun’, a, b, tol) возвращает численное значение оперделенного интегралас заданной относительной погрешностью tol. По умолчанию tol=1.е-3;
quad(‘fun’, a, b, tol, trace) возвращает численное значение определенного интеграла и при значении trace, не равном нулю, строит график, показывающий ход вычисления интеграла.
Например, необходимо вычислить численное значение следующего интеграла
.
>> quad(‘x.^4’, -1, 3)
ans =
48.8000
л а б о р а т о р н а я р а б о т а № 5
Введите матрицу А размером 5х5, состоящую из произвольных элементов.
Найдите определитель этой матрицы.
Определите след матрицы.
Выведите на экран магическую матрицу B размером 6х6.
Транспонируйте полученную матрицу.
Умножьте полученную транспонированную матрицу на матрицу такого же размера, состоящую из произвольных чисел.
Обозначьте новую матрицу буквой С.
Произведите обращение матрицы С.
Решите систему уравнений
Вычислите значение определенного интеграла
.
Л е к ц и я № 11, 12
Создание массивов
со случайными числами. Многомерные
массивы
Создание массивов со случайными числами
Для создания матриц (массивов) со случайными числами служат функции rand и randn.
rand(n) возвращает матрицу размером nxn. Функцией rand генерируются массивы случайных чисел, значения элементов которых равномерно распределены в проме-жутке (0, 1).
randn(n) генерирует массив со случайными элементами, распределенными по нор-мальному закону с нулевым математическим ожиданием и среднеквадратическим отк-лонением, равным 1.
rand без аргументов возвращает одно случайное число, которое изменяется при каж-дом последующем вызове и имеет равномерный закон распределения. В случае исполь-зования randn без аргументов получим одно число по нормальному распределению.
Например,
>> Y=rand(4,3)
Y =
0.9501 0.8913 0.8214
0.2311 0.7621 0.4447
0.6068 0.4565 0.6154
0.4860 0.0185 0.7919
>> Y=randn(4,3)
Y =
-0.4326 -1.1465 0.3273
-1.6656 1.1909 0.1746
0.1253 1.1892 -0.1867
0.2877 -0.0376 0.7258
Многомерные массивы
Многомерные массивы характеризуются размерностью больше двух. Таким массивам можно дать наглядную интерпретацию. Так, матрицу (двумерный массив) можно записать на одном листе бумаги в виде строк и столбцов, состоящих из элементов матрицы.
Тогда блокнот с такими листками можно считать трехмерным массивом, полку в шкафу с блокнотами – четырехмерным массивом, шкаф со множеством полок – пятимерным массивом и т.д.
Применение оператора : в многомерных массивах
Оператор : (двоеточие) позволяет легко выполнять операци по увеличению размерности массивов (под размерностью массивов понимается чмсло измерений в пространственном пред-ставлении массивов, а под размером – произведение элементов в каждой размерности массива).
Приведем пример на формирование трехмерного массива путем добавления новой стра-ницы. Пусть у нас задан исходный двухмерный массив М размером 3х3:
>> M=[1 2 3; 4 5 6; 7 8 9]
M =
1 2 3
4 5 6
7 8 9
Для добавления новой страницы с тем же размером можно расширить М следующим образом:
>> M(:, :, 2)=[10 11 12; 13 14 15; 16 17 18]
M(:,:,1) =
1 2 3
4 5 6
7 8 9
M(:,:,2) =
10 11 12
13 14 15
16 17 18
Как можно заметить, числа в выражениях M(:,:,1) и M(:,:,2) означают наличие в массиве двух страниц.
Доступ к отдельному элементу многомерного массива
Чтобы вызвать средний элемент сначала первой, а затем второй страницы, надо записать следующее:
>> M(2, 2, 1)
ans =
5
>> M(2, 2, 2)
ans =
14
Таким образом, в многомерных массивах используется то же правило индексации, что и в одномерных и двухмерных массивах. Произвольный элемент, например, трехмерного массива в общем случае задается как M(i, j, k), где i – номер строки, j – номер столбца и k – номер стра-ницы. Этот элемент можно вывести, а можно присвоить ему заданное значение х: M(i, j, k)=x.
Увеличение размерности у многомерного массива
Ранее уже отмечалась возможность удаленя отдельных столбцов присвоением им значе-ний пустого вектора –столбца [ ]. Этот прием нетрудно распространить на страницы и вообще размерности многомерного массива. Например, первую страницу массива М можно удалить следующим образом:
>> M(:, :, 1)=[]
M =
10 11 12
13 14 15
16 17 18
Нетрудно заметить, что в массиве осталась только вторая страниц и что размерность мас-сива уменьшилась на единицу – он стал двухмерным.
Создание страниц, заполненных константами и случайными числами
Если после знака присваивания стоит численная константа, то соответствующая часть массива будет содержать элементы, содержащие данную константу. Например, создадим из вы-шеописанного массива М массив, у которого вторая страница содержит единицы:
>> M(:, :, 2)=1
M(:,:,1) =
10 11 12
13 14 15
16 17 18
M(:,:,2) =
1 1 1
1 1 1
1 1 1
А теперь заменим первую страницу массива на страницу с нулевыми элементами:
>> M(:, :, 1)=0
M(:,:,1) =
0 0 0
0 0 0
0 0 0
M(:,:,2) =
1 1 1
1 1 1
1 1 1