Читайте также: |
|
Получить решение задачи Коши на указанном отрезке с использованием метода из числа рассматриваемых в этом разделе. Подобрать величину шага интегрирования так, чтобы относительная погрешность решения задачи не превышала 0.1%.
1. .
2. .
3. .
4. .
5. .
6. ,
.
7. .
8. .
9. .
10.
.
11. .
12. ,
.
13. .
14. .
15. .
16. ,
.
17. .
18. .
19. .
20. .
21. .
22. .
23. ,
.
24. .
25. ,
.
26. .
27. .
28. .
29. .
30. .
ПРИЛОЖЕНИЕ. ОСНОВЫ РАБОТЫ В СРЕДЕ MATLAB
Интерфейс среды
Название Matlab является сокращением от Matrix Laboratory. Первый вариант этого пакета прикладных программ был создан компанией Math Works около двадцати лет назад. Matlab является мощным и достаточно универсальным средством решения задач, возникающих в различных областях науки и техники. Перечень проблем, исследование которых может быть осуществлено при помощи Matlab’а и его расширений (Toolbox), охватывает матричный анализ, обработку сигналов и изображений, задачи математической физики, оптимизационные задачи, статистическую обработку данных и их визуализацию, и многое другое. С его помощью можно производить практически все инженерные расчёты.
При загрузке системы Matlab на экране монитора появляется основное окно системы (см. рис.1), в котором можно выделить:
- окно команд (Command Window);
- окно навигации по папкам внешней памяти компьютера (Current folder);
- окно истории команд (Command History);
- окно рабочей среды (Workspace).
Рис.1.
В такой ситуации система готова к проведению вычислений и созданию программ в командном режиме.
Для проведения вычислений необходимые команды – программы записываются на встроенном языке Matlab’а непосредственно в командном окне. Каждая инструкция пишется после символа «>>» и запускается на выполнение клавишей «Еnter». Сюда же выводятся результаты вычислений.
Последовательность операций, выполненных после загрузки среды до ее закрытия, называется сессией. В окне истории команд можно просмотреть последовательность выполненных в данной сессии команд.
В окне рабочей среды можно просмотреть все переменные, которые используются в данной сессии, их размерность, используемый тип данных и пределы изменения. При этом щелчок мышью на маркер слева от идентификатора переменной позволяет просмотреть (см. рис.2) полученные в текущей сессии её значения в форме таблицы (Variable Editor).
Рис.2.
Следует отметить, что переменные, которые используются в командах в течение сессии, сохраняются в памяти ПЭВМ. Поэтому, если идёт отладка и программа меняется так, что используемые массивы были изменены свою размерность на меньшую, то при запуске отредактированной программы на выполнение в памяти ЭВМ останутся ранее вычисленные, уже не нужные значения элементов старого массива. В связи с этим при каждом запуске программы на выполнение целесообразно очищать память ЭВМ. Это можно сделать следующим образом: активизировать окно Workspace, выделить все, нажав сочетание клавиш «Ctrl+A», а затем для очистки памяти нажать клавишу «Del».
Как было сказано выше, перечень выполняемых команд можно записывать в командном окне, однако это не рекомендуется делать. Связано это с тем, что введённый перечень команд после их выполнения не редактируется и не сохраняется. В случае ошибки или необходимости изменения команд приходится их записисывать заново или копировать и исправлять перед следующим выполнением.
В такой ситуации в среде Matlab’а предпочтительнее создавать текстовый файл программы (скрипта, сценария) с помощью встроенного редактора. Он вызывается из основного меню среды цепочкой команд (опций) «file ® new ® script» (см. рис.3) или использованием сочетаний клавиш «Ctrl+N». После этого в появившемся окне
Рис.3.
встроенного редактора (см. рис.4) можно писать тест программы и затем сохранить его во внешней памяти компьютера в виде m-файла. Помимо этого меню тестового редактора имеет команды копирования, вырезания, вставки, контекстного поиска и замены, печати, запуска программы на выполнение и так далее (см. рис.5). В частности, запуск программы на выполнение может осуществляться с помощью команды «run» контекстного меню данного m-файла или с помощью пиктограммы в окне редактора.
Рис.4.
Рис.5.
Процедуры запуска программы на выполнение и её отладки имеют своё отображение в меню редактора:
- опция отладчика Debug – пошаговое выполнение с подкомандами Step, Step in, Step out, Go until cursor, Exit debug mode и так далее;
- опция Braikpoints – установка точек останова путем щелчка мышью справа от номера строки программы;
- опция просмотра значений переменных, путем наведения курсора на интересующую переменную;
- опция поиска функций по категориям и получения справки по ним (см. рис.6) и прочее.
Рис.6.
Текст программы, который сохраняется в m-файле, состоит из двух типов строк: комментария к тексту порограммы, который начинается с символа %, и самих строк программы, реализующих необходимые действия. Здесь надо помнить следующие важные свойства файлов-сценариев:
- они не имеют входных и выходных аргументов;
- работают с данными из рабочей области;
- в процессе выполнения они не компилируются;
- они представляют собой последовательность операций, записанную по правилам встроенного языка, аналогичную той, что используется в командном окне.
Следует отметить, что если в процессе отладки программы в течение одной сессии при повторном запуске изменяются только часть переменных, то в рабочей области сохраняются все те значения, которые были вычислены в предыдущем запуске, но при повторном запуске не менялись.
Кроме основного m-файла, m-файла–сценария, в Matlab’е используются m-файл–функции. Отличие m-файла–функции от m-файла–сценария состоит в том, что он является аналогом подпрограммы типа function, используемой во многих языках программирования. Структура m-файла–функции с одним выходным параметром имеет вид:
function v = fname(Список параметров)
% комментарий, если необходимо
v = выражение
M-файл–функция создается и используется в соответствии со следующими правилами:
- m-файл–функция начинается с ключевого слова function, после которого указывается имя переменной – выходного параметра, имя самой функции и список её входных параметров, отделенных запятой;
- имя m-файла–функции должно совпадатьс самой функции, поскольку Matlab автоматически присваивает данное имя при выполнении команды среды Save as;
- результат выполнения m-файла–функции присваивается имени функции, которое может использоваться в математических выражениях подобно функциям sin(x), log(x) и прочее;
- все переменные, используемые в m-файл–функции, являются локальными, т.е. действуют только в пределах тела функции;
- m-файл–функция является самостоятельным программным модулем, который связан с другими модулями и основной программой через входные и выходные параметры;
- при обнаружении m-файл–функции он компилируется и затем исполняется.
Переменные и константы
Программы состоят из последовательностей операторов, которые оперируют с переменными и константами. Переменные – это объекты, которые имеют свои имена и способны хранить разные по значению данные. В зависимости от этих данных переменные могут быть числовыми или символьными, векторными или матричными.
Для задания переменным определённых значений используется оператор присваивания, вводимый знаком равенства
Имя_переменной = Выражение;
Если выражение выходит за размер экрана монитора, то целесообразно перенести его часть на следующую строку. Для этого используется символ многоточие «…» – три и более точки.
Типы переменных заранее не декларируются. Они определяются выражением, значение которого после вычислений присваивается переменной. Имя переменной может содержать сколько угодно символов, но идентифицируется только по первым 31 символу. Здесь следует помнить, что в языке Matlab’а символы в разных регистрах (строчные и прописные) различаются. Имя любой переменной должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания «_». Недопустимо включать в имена пробелы и специальные знаки.
Константы – величины, значения которых хранятся в переменных. Различают числовые константы, логические и символьные. Представление числовых констант в компьютере во многом повторяет их представление в арифметике. При вычислениях в Matlab’е используется режим двойной точности, что примерно соответствует сохранению в числовых константах 15 цифр.
Для формирования выражений используются арифметические и логические операторы, а также операторы отношения.
Арифметические операторы
Число арифметических операторов в Matlab’е значительно расширено по сравнению с обычными алгебраическими операциями сложения (+), вычитания (–), умножения (*), деления (/) и возведения в степень (^). К ним добавлены операции с матрицами и их частным случаем – векторами. Они представлены в табл.1.
Таблица 1.
Операция | Запись |
Сложение матриц A и B | A+B |
Вычитание матриц A и B | A-B |
Умножение матриц A и B | A*B |
Поэлементное умножение матриц A и B | A.*B |
Возведение матрицы A в степень x | AÙx |
Поэлементное возведение матрицы A в степень x | A.Ùx |
Деление матриц A и B: A/B = B–1A | A/B |
Поэлементное деление матриц A и B | A./B |
Деление матриц A и B справа налево: A\B = A–1B | A\B |
Поэлементное деление матриц A и B справа налево | A.\B |
В Matlab’е в математических выражениях операторы имеют определённый приоритет выполнения. Он в точности повторяет приоритет выполнения операций в алгебре. Так приоритет логических операторов выше, чем арифметических, приоритет возведения в степень выше приоритетов умножения, деления сложения и вычитания, а приоритет умножения и деления выше сложения и вычитания. Для изменения порядка выполнения операций в Matlab’е, как и в алгебре, надо использовать круглые скобки, при этом количество используемых пар скобок не ограничивается.
Операторы отношения
Операторы отношения служат для сравнения двух величин, векторов или матриц, все операторы отношения имеют две сравниваемые величины и записываются так, как показано в табл.2.
Таблица 2.
Отношение | Запись |
x равен y | (х==у) |
x не равен y | (х~=у) |
x меньше y | (х<у) |
x больше y | (х>у) |
x меньше или равен y | (х<=у) |
x больше или равен y | (х>=у) |
В случае сравнения матриц и векторов одинаковой размерности операторы выполняют их поэлементное сравнение и логическое выражение принимает либо значение 1 (True), если элементы идентичны, либо значение 0 (False) в противном случае.
Логические операторы
Логические операторыслужат для реализации поэлементных логических операций над элементами одинаковых по размеру массивов согласно табл.3.
Таблица 3.
Операция | Запись |
Конъюнкция – логическое «и» (Ù, Ç, &, and) | and(a,b) |
Дизъюнкция – логическое «или» (Ú, È, |, or) | or(a,b) |
Инверсия – логическое «не» (ù, ¯, ~, not) | not(a,b) |
Неравнозначнасть – исключающее «или» (Ä, D, xor) | xor(a,b) |
Верно, если все элементы вектора равны нулю | any(a) |
Верно, если все элементы вектора не равны нулю | all(a) |
Элементарные функции
В Matlab’е представлены практически все известные из алгебры и математического анализа элементарные функции. Их набор представлен в табл.4.
Таблица 4.
Функция | Запись |
ê х ê – модуль x | abs(x) |
ех – экспонента x | exp(x) |
ln x – натуральный логарифм x | log(x) |
log2 x – логарифм x по основанию 2 | log2(x) |
lg x – десятичный логарифм x | log10(x) |
2 х – 2 в степени х | pow(x) |
– квадратный корень x | sqrt(x) |
arcсos x – арккосинус x | acos(x) |
arсctg x – арккотангенс x | acot(x) |
arcсosec x – арккосеканс x | acsc(x) |
arcсes x – арксеканс x | asec(x) |
arcsin x – арксинус x | asin(x) |
arсtg x – арктангенс x | atan(x) |
сos x – косинус x | cos(x) |
ctg x – котангенс x | cot(x) |
sec x – секанс x | sec(x) |
сosec x – косеканс x | csc(x) |
sin x – синус x | sin(x) |
tg x – тангенс x | tan(x) |
arсch x – гиперболический арккосинус x | acosh(x) |
arсcth x – гиперболический арккотангенс x | acoth(x) |
arссosech x – гиперболический арккосеканс x | acsch(x) |
arсsech x – гиперболический арксеканс x | asech(x) |
arсsh x – гиперболический арксинус x | asinh(x) |
arсth x – гиперболический арктангенс x | atanh(x) |
ch x – гиперболический косинус x | cosh(x) |
сth x – гиперболический котангенс x | coth(x) |
сosech x – гиперболический косеканс x | csch(x) |
sech x – гиперболический секанс x | sech(x) |
sh x – гиперболический синус x | sinh(x) |
th x – гиперболический тангенс x | tanh(x) |
При пользовании этими элементарными функциями следует помнить, что их имена в программах должны записываться малыми буквами, а углы у тригонометрических функций должны измеряться в радианах.
Кроме библиотеки элементарных функций в Matlab’е существует библиотека специальных математические функций, известных из математического анализа, интегрального и дифференциального исчисления, степенных рядов, теории дифференциальных уравнений и прочие. С возможностью их использования при программировании в Matlab’е можно ознакомиться с помощью встроенной помощи Help или по адресу http://matlab.exponenta.ru/ml/book1/index.php.
Дата добавления: 2015-07-08; просмотров: 84 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Оценка погрешностей методов | | | Простейшие способы ввода–вывода информации |