
- •ВВЕДЕНИЕ
- •1. ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ
- •2. ОСНОВНЫЕ ОБЪЕКТЫ MATLAB
- •2.1. Присвоение и вывод значений переменных и функций
- •2.2. Форматированный вывод
- •2.3. Табулирование функции
- •3. РАБОТА С МАТРИЦАМИ И ВЕКТОРАМИ
- •Операции над матрицами и векторами
- •САМОСТОЯТЕЛЬНАЯ РАБОТА № 2
- •4.1. Графики в декартовой системе координат
- •4.2. Графики в полярной системе координат
- •4.3. Разбиение графического окна
- •4.4. Форматирование графиков
- •4.6. Применение графической «лупы»
- •САМОСТОЯТЕЛЬНАЯ РАБОТА № 3
- •САМОСТОЯТЕЛЬНАЯ РАБОТА № 4
- •6.1. Матричный способ решения СЛАУ
- •6.2. Решение системы линейных уравнений методом Крамера
- •САМОСТОЯТЕЛЬНАЯ РАБОТА № 5
- •7. РЕШЕНИЕ УРАВНЕНИЙ
- •7.1. Графический способ решения уравнений
- •7.2. Решение уравнений с помощью функции solve
- •7.3. Нахождение корней полинома
- •7.4. Нахождение минимума функции
- •КОНТРОЛЬНАЯ РАБОТА № 1
- •8. ВЫЧИСЛЕНИЕ ИНТЕГРАЛОВ
- •САМОСТОЯТЕЛЬНАЯ РАБОТА № 7
- •12. ПРОГРАММИРОВАНИЕ В СРЕДЕ MATLAB
- •12.1. M-файлы
- •12.2. Основные операторы программирования в MATLAB
- •12.3. Численное решение задачи Коши для системы обыкновенных дифференциальных уравнений
- •САМОСТОЯТЕЛЬНАЯ РАБОТА № 11
- •Библиографический список
12. ПРОГРАММИРОВАНИЕ В СРЕДЕ MATLAB
12.1. M-файлы
амым удобным способом выполнения команд MATLAB является использование М-файлов, в которых можно набирать команды, выполнять их все сразу или частями, сохранять в файле и использовать в дальнейшем. Для работы с М-файлами предназначен редактор М-файлов. При помощи этого редактора можно создавать собствен-
ные функц |
вызывать их, в том числе и из командной строки. |
Для подготовки, редактирования и отладки М-файлов служит |
|
С |
|
|
многооконный редактор. Он выполнен как типичное |
приложен Windows. Редактор можно вызвать командой edit из ко-
мандной строки |
ли командой New – Script (Function) из меню File. |
|
Выполнен M-файла: меню Debug – Save and Run (F5). |
||
Открыт |
существующего М-файла: |
|
специальный |
||
1) |
меню File - Open ра очей среды либо редактора М-файлов. |
|
2) команда MATLAB edit из командной строки, указав в каче- |
||
стве аргумента имя файла, например: |
||
>> edit mydemo |
||
Типы М-файлов: |
||
1) |
файл-сценарии, не имеющие входных параметров; |
|
2) |
файл-функции, имеющие входные параметры. |
|
|
бА |
|
|
|
12.1.1. Файл-сценарий |
Файл-сценарий называется также Script-файлом или просто
скриптом. |
|
Файл-сценарий имеет весьмаДпростую структуру: |
|
1. % основной комментарий, если необходимо. |
|
2. % дополнительный комментарий, если необходимо. |
|
3. Тело программы с любыми допустимыми выражениями. |
|
Все переменные, объявленные в файл-программе, становятся |
|
|
И |
доступными в рабочей среде после ее выполнения. Переменные, определенные в одной файл-программе, можно использовать в других файл-программах и в командах, выполняемых из командной строки.
Выполнение команд, содержащихся в файл-сценарии:
1. Из редактора М-файлов так, как описано выше.
56

2. Из командной строки или другого файл-сценария, при этом в качестве команды используется имя М-файла.
12.1.2. Файл-функция
С |
является аналогом подпрограммы типа |
Файл-функция |
|
function языков программирования. |
|
Файл-функц я |
меет входные параметры, список которых ука- |
зывается в круглых скобках. Используемые в файл-функции переменные являются локальными переменными, изменение значений кото-
Теперь созданную функцию можно использовать так же, как и встроенные sin, cos и другие, например из командной строки:
рых в теле функц |
|
н коим образом не влияет на значения, которые |
|||||||
те же самые переменные могут иметь за пределами функции. Т.е. ло- |
|||||||||
кальные переменные могут иметь те же имена (идентификаторы), что |
|||||||||
и глобальные переменные. |
|
|
|
||||||
ром |
Структура |
М-файла функции с одним выходным парамет- |
|||||||
в д: |
|
|
|
|
|
|
|
|
|
имеет |
|
|
|||||||
|
function var = f name (Список параметров) |
||||||||
|
% основной комментарий, если необходимо. |
||||||||
|
% дополнительный комментарий, если необходимо. |
||||||||
|
Тело программы с лю ыми выражениями. |
||||||||
|
var = выражение |
|
|
|
|||||
|
бА |
||||||||
|
Пример |
|
|
|
|
|
|
|
|
|
Предположим, что в вычислениях часто необходимо использо- |
||||||||
вать функцию e |
x |
|
|
x2 1 |
|
. |
Д |
||
|
|
x4 0,1 |
|||||||
|
|
|
|
|
|
||||
|
function f = myfun(x) |
|
|||||||
|
|
|
И |
||||||
|
f= ехр(-х)*sqrt((х^2+1)/(х^4+0.1)); |
||||||||
|
|
|
|
|
|
|
|
|
>> у =myfun(1.3) y =
0.2600
Вызов собственных функций может осуществляться из файлсценария и из другой файл-функции.
57
Каталог, в котором содержатся файл-функции, должен быть текущим, или путь к нему должен быть добавлен в пути поиска, иначе MATLAB просто не найдет функцию или вызовет вместо нее другую с тем же именем (если она находится в каталогах, доступных для поиска).
Файл-функция, приведенная в листинге, имеет один существенный недостаток. Попытка вычисления значений функции от массива привод т к ош бке, а не к массиву значений, как это происходит при
вычислен |
встроенных функций. |
Устран м этот недостаток: |
|
function f = myfun(x) |
|
С |
|
f = ехр(-х).*sqrt((х.^2+1)./(х.^4+0.1)); |
|
Теперь аргументом функции myfun может быть как число, так и |
|
вектор |
матр ца значений, например: |
Переменная у, в которую записывается результат вызова функции myfun, автоматически становится вектором нужного размера.
>> х = [1.3 7.2]; |
||
ли |
||
>> у = myfun(x) |
||
y = |
|
|
0.2600 |
0.0001 |
|
|
бА |
MATLAB предоставляет ещеДодну возможность работы с файлфункциями – использование их в качестве аргументов некоторых команд. Например, для построения графика служит специальная функция fplot, заменяющая последовательность команд, приведенную выше. При вызове fplot имя функции, график которой требуется построить, заключается в апострофы, пределы построенияИуказываются в вектор-строке из двух элементов.
12.1.2.1. Файл-функции с несколькими входными аргументами
Все входные аргументы размещаются в списке через запятую.
Пример
Написать файл-функцию, вычисляющую длину радиуса-вектора точки трехмерного пространства.
58
function r = radius3(x, у, z) r = sqrt(х.^2 + у.^2 + z.^2);
Для вычисления длины радиуса-вектора теперь можно исполь-
зовать функцию radius3, например:
С12.1.2.2. Файл-функции с несколькими выходными аргументами
>> R = radius3(1, 1, 1)
R =
1.732
списокзаключается в квадратные .
Файл-функц с несколькими выходными аргументами удобны
при выч слен функц й, возвращающих несколько значений (в математике они называются вектор-функциями). Выходные аргументы добавляются через запятую в список выходных аргументов, а сам
Функцияскобки, переводящая время, заданное в секундах, в часы, минуты и секунды.
Пр мер
hour = floor(sec/3600);А minute = floor((sec-hour*3600)/60);
function [hour, minute, second] = hms(sec)
second = sec-hour*3600-minute*60;
При вызове файл-функций с несколькими выходными аргумен-
тами результат следует записывать в вектор соответствующей длины: |
|
>> [Н, М, S] = hms(10000) |
Д |
H = |
И |
|
2
М =
46
S =
40
59