- •ПРЕДИСЛОВИЕ
- •Глава 1. НАЧАЛО РАБОТЫ В MATLAB
- •1.1. РАБОЧЕЕ ОКНО
- •1.3. ВЫЧИСЛЕНИЯ В КОМАНДНОМ ОКНЕ
- •1.5. ПЕРЕМЕННАЯ
- •1.6. ВСТРОЕННЫЕ МАТЕМАТИЧЕСКИЕ ФУНКЦИИ
- •1.7. ОЧИЩЕНИЕ КОМАНДНОГО ОКНА И РАБОЧЕГО ПРОСТРАНСТВА
- •1.8. КОМПЛЕКСНЫЕ ЧИСЛА
- •1.10. M-ФАЙЛЫ
- •КОНТРОЛЬНЫЕ ВОПРОСЫ
- •КОНТРОЛЬНЫЕ ЗАДАНИЯ
- •Глава 2. МАССИВЫ
- •2.1. ОПЕРАЦИИ НАД МАТРИЦАМИ В ЛИНЕЙНОЙ АЛГЕБРЕ
- •2.2. СПОСОБЫ ЗАДАНИЯ ВЕКТОРОВ В MATLAB
- •2.3. ОПЕРАЦИИ НАД ВЕКТОРАМИ В MATLAB
- •2.4. СПОСОБЫ ЗАДАНИЯ МАТРИЦ В MATLAB
- •2.5. ОПЕРАЦИИ НАД МАТРИЦАМИ В MATLAB
- •2.6. ИЗВЛЕЧЕНИЕ И ВСТАВКА ЧАСТЕЙ МАТРИЦЫ В MATLAB
- •КОНТРОЛЬНЫЕ ВОПРОСЫ
- •КОНТРОЛЬНЫЕ ЗАДАНИЯ
- •Глава 3. ЛИНЕЙНАЯ АЛГЕБРА
- •3.1. ОПРЕДЕЛИТЕЛЬ КВАДРАТНОЙ МАТРИЦЫ
- •3.2. ОБРАТНАЯ МАТРИЦА
- •3.3. РАНГ МАТРИЦЫ
- •3.4. СИСТЕМЫ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ
- •КОНТРОЛЬНЫЕ ВОПРОСЫ
- •КОНТРОЛЬНЫЕ ЗАДАНИЯ
- •Глава 4. ГРАФИКА В MATLAB
- •4.1. ДВУМЕРНАЯ ГРАФИКА
- •4.4. ПОСТРОЕНИЕ ПОВЕРХНОСТЕЙ И КРИВЫХ В ПРОСТРАНСТВЕ
- •4.5. ОФОРМЛЕНИЕ ГРАФИКОВ
- •КОНТРОЛЬНЫЕ ВОПРОСЫ
- •КОНТРОЛЬНЫЕ ЗАДАНИЯ
- •Глава 5. ВЕКТОРНАЯ АЛГЕБРА
- •5.1. ЛИНЕЙНЫЕ ОПЕРАЦИИ НАД ВЕКТОРАМИ
- •5.2. ПРОЕКЦИЯ ВЕКТОРА НА ОСЬ, ОСНОВНЫЕ СВОЙСТВА
- •5.3. БАЗИС И КООРДИНАТЫ ВЕКТОРА. ОРИЕНТАЦИЯ БАЗИСА
- •5.4. ДЛИНА ВЕКТОРА. НАПРАВЛЯЮЩИЕ КОСИНУСЫ ВЕКТОРА
- •5.5. ДЕЙСТВИЯ НАД ВЕКТОРАМИ В КООРДИНАТНОЙ ФОРМЕ
- •5.6. СКАЛЯРНОЕ ПРОИЗВЕДЕНИЕ ВЕКТОРОВ, ЕГО СВОЙСТВА
- •5.7. ВЕКТОРНОЕ ПРОИЗВЕДЕНИЕ ВЕКТОРОВ, ЕГО СВОЙСТВА
- •5.8. СМЕШАННОЕ ПРОИЗВЕДЕНИЕ ВЕКТОРОВ, ЕГО СВОЙСТВА
- •КОНТРОЛЬНЫЕ ВОПРОСЫ
- •КОНТРОЛЬНЫЕ ЗАДАНИЯ
- •Глава 6. АНАЛИТИЧЕСКАЯ ГЕОМЕТРИЯ НА ПЛОСКОСТИ
- •6.1. УРАВНЕНИЯ ПРЯМОЙ НА ПЛОСКОСТИ
- •6.2. ВЗАИМНОЕ РАСПОЛОЖЕНИЕ ДВУХ ПРЯМЫХ НА ПЛОСКОСТИ
- •6.3. РАССТОЯНИЕ ОТ ТОЧКИ ДО ПРЯМОЙ
- •6.4. КРИВЫЕ ВТОРОГО ПОРЯДКА
- •КОНТРОЛЬНЫЕ ВОПРОСЫ
- •КОНТРОЛЬНЫЕ ЗАДАНИЯ
- •Глава 7. АНАЛИТИЧЕСКАЯ ГЕОМЕТРИЯ В ПРОСТРАНСТВЕ
- •7.1. УРАВНЕНИЯ ПЛОСКОСТИ В ПРОСТРАНСТВЕ
- •7.2. ВЗАИМНОЕ РАСПОЛОЖЕНИЕ ДВУХ ПЛОСКОСТЕЙ
- •7.3. РАССТОЯНИЕ ОТ ТОЧКИ ДО ПЛОСКОСТИ
- •7.4. ПРЯМАЯ В ПРОСТРАНСТВЕ
- •7.5. ВЗАИМНОЕ РАСПОЛОЖЕНИЕ ДВУХ ПРЯМЫХ В ПРОСТРАНСТВЕ
- •7.6. ВЗАИМНОЕ РАСПОЛОЖЕНИЕ ПРЯМОЙ И ПЛОСКОСТИ В ПРОСТРАНСТВЕ
- •7.7. РАССТОЯНИЕ ОТ ТОЧКИ ДО ПРЯМОЙ В ПРОСТРАНСТВЕ
- •7.8. ПОВЕРХНОСТИ ВТОРОГО ПОРЯДКА
- •КОНТРОЛЬНЫЕ ВОПРОСЫ
- •КОНТРОЛЬНЫЕ ЗАДАНИЯ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
|
|
|
|
|
|
|
|
|
|
|
Окончание табл.1.6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Команда |
|
|
|
Пример |
|
|
Решение |
|
||||
MATLAB |
|
|
|
|
|
|
|
|
|
|
в MATLAB |
|
factor(f) |
|
|
Разложить |
|
|
>>syms x |
|
|||||
|
|
на множители |
|
|
>>P = x^4 + x^2 - 6; |
|
||||||
|
|
|
многочлен |
|
|
>>P = factor(P) |
|
|||||
|
|
P = x4 + x2 – 6 |
|
|
P = |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
[ x^2 - 2, x^2 + 3] |
|
simplify(f) |
|
Упростить выражение |
|
|
>>syms x |
|
||||||
|
|
|
4− 4 3+ 2−6 |
|
|
>>T = (x^4 - 4*x^3 + x^2 - 6)/(x + 1); |
|
|||||
|
|
|
|
|
+1 |
|
|
|
>>T = simplify(T) |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
T = |
|
|
|
|
|
|
|
|
|
|
|
|
x^3 - 5*x^2 + 6*x - 6 |
|
pretty(f) |
|
Записать выражение |
|
|
>>syms x |
|
||||||
|
|
|
|
2+ 6 −11 |
|
|
>>F = (x^2 + 6*x - 11)/(4-x^3) |
|
||||
|
|
|
|
|
4 − 3 |
|
|
|
F = |
|
||
|
|
в «естественном» виде |
|
|
|
|||||||
|
|
|
|
-(x^2 + 6*x - 11)/(x^3 - 4) |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>>F = pretty(F) |
|
|
|
|
|
|
|
|
|
|
|
|
F = |
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
x + 6 x - 11 |
|
|
|
|
|
|
|
|
|
|
|
|
- ------------- |
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
x - 4 |
|
subs(f, old, new) |
|
Выполнить подстановку |
|
|
>>syms x |
|
||||||
|
|
x = 1 – x в выражение |
|
|
>>Q = (x - 5 + x^5)/x^3; |
|
||||||
|
|
|
|
|
−5+ 5 |
|
|
|
>>R = subs(Q,x,1-x) |
|
||
|
|
|
|
|
3 |
|
|
R = |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(x + (x - 1)^5 + 4)/(x - 1)^3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.10. M-ФАЙЛЫ
Файлы-сценарии
Файлы-сценарии (скрипт-файлы) позволяют создать файл со списком команд (файл-программу), сохранить и запустить его. При выполнении скриптфайла команды выполняются последовательно. Команды можно отредактировать, затем файл следует пересохранить и выполнить снова.
В MATLAB такие файлы называют m-файлами, так как при их сохранении используется расширение .m.
Если в строке m-файла встречается символ (;), то результат выполнения команды этой строки не будет выведен в командное окно.
23
Для создания файла-сценария нужно во вкладке HOME на панели инструментов нажать кнопку New Script или New, а затем выбрать Script из ниспадающего меню (рис. 1.11, а) или набрать «edit» в командной строке (рис. 1.11, б).
а |
б |
Рис. 1.11. Создание m-файла:
а – на панели инструментов; б – в командном окне
После вызова редактора на панели инструментов появятся три новых вкладки EDITOR, PUBLISH и VIEW (рис. 1.12, а). Набор команд осуществляется в окне Untitled.m. Каждая написанная строка будет автоматически пронумерована после нажатия клавиши Enter. Редактор m-файлов выполняет синтаксический контроль программного кода по мере ввода текста. При этом используются следующие цветовые выделения (рис.1.12, б):
ключевые слова языка программирования – синий цвет; операторы, константы и переменные – черный цвет; комментарии после знака % – зеленый цвет; символьные переменные (в апострофах) – фиолетовый цвет; синтаксические ошибки – красный цвет.
Благодаря цветовым выделениям вероятность синтаксических ошибок резко снижается.
Перед запуском созданный скрипт-файл необходимо сохранить. Для этого нужно нажать кнопку Save вкладки EDITOR, а затем выбрать Save или Save As…, указать место сохранения (в папке Current Folder) и новое имя файла в открывшемся окне (рис. 1.12, б). При сохранении к имени файла добавляется расширение .m.
24
а |
б |
Рис. 1.12. Окно редактора:
а– новые вкладки панели инструментов;
б– сохранение m-файла, цветовое выделение текста
Для запуска файла-сценария необходимо на вкладке EDITOR панели инструментов нажать кнопку Run или ввести имя файла в командном окне, а затем нажать клавишу Enter.
M-файл будет выполнен только в том случае, если он находится в текущей папке MATLAB.
Пример 1.7. Сложить комплексные числа z1 = -3 + 4i и z2 = 2·ei0.5π, вычислить аргумент и модуль комплексного числа z2.
Решение. Создадим m-файл complex.m:
z1=-3+4i; % зададим z1 z2=2*(exp(i*0.5*pi)) % зададим z2 z3=z1+z2 % найдем сумму z1+z2 phi=angle(z2) % найдем аргумент z2 r=abs(z2) % найдем модуль z2
Результат появится в командном окне:
z2 =
0.0000 + 2.0000i
z3 =
-3.0000 + 6.0000i phi =
1.5708 r =
2
Файлы-функции
В отличие от файлов-сценариев файлы-функции имеют входные и выходные параметры.
25
Файл-функция состоит:
1)из заголовка;
2)комментария;
3)тела функции.
Создание m-функций аналогично созданию m-файлов, а правила оформления следующие:
заголовок является первой строкой и имеет следующий вид:
function[выходные_параметры] = f_name(входные_параметры),
где function – обязательное служебное слово; f_name – имя функции, в котором не допускаются пробелы;
текст комментария в каждой строке начинается с %. Между блоком комменариев и заголовком функции не должно быть пустых строк;
тело функции состоит из выполняемого кода MATLAB, который совершает действия или производит вычисления и присваивает результаты выходным аргументам.
Перед вызовом созданной файл-функции необходимо сохранить ее аналогично m-файлу.
Обращение к файл-функции происходит в командном окне посредством ввода имени функции с указанием конкретных входных параметров и последующим нажатием клавиши Enter.
Пример 1.8. Создать файл-функцию, вычисляющую значение выражения
−√ 37−+64, и найти ее значение при x = 3.
Решение. Создадим файл-функцию my_function.m:
function f=my_function(x) f=exp(-x)*sqrt((x^3-4*x)/(x^7+6));
Для вызова функции в командном окне наберем следующее:
>> my_function(3)
Результат также появится в командном окне:
ans = 0.0041
Операторы отношения
Операторы отношения в системе MATLAB используются для поэлементного сравнения двух чисел, векторов или матриц (табл. 1.7). Важно, чтобы векторы или матрицы имели одинаковый размер.
26
Таблица 1.7
|
Операторы отношения |
|
|
Запись |
Описание |
в MATLAB |
|
= = |
Равно |
~ = |
Не равно |
< |
Меньше |
> |
Больше |
< = |
Меньше или равно |
> = |
Больше или равно |
|
|
Логические операторы
Логические операторы предназначены для создания логических выражений (табл. 1.8).
Таблица 1.8
|
Логические операторы |
|
|
Запись |
Описание |
в MATLAB |
|
& |
Логическое И |
| |
Логическое ИЛИ |
~ |
Логическое НЕ |
|
|
Условные операторы
Условные операторы служат для объединения вышеперечисленных операторов в выражения (табл. 1.9).
|
|
Таблица 1.9 |
|
Условные операторы |
|
|
|
|
Запись |
Описание |
Пример |
в MATLAB |
|
в MATLAB |
|
Оператор переключения |
|
|
|
|
switch <выражение> |
Используется с операторами |
switch (2*a-b) |
case <значение1> |
case (с указанием условий) и |
case 4 |
инструкции |
otherwise (при невыполнении |
c=4 |
case <значение2> |
всех вышеперечисленных |
case -5 |
инструкции |
условий); выполняет различ- |
c=-5 |
otherwise |
ные группы инструкций в за- |
otherwise |
инструкции |
висимости от значения некото- |
c=NaN |
end |
рого логического условия |
end |
|
|
|
27
|
|
|
|
Окончание табл. 1.9 |
Запись |
|
Описание |
|
Пример |
в MATLAB |
|
|
|
в MATLAB |
|
|
Оператор условия |
|
|
if логическое_выражение |
|
Используется с операторами |
|
if a<b |
инструкция |
|
else и elseif; выполняет группу |
|
a=a+1 |
end |
|
инструкций в соответствии |
|
else |
или |
|
с некоторыми логическими |
|
b=b+1 |
if логическое_выражение |
|
условиями, описанными |
|
end |
инструкция |
|
в виде логических выражений |
|
|
|
|
|
|
|
else |
|
|
|
|
инструкция |
|
|
|
|
end |
|
|
|
|
или |
|
|
|
|
if логическое_выражение |
|
|
|
|
инструкция |
|
|
|
|
elseif логиче- |
|
|
|
|
ское_выражение |
|
|
|
|
инструкция |
|
|
|
|
else |
|
|
|
|
инструкция |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
Операторы цикла
Операторы цикла служат для объединения вышеперечисленных операторов, включая условные, в выражения (табл. 1.10).
|
|
Таблица 1.10 |
|
Операторы цикла |
|
|
|
|
Запись |
Описание |
Пример |
в MATLAB |
|
в MATLAB |
Оператор цикла с неопределенным числом операций |
||
|
|
|
while выражение |
Выполняет группу инструкций |
a = 3; |
инструкции |
некоторое число раз, в соот- |
while a <= 10 |
end |
ветствии с заданным логиче- |
a = a + 1; |
|
ским условием завершения |
end |
Оператор цикла с определенным числом операций |
||
|
|
|
for <переменная цикла> = |
Выполняет группу инструкций |
n=0 |
<начальное значение>: |
ограниченное число раз |
for k = 1:2:4 |
<приращение>:<конечное |
|
n = x(k)+n; |
значение> инструкции |
|
end |
end |
|
|
|
|
|
28
