
- •Тема 5. Программная реализация математических моделей
- •5.1 Краткая характеристика matlab
- •Формирование массивов в системе matlab
- •Некоторые специальные символы
- •Элементарные математические функции
- •Некоторые графические функции
- •Интерактивный доступ к справочной информации и документации
- •Примеры: a) Найти функции линейной алгебры. Открываем последовательность окон:
- •5.2 Задачи линейной алгебры, вычисление функций и построение графиков
- •5.3. Решение нелинейных алгебраических уравнений и аппроксимация функций
- •Аппроксимация функции
- •5.4 Решение обыкновенных дифференциальных уравнений и вычисление интегралов
- •Вычисление интегралов
- •Контрольные вопросы
Примеры: a) Найти функции линейной алгебры. Открываем последовательность окон:
HELP
– MATLAB Help - Finding Functions and Properties - Matlab
Functions Listed by Category – Mathematics
–- Linear Algebra
b) Найти графические функции для построения графиков:
HELP – MATLAB Help - Finding Functions and Properties - Matlab Functions Listed by Category- Graphics – Basic Plots and Graphs.
3. Еще один способ получить информацию о системе MATLAB – обращение к Web-серверу фирмы The MathWorks.
5.2 Задачи линейной алгебры, вычисление функций и построение графиков
Система MATLAB ориентирована на работу с массивами и основные задачи линейной алгебры представляются в этой системе в экономной форме. Ниже рассмотрены некоторые типичные задачи линейной алгебры и их программная реализация.
Пример1.
Умножить вектор
на вектор
.
Как известно при умножении векторов первый вектор должен быть строкой, а второй – вектором-столбцом и они должны иметь одинаковые размерности. Поэтому решение записывается в виде
a = [1 2 4]
b = [2; -1; 3]
c = a*b
Или
a = [1 2 4]
b = [2 -1 3]′
c = a*b
% Ответ: с = 12.
PS: Если записать b = [2 -1 3], то расчет не выполняется, т.к. b будет интерпретирован как вектор-строка.
Пример2.
Умножить матрицу
на матрицу
.
Для корректного выполнения этой операции число элементов в строках матрицы А должно быть равно числу элементов в столбцах матрицы B. Программа запишется в виде:
a = [2 0 3; 1 1 2];
b = [1 3; 2 1; 1 0];
c = a*b
На
экране появится:
Пример3.
Решить систему линейных уравнений
В матричной форме эта система примет вид: А*x = B, где:
Тогда решение запишется в виде:
A=[2 1 -1; 1 –1 0; 1 -1 2] % задаем матрицу коэффициентов при неизвестных
B=[11; 2; 6] % задаем вектор свободных членов
X=A\B % решение системы (Ответ: х1 =5, х2 = 3, x3 = 2)
Символ \ применяется для решения систем линейных уравнений АХ=В.
Пример 4. Для матрицы А (см. пример 3) найти детерминант и обратную матрицу (A-1) и сосчитать произведение E = A∙A-1. Решение:
A = [2 1 -1; 1 –1 0; 1 -1 2]
C = det(A) %det – функция вычисляет детерминант заданной матрицы
D = inv(A) %inv - функция вычисляет матрицу, обратную заданной
E = A*D
Ответ: С = -6; E = 1.0000 0 0
0.0000 1.0000 0.0000
0.0000 -0.0000 1.0000
В математических моделях часто требуется вычислить значения выражений типа y = f(x) при различных значениях x а затем представить эти зависимости в графической форме. В системе MATLAB такие задачи решаются просто. Ниже приведены примеры.
Пример 5. В интервале х =[03] вычислить значения:
y = ex и z = 1 + x + x2/2 + x3/6 + x4/24
для равномерно расположенных 31 точек. Построить зависимости y = f(x) и z = f(x) на одном графике (декартовые координаты). Значения x, y, z на экран не выводить.
Решение запишется в виде:
x = (0 : 0.1 : 3)'; задаем значения х в интервале от 0 до 3 с шагом 0.1
y = exp(x); вычисляем значения вектора у
z = 1.0 +x + (x.^2)/2 + (x.^3)/6 - (x.^4)/24; вычисляем значения вектора z
figure открываем графическое окно
plot(x,y,' –g ',x,z,' –k ' ) строим график функции y = cos(x)
xlabel(' coordinata x ') даем название для оси x
ylabel(' coordinata y ’) даем название для оси y
title(' y=exp(x) '); даем заголовок для графика
Пример 6. В интервале х = [010] вычислить значения y = 0,5ln(x + 1) для равномерно расположенных 101 точек. Построить зависимость y = f(x) в полярных координатах.
x = (0 : pi/10 : 10*pi)’;
y = 0.5*log(x + 1);
figure
polar(x, y); строим график функции y = 0,5ln(x+1)
MATLAB позволяет легко строить трехмерные графики, т.е. зависимости типа z = f(x, y), что показано в следующем примере.
Пример
7.
Построить поверхность
при
х
= -1 до +1 с шагом 0,2 и при y
= -1 до +1 с шагом 0,2.
Решение задачи:
[x, y]=meshgrid([-1:0.2:1]);
z=x.*exp(-x.^2 - y.^2);
figure
mesh(x,y,z);
figure
surf(x,y,z);
PS: графические функции описаны выше в разделе “Некоторые графические функции”.