Система математических расчетов MATLAB

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

основном рабочем про-странстве. Однако, если несколько функций и, возможно, основное рабочее пространство, объявляют некоторую конкретную переменную глобальной, то все эти функции и основное рабочее пространство будут иметь доступ к данной переменной. Любое изменение глобаль-ной переменной, произведенное в пространстве какой-либо одной функции, немедленно воспринимается всеми остальными функциями, где эта переменная объявлена глобальной. Допустим, вы хотите изучить эффект изменения коэффициентов взаимосвязей a и b, в диф-ференциальном уравнении Лотки-Вольтера (Lotka-Volterra), известного как модель хищника-жертвы.

 

dy1/dt = y1 - ay1y2

dy2/dt = y2 - by1y2

Создадим М-файл lotka.m.

 

function yp = lotka(t,y)

global ALPHA BETA

yp = [y(1) ALPHA*y(1)*y(2); y(2) + BETA*y(1)*y(2)];

 

Затем введем последовательно в командное окно следующие выражения

 

global ALPHA BETA

ALPHA = 0.01

BETA = 0.02

[t,y] = ode23(lotka,0,10,[1; 1]);

plot(t,y)

 

Объявление переменных ALPHA и BETA глобальными в командной строке позволяет ме-нять соответствующие значения внутри функции заданной файлом lotka.m. Интерактивное изменение данных переменных в командном окне приводит к получению новых решений без каких-либо редактирований текста файла.

 

Для работы в ваших приложениях с глобальными переменными следует:

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

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

 

Перманентные переменные (Persistent Variables)

Переменная может быть объявлена перманентной (постоянной) при этом она не меняет своего значения между ее последовательными вызовами. Перманентные переменные могут быть использованы только в пределах определенной функции. Эти переменные остаются в памяти до удаления М-файла из памяти или его изменения. Во многих отношениях перма-нентные переменные аналогичны глобальным, за тем исключением, что их имя не находится в глобальном рабочем пространстве, а их значение сбрасывается при изменении М-файла или удаления из памяти.

Для работы с перманентными переменными в MATLAB-е предусмотрены три функции:

 

ФункцияОписаниеmlockИсключает возможность удаления М-файла из памятиmunlockВозвращает М-файлу возможность его удаления из памятиmislockedУказывает, может ли М-файл быть удален из памяти

 

Специальные переменные

Несколько функций возвращают важные специальные значения, которые вы можете исполь-зовать в ваших М-файлах.

 

ФункцияВозвращаемое значениеansПоследний ответ (переменная). Если вы не присваиваете выходной переменной или вычисляемому выражению какое-либо имя, MATLAB автоматически запоминает результат в переменной ans.epsОтносительная точность вычислений с плавающей запятой. Это допуск, который MATLAB использует при вычислениях.realmaxНаибольшее число с плавающей запятой.realminНаименьшее число с плавающей запятой.pi3.1415926535897...i, jМнимая единица.infБесконечность. Вычисления вида n/0 где n любое ненулевое реально число, дает в результате inf. NaNНе численное значение (Not-a-Number). Выражения вида 0/0 и

inf/inf дают в результате NaN, так же как и арифметические операции содержащие NaN. Выражения типа n/0, где n явля- ется комплексным числом, также возвращают NaN.

computerТип компьютера.versionСтрока, содержащая версию MATLAB-а.

Вот несколько примеров, где используются эти переменные.

 

x = 2*pi;

A = [3 + 2i 7 8i];

tol = 3*eps;

 

 

Типы данных

 

Всего в MATLAB е имеется 14 базовых типов (или классов) даных. Каждый из этих типов данных является формой массива. Этот массив может иметь минимальный размер 0х0 и мо-жет иметь произвольную размерность по любой координате. Двумерные варианты таких массивов называются матрицами.Все 14 базовых класса типов данных показаны на приве-денной ниже диаграмме. Дополнительно, тип данных, определенных пользователем, пока-занный ниже как user class (класс пользователя), является подмножеством данных типа структуры.

 

 

Тип данных char содержит символы данные в коде Unicode. Строка символов является про-сто массивом символов размера 1хn. array of characters. Вы можете использовать тип данных char для хранения массивов строк, при условии, что все строки массива имеют одинаковую длину (это является следствием того, что все массивы MATLAB-а должны быть пр