Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операторы языка MATLAB




Оператры языка MATLAB предназначены для организации вычислений и делятся на три категории:

1) арифметические операторы – предназначены для создания арифметических выражений и выполнения вычислений в арифметике с плавающей точкой;
2) операторы отношения – предназначены для сравнения числовых переменных и числовых массивой;
3) логические операторы – предназначены для построения логических выражений с использованием логических переменных.

Арифметические операторы. Особенность арифметических выражений в MATLAB состоит в том, что они определены не только на одном числовом элементе, но и на массивах таких элементов, в том числе и многомерных. Наибольшее применение на практике имеют двумерные массивы. Среди них (двумерных массивов) особое место занимают массивы, используемые для линейных преобразований векторов. Эти двумерные массивы называют матрицами. Результаты многих операции для матриц не совпадают с такими же операциями для произвольного двумерного массива чисел.

Массивы и матрицы являются базовыми объектами языка MATLAB. Они являются основным типом данных с которым работает система.

Рассмотрим операции над массивами. Двумерный массив – это множество действительных или комплексных чисел , представленных в виде прямоугольной таблицы

.

Числа называются элементами массива; индексы определяют размещение элементов в таблице, на пересечении - ой строки и -го столбца. Если массив имеет строк и столбцов, то говорят что это массив размера . Массив размера содержит единственный элемент и называется скаляром. Особенность операций над массивами состоит в том что операции выполняются поэлементно и обозначаются. (точкой) перед обозначением операции.

Сложение вычитание массивов. Сложение и вычитание массивов осуществляется поэлементно и обозначается

Исходные массивы должны иметь один и тот же размер.

Произведение массивов. Операция произведения массивов выполняется поэлементно и обозначается

.
Исходные массивы должны иметь один и тот же размер.

Деление массивов. Операция деления массивов выполняется поэлементно и имеет две формы – правого и левого деления. Соответственно обозначается

.

Исходные массивы должны иметь один и тот же размер.

Транспонирование элементов массива. Операция транспонирования элементов массива – это перемена местами его строк и столбцов.

.

Возведение в степень массива. Здесь основание и показатель степени - соразмерные массивы. Элементами этих массивов могут быть как действительные, так и комплексные числа.

.

Вычисление функций от массива. В системе MATLAB можно вычислить любую элементарную математическую функцию от элементов массива.

Возможность вычисления функции одновременно для всех элементов массива является уникальным свойством системы MATLAB. Это свойство называется векторизацией вычислений и обеспечивает высокую производительность вычислений в режиме интерпретации.

Рассмотрим операции над матрицами. Особенность операций над матрицами состоит в том, что матрица – это прямоугольный массив действительных или комплексных чисел со специальным образом определенными операциями транспонирования и умножения.

Сложение и вычитание матриц. Операции сложения и вычитания матриц удовлетворяют следующим соотношениям.

;

.

Исходные матрицы должны иметь один и тот же размер.

Произведение матриц. Операция произведения – это операция линейной алгебры, которая содержит в своей основе скалярное произведение двух векторов и описывается следующим образом

Каждый элемент матрицы произведения является скалярным произведением вектора -ой строки матрицы на вектор -ого столбца матрицы . Число столбцов матрицы должно совпадать с числом строк матрицы . Например, если имеет размер , а – размер , то имеет размер , т.е. скаляр, а произведение это матрица размера .

Решение систем линейных алгебраических уравнений. Общий вид системы линейных алгебраических уравнений можно записать как


или в матричной форме

,

где
, , .

В MATLAB решение этой системы линейных алгебраических уравнений имеет вид

или .

Возведение матрицы в степень. Для случая, когда показатель степени целое число, то возведение матрицы в степень не очень сложная операция.
Для , что соответствует умножению матрицы саму на себя раз.
Для , что соответствует умножению матрицы саму на себя раз. Матрица называется обратной матрице .
Обратная матрица вычисляется при помощи функции inv, т.е.
, где обратная матрица для .
Для произвольного и даже комплексного определение возведение матрицы в степень требует более глубокого математического аппарата теории матриц и мы здесь не будем определять эту операцию, хотя нужно помнить, что она выполнима в MATLAB.

Транспонирование матрицы. Операция транспонирования обозначается как и отличается от транспонирования массива тем, что не только меняются местами строки и столбцы, но элементы транспонированной матрицы комплексно сопряжены к элементам исходной матрицы.
В MATLAB введена операция вычисления функции от матрицы. Ее определение требует также более глубокого математического аппарата теории матриц, таких как диагональная матрица собственных значений, матрица правых собственных векторов, матрица левых собственных векторов.

Действительные и комплексные числа в MATLAB. Числа при обращении к MATLAB задаются в общепринятом представлении о них. Они могут быть целыми – 5, 984, -36, дробными – 3.456. Используется формат вида – 245.651e-21, где число 245.651 умножено на . Пробелы внутри числа, а также до и после символа е не допускаются.

Комплексное число задается в виде s=2.35+4.6i, где по умолчанию , 2.35 – действительная часть, а 4.6 – мнимая часть. Аналогично вместо i может использоваться j. Следует помнить, что символы i, j могут быть вами же переопределены, и в workspace могут храниться, например, как реальные числа. Но в конструкции 5+1i – это будет комплексное число, в конструкции 5+i – это будет реальное число.

Максимальное положительное число представимое в MATLAB это
1.7977е+308 ().
Минимально положительное число представимое в MATLAB это
2.2251е-308 ().
Погрешность операций над числами с плавающей точкой (eps) это

2.2204е-016 ().
Как отмечалось при вычислениях в MATLAB используется двойная точность. Но при выводе на экран монитора или на печать не всегда нужно большое число значащих цифр. Поэтому в MATLAB по умолчанию числовые результаты выводятся с четырьмя знаками после десятичной точки. Если такая информация не устраивает, то возможно применение команд

format long или format long e – после выполнения этой команды выводится 14 знаков после десятичной точки.
Для сокращения числа выводимых знаков применяют команду
format short или format long e.

Операторы отношения. Для сравнения элементов массивов предусмотрено 6 операций.

меньше; меньше или равно; больше;

больше или равно; равно тождественно (эквивалентно);

не равно.

Операторы отношения будут иметь вид

D = E < F; D = E <= F; D = E > F; D = E >= F;

D = E = = F; D = E ~ = F;

Операндами в этих операторах могут быть любые массивы, допускающие сравнение элементов. Результатом операции будет логическая 1 в случае выполнения отношения или 0 если отношение не выполняется. Массив D будет логического типа.

Оператор отношения вида D = = [ ] не допустим. Для проверки является ли массив пустым применяют функцию isempy (D).

Для сравнения массивов строк применяют функцию strcmp.

Логические операции. Логические операции предназначены для работы с данными, которые принимают значения 0 и 1. Обозначают их в следующем виде.

Название операции Формат команды Формат функции
Логическое И A & B and(A,B)
Логическое ИЛИ A | B or(A,B)
Логическое НЕ (отрицание) ~A not(A)
Исключающее ИЛИ __________________ Xor(A,B)
Укороченное логическое И A && B ______________
Укороченное логическое ИЛИ A || B _________________

Первые четыре операции могут выполняться как над скалярами так над массивами (ответ либо скаляр либо массив). Последние две операции выполняются только над скалярами.

Смысл укороченных операций следующий: для операции И – если А=0, то результат сразу 0 и не надо анализировать В, для операции ИЛИ – если А=1, то результат сразу 1 и не надо анализировать В.

При вычислении арифметических и логических выражений выполнение операций осуществляется согласно приведенному ниже приоритету.

Приоритет Символ операции
  () – круглые скобки
  Транспонирование и возведение в степень: – транспонирование массива; – поэлементное возведение в степень массива; ’ – транспонирование матрицы; ^ – возведение в степень матрицы.
  Одноместные операции: + – унарный плюс; - – унарный минус; ~ – логическое отрицание.
  Операции умножения и деления:.* – поэлементное умножение массивов;./ – поэлементное правое деление;.\ – поэлементное левое деление; * – умножение матриц; / – правое деление матриц; \ – левое деление матриц.
  Арифметические операции: + – сложение; - – вычитание.
  : – оператор сечения массива.
  Операции отношения: <, <= – меньше, меньше или равно; >, >= – больше, больше или равно; == – равно (эквивалентно); ~= – не равно.
  & – логическое И.
  | – логическое ИЛИ.
  && – укороченное логическое И.
  || – укороченное логическое ИЛИ.

Поскольку высший приоритет имеют круглые скобки, то регулировать последовательность выполнения операторов в сложных выражениях можно с их помощью.

Помимо приведенных ранее операций в MATLAB используются операции обработки множеств и операции побитовой обработки. Их рассмотрим на практических занятиях. Отметим что эти операции не имеют символьного обозначения (+, -,* и т.д.), а имеют обозначение в виде функций.

 

Тема 9 Программирование в MATLAB

Проведение вычислений в MATLAB возможно путемнабора необходимых для расчетов выражений в командном окне и их выполнения. Для повторного выполнения ранее проведенных вычислений возможно извлечение нужных выражений (команд) из окна Command History и их вычисление возможно с новыми исходными данными.

Однако такой подход крайне неудобен при относительно сложных вычислениях. Как и в других языках высокого уровня в MATLAB необходимые для конкретного вычисления выражения собирают в группы, которые хранят в определенных файлах. Эти группы выражений для решения конкретной задачи называют программами.

В MATLAB существует два вида файлов (М – файлов, названных так по их расширению), в которых хранятся и выполняются программы – это script файлы (файлы - сценарии) и файлы - функции.

Файлы сценарии. Script файлы являются самым простым типом М – файлов.

У файлов – сценариев нет входных и выходных параметров.

Файлы – сценарии позволяют автоматизировать выполнение последовательности операторов. Иначе их нужно было бы вводить и выполнять из командной строки командного окна.

В файле – сценарии можно применять любые команды и функции языка MATLAB, в том числе другие файлы – сценарии. Однако имена файлов – сценариев нельзя использовать как операнды в арифметических выражениях и в качестве аргументов функций. Если хотим использовать другой файл-сценарий в теле текущего файла сценария, нужно записать отдельной строкой имя файла – сценария без расширения как команду.

В файле – сценарии не требуется объявлять имена и типы переменных, использовать метки begin/end начала и конца программы.

Файл – сценарий не требуется компилировать перед запуском на выполнение.

Выполняется файл – сценарий путем записи имени файла без расширения в командной строке командного окна и нажатия клавиши Enter.

Программы – сценарии могут использовать данные от всех предусмотренных в MATLAB источников, в том числе и из Workspace (рабочей области).

Результаты расчетов сохраняются в Workspace и, если это предусмотрено программой, могут быть записаны на другие средства сохранения данных. Таким образом, другие файлы и команды могут использовать данные из Workspace в своей работе. Естественно это возможно, если имена переменных совпадают и Workspace предварительно не очищена командой clear.

Создание файла-сценария и его структура.

Создается Script-файл из окна MATLAB несколькими способами.

1) в командной строке окна MATLAB набрать команду edit и выполнить ее, нажав Enter. Откроется окно редактора с пустой неименованной (Untitled) страницей файла. Можно записывать текст файла.

2) В инструментальной строке окна MATLAB кликнуть кнопку New M-File и далее как в 1).

3) В строке меню окна MATLAB последовательно кликнуть File New M-file и далее как в 1).

При написании Script-файла в первой строке обычно пишут слово Script, хотя можно этого не делать.

Во второй строке записывают комментарий, который открывается знаком %. Записывать комментарий можно по-русски и содержать он может несколько строк. Каждая строка комментария обязательно должна начинаться знаком %.

Далее записывается построчно текст программы. Для удобства контроля текста файла на каждой строке записывают не более одного оператора. Если на экран монитора результаты расчета текущего оператора выводить не нужно, то в конце оператора нужно ставить знак;. Допускается в одной строке записывать через; несколько операторов. Если текст оператора слишком длинный, что создает неудобство при его чтении в редакторе, применяют перенос строки. В конце строки перед переносом ставят три точки , нажимают Enter и в новой строке пишут продолжение строки. Переносить строки можно несколько раз.

После написания текста Script-файла (или хотя бы одной строки) файл нужно сохранить, дав ему имя. Для сохранения файла в редакторе кликнуть кнопку File, затем save as. Откроется окно, в котором нужно выбрать папку для хранения файла и в окошке «имя файла» записать желаемое имя файла, сохранив расширение.m. Имя файла состоит из нескольких (воспринимается до 63) символов латинского алфавита, цифр и символа подчеркивания, но начинаться имя должно с латинской буквы. В имени файла строчные и прописные буквы не различаются (напоминаю в именах переменных строчные и прописные различаются).

Файлы – функции. Файлы – функции называют еще М-функции. М-функции, в отличии от М-сценариев, используют входные и выходные аргументы. М-функции работают с переменными в пределах собственной рабочей области. Собственная рабочая область М-функции отлична от упоминаемой ранее рабочей области (workspace) и невидима, в то время как workspace имеет свое окно в составе окна MATLAB.

Наиболее существенное отличие файла – функции от файла-сценария состоит от способа выполнения. При обращении к файлу функции из командной строки командного окна или из Script-файла MATLAB ищет файл с соответствующим именем, просматривая все пути доступа. Когда файл найден, он проходит процедуру компиляции и размещается в оперативной памяти ЭВМ и только после этого начинает выполняться. Script-файла целиком не компилируется, а выполняется в режиме интерпретации. Это означает компиляцию одного оператора, а затем его выполнение. Потом компилируется следующий оператор и выполняется и т.д. Итак откомпилированный файл-функция хранится всю сессию работы MATLAB и к нему можно обращаться много раз за сессию работы. Script-файла интерпретируется каждый раз при обращении к нему.

Напомним, что файл-функция считывает значения входных параметров из общей рабочей области и записывает туда же выходные параметры. (Значения внутренних параметров остаются неизвестными).

Отметим, что файл-функция может содержать программы нескольких функций. Первая функция в файле – это основная функция, вызываемая по имени М-файла. Другие функции внутри файла – это подфункции, которые видимы только для основной функции и других функций того же файла.

Создание файла-функции и его структура.
Структура файла-функции состоит:

Первая строка – строка определения или заголовок функции. Эта строка задает имя функции. Задает последовательность выходных переменных и последовательность входных переменных (аргументов). Последовательность выходных аргументов записывается в квадратных скобках. Если выходной аргумент один, то записывается он без скобок. Последовательность входных аргументов записывается в круглых скобках, даже если входной аргумент один.
Вторая строка это строка комментария. Эта строка определяет назначение функции. Она выводится на экран при помощи функции help<имя каталога>.

Третья строка или несколько затем – комментарий. Содержит развернутую информацию о входных и выходных переменных и выводится на экран вместе с первой строкой комментария командой help <имя функции>.

Тело функции – это программа на языке MATLAB, которая реализует вычисления и присваивает значения выходным переменным.
Например,
function g = dlina (a, b, c)
% DLINA – находит длину вектора по трем проекциям.
% a – проекция вектора на ось х, b – проекция вектора на ось у,
% c - проекция вектора на ось z.
% g – длина вектора
g = sqrt(a^2+b^2+c^2);
Здесь dlina – имя функции. При сохранении написанного файла система предложит имя файла dlina. Обычно с этим соглашаются, хотя это не обязательно.

М функции используются также как обычные встроенные функции MATLAB. Их можно в отличии от файлов сценариев использовать в арифметических выражениях.

Практические рекомендации по оформлению М – файлов.
1) Рекомендуется каждый оператор программы записывать в отдельной строке. Это особенно касается файлов-сценариев, исполняемых в режиме интерпретации.
2) При написании тела файла-функции можно размещать в одной строке несколько операторов, разделяемых запятой или точкой с запятой.
3) Можно использовать много строчные операторы. Строка, имеющая перенос заканчивается символом три точки (…).
4)В языке MATLAB переменные не описываются и не объявляются. Любая переменная воспринимается системой как имя массива определенного класса. Размер этого массива и его класс определяется при его заполнении. В языке MATLAB не может быть переменных, которым не присвоено какое либо значение. Это может быть пустой массив, одна из размерностей которого имеет нулевой размер.
Выполнение М-функций.
М-функцию можно вызвать на выполнение из командной строки командного окна или из других М-файлов. При вызове функции должны быть указаны имена всех входных переменных (естественно в рабочей области должны существовать значения входных переменных) и указаны имена выходных переменных, которым после выполнения вычисления функции будут присвоены вычисленные значения. Например, для приведенной выше функции вызов будет иметь вид r = dlina(d, e, f), где d - проекция вектора на ось х, e -проекция вектора на ось y, f - проекция вектора на ось z. Следует обратить внимание, что обозначения входных переменных при вызове функции не соответствует записанным в М-файле функции. Важно, первым аргументом является проекция вектора на ось х, вторым аргументом является проекция вектора на ось у, третьим аргументом является проекция вектора на ось z. Выходная переменная обозначена также отличным символом от существующего в м-файле dlina. (Эта функция может применяться для различных векторов в одной и той же программе). В простейших вычислениях вместо символов входных переменных можно применять их числовые значения. Вместо символа выходной переменной r в выражения можно применять вызов dlina(d, e, f), если это удобно.

Списки аргументов. Одна и та же программа файла-функции может быть составлена для разного числа входных аргументов, заранее неизвестного. Фактическое количество входных аргументов определено только при обращении к ее вычислению. В таких случаях в тексте файла-функции применяют функцию varargin.

Тема 10 Операторы управления выполнением программ в MATLAB

В основном к операторам управления выполнением программ относятся:
операторы организации циклов;
операторы условного перехода;
переключатели.

Начиная с версии MATLAB 6 существует 8 операторов управления выполнением программ:
1) оператор цикла for … end; выполняет группу инструкций (операторов) фиксированное число раз.
2) оператор цикла while … end; выполняет группу инструкций (операторов) неопределенное число раз, пока не будет выполнено некоторое логическое условие завершения.
3) оператор условного перехода if … elseif … else … end позволяет выполнять разные группы инструкций (операторов) в зависимости от тех или иных логических условий.
4) оператор переключения switch … case … otherwise … end выполняет разные группы инструкций в зависимости от значения переключателя.
5) оператор try … catch … end изменяет последовательность программы если возникает ошибочная ситуация.
6) оператор continue позволяет при определенных условиях прервать выполнение инструкций текущего шага цикла и перейти к выполнению инструкций следующего шага цикла.
7) оператор break позволяет прервать выполнение цикла и выйти из него.
8) оператор return прерывает выполнение текущей m –функции и обеспечивает переход в вызывающую функцию.

Рассмотрим подробнее каждый из операторов.

1) Оператор for … end
Синтаксис этого оператора имеет вид
for <переменная цикла> = <нз>: <шаг>: <кз>
<инструкции (операторы)>
end

Например for ic = 1: 2: 9
y(ic)=sin(0.0174*ic);
end

После выполнения этого цикла будем иметь массив y из 5-ти элементов со значениями синуса 1гр, 3гр, 5гр, 7гр, 9гр.
Если записать for ic = 1: 9 т.е. шаг не записан, то по умолчанию он будет равным 1. В этом случае инструкции выполняются для ic = 1, 2, 3, 4, 5, 6, 7, 8, 9.
В общем случае шаг может быть отрицательным. Тогда должно быть кз< нз.
Шаг может быть дробным.
Число инструкций может быть очень большим.
Внутри цикла могут быть вложены другие циклы. Для них переменная цикла должна иметь другое имя.
Переменной цикла может быть двумерный массив
for <переменная цикла> = D
<инструкции (операторы)>
end

Здесь при выполнении цикла на каждом шаге выполнения цикла переменная цикла представляется как вектор столбец D(:, k). На первом шаге k=1 (первый столбец матрицы D), на 2-м k=2 (второйстолбец матрицы D) и т.д. до k=n, где n – номер последнего столбца матрицы D. Конечно переменная цикла D(:, k) входит в текст инструкций.
2) Оператор while … end -оператор цикла с неопределенным числом шагов.
Синтаксис этого оператора имеет вид
while <логическое выражение>
<инструкции (операторы)>
end

Здесь <логическое выражение > это
выражение 1 < оператор отношения > выражение 2
==, <=, >=, <, >, ~
На первом шаге выполнения цикла вычисляется логическое выражение. Если оно «1» далее следующие инструкции выполняются. Если логическое выражение равно «0», то инструкции не выполняются – цикл пропускается. Пусть на первом шаге логическое выражение равно 1, тогда инструкции выполняются. На 2-м шаге опять вычисляется логическое выражение и, если оно опять равно 1, то переходят опять к вычислению инструкций ит.д. до тех пор пока логическое выражение не станет равным 0. Цикл прекращается.
3) Оператор условного перехода if … elseif … else … end.
Этот оператор существует в трех видах. Первый вид
if <логическое выражение>
<инструкции (операторы)>
end

Если логическое выражение равно 1, то выполняются все инструкции между if и end, а затем программа переходит к строке, следующей за end. Если логическое выражение равно 0, то инструкции внутри if … end не выполняются и программа переходит к строке, следующей за end.
Следующая форма условного перехода
if <логическое выражение>
<инструкции 1 (операторы 1)>

else
<инструкции 2 (операторы 2)>
end

Если условие выполняется (логическое выражение равно 1), то выполняются инструкции 1. Если условие не выполняется (логическое выражение равно 0), то выполняются инструкции 2.

Последняя форма условного перехода
if <логическое выражение1>
<инструкции 1 (операторы 1)>
elseif <логическое выражение2>
<инструкции 2 (операторы 2)>

else
<инструкции 3 (операторы 3)>
end

В этом условном переходе оператор elseif может встречать несколько раз, но с разными логическими выражениями. Инструкции находящиеся под ним выполняются, если его условие выполняется, а предшествующие не выполняются. Инструкции после else выполняются, если все предшествующие условия в if, elseif не выполняются. Оператор else в этой форме условного перехода может отсутствовать.
4) Оператор переключения switch … case … otherwise … end
Синтаксис этого оператора имеет вид

switch < выражение >

case < значение 1>
инструкции 1
case {< значение 2>, <значение 3>, … <значение к>}
инструкции 2
otherwise
инструкции 3
end

Здесь < выражение > либо скаляр либо строка (переменная char). В начале выполнения оператора переключения < выражение > вычисляется один раз. Если оно принимает < значение 1>, то выполняются инструкции 1. Групп
case < значение n>
инструкции n

может быть несколько, и выполнятся только те инструкции, в которых значение < выражение > совпадает с соответствующим <значением> после слова case. Если возможные значениядля case записаны в виде массива ячеек, то <инструкции 2> выполняются, если хотя бы один элемент массива ячеек совпадает со значением < выражение > в заголовке switch.
Находящиеся после слова otherwise инструкции 3 выполняются, если в начале вычисленное значение < выражение > не совпало ни с одним значением после слова case. Группа
otherwise
инструкции 3
в конструкции оператора переключения может отсутствовать.
Для числовых значений < выражения > инструкции после слова case выполняются, если < выражения > == < значение >. Для строковых значений <выражения> инструкции после слова case выполняются, если
strcmp(<значение>,<выражение>) истинно.
5) Оператор try … catch … end называют перехват и обработка ошибок.
Его синтаксис
try
<инструкции>
catch
<инструкции1>
end

Инструкции после слова try – это инструкции штатного режима работы программы. Если при их выполнении возникнет ошибка, то управление передается <инструкциям 1>, находящимся после слова catch. Здесь осуществляется идентификация ошибки и формируется сообщение об ошибке.
6) Оператор continue.
Оператор continue прерывает выполнение текущего шага в циклах for или while и переводит программу на выполнение следующего шага цикла. В случае вложенных циклов происходит возврат в цикл более высокого уровня. Часто оператор continue используется в качестве инструкции условного оператора if … end.
7) Оператор break.
Оператор break прерывает выполнение циклов for и while. В случае вложенных циклов прерывание возможно только из самого внутреннего цикла. Часто оператор break используется в качестве инструкции условного оператора
if … end.
8) Оператор return.
Оператор (команда) return выполняет возврат в вызывающую программу. Часто оператор return используется в качестве инструкции условного оператора if … end. Команда return позволяет завершить режим работы с клавиатурой.

Диалог с пользователем.
Диалог с пользователем в основном выполняется по трем направлениям:
1) вывод информации и данных на экран монитора;
2) приостановка вычислений для анализа числовых и графических данных;
3)запрос информации от пользователя о продолжении или прекращении процесса вычислений либо ввода дополнительных данных.
По первому направлению используется оператор disp.
В варианте disp(X) оператор выводит на экран монитора значение переменной Х без указания имени (Х – скаляр или массив).
В варианте disp(‘слово’) выводит на экран содержание строки char.

По второму направлению используется команда pause. Используется в нескольких видах.
pause – останавливает вычисления, для продолжения вычислений нужно нажать любую клавишу.
pause(n) – останавливает вычисления на n секунд.
pause off -отключает режим пауз.
pause on – включает режим пауз.
Рекомендация: если вывод графиков на экран выполняется не в конце программы, а в процессе ее выполнения, то желательно сделать паузу после каждого построения графиков.

По третьему направлению.
Для ввода информации можно использовать оператор input.
Синтаксис x = input(‘<приглашение>’)
После выполнения этого оператора на экране появится текст приглашения и компьютер будет ожидать ввода либо значения переменной Х (число или массив), либо выражения допустимого в MATLAB: арифметического выражения, имя функции.

Часто для ввода информации, корректировки данных используется команда keyboard. Эта команда передает управление клавиатуре. На экране появляется знак K >>. В этом режиме можно: проверить и изменить данные в workspace. Выполнить из командного окна все действия доступные в MATLAB. Часто используют эту команду в режиме отладки.
Выйти из режима keyboard и продолжить вычисления можно выполнением команды return.

 

 


Другие необходимые темы (освещены на практических занятиях и ЛР)

Решение систем линейных алгебраических уравнений в MATLAB.
Математическая форма уравнения
,
где матрица размера , - вектор- столбец размера ,
- вектор столбец решений размера .
Решателем в MATLAB является

Решение возможно, если определитель матрицы не равен 0

Решение уравнения тем точнее, чем меньше число обусловленности матрицы . ()
Для возможен размер , тогда решение имеет размер .

Если размер матрицы равен , где ,
то решатель тот же , но ищется приближенное решение.
Ищется по методу наименьших квадратов ,
где .

Если , то система переопределенная,
если , то система недоопределенная.

Большие возможности для решения линейных уравнений предоставляет функция linsolve(A,B), (см.help linsolve).

Вычисление однократных и двукратных интегралов в MATLAB.
Для вычисления интеграла
можно применить функцию quad
J=quad(‘имя функции’,a,b)
или J=quad(@имя функции,a,b),
где имя функции является именем m-файла функции, вычисляющей значение <выражения>.
В записанном виде точность вычисления интеграла равна 1е-06. Если желательно вычислить интеграл с большей точностью, то применяют вид
J=quad(‘имя функции’,a,b,tol),
где tol желаемая точность.
Функция quad вычисляетинтеграл методом квадратур.
Большую точность вычисления интеграла дает функция quadl (эль в конце).
Функция quadl вычисляетинтеграл методом Лобатто адаптивных квадратур. Помимо названных функций однократные интегралы вычисляют следующие функции: trapz – методом трапеций, cumtrapz – методом трапеций с накоплением.
Для вычисления двойных интегралов

применяют функцию dblquad
J=dblquad(‘имя функции’,a,b,c,d,tol,metod)
Можно без tol, metod.

Для вычисления тройных интегралов применяют функцию triplequad.
(см.help triplequad)

Численное решение произвольных алгебраических уравнений в MATLAB.

D(x)=0

x=fzero(‘имя функции’,x0)


. Численное решение обыкновенных дифференциальных уравнений (ОДУ) в MATLAB.
В MATLAB существует 7 решателей для ОДУ. Все они решают задачу Коши. Дифференциальные уравнения для всех решателей задаются в явной форме Коши.
,
где - вектор столбец, искомых функций , , - порядок системы.
Имена функций решателей следующие:




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 6908; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.085 сек.