Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб. работа №2 по ОП НПиС.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
187.39 Кб
Скачать

4. Функции в matlab

Функция MATLAB есть программно реализованный алгоритм решения стандартной, часто встречающейся, задачи при различных значениях входных параметров.

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

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

Самой универсальной функцией пользователя является файл-функция – последовательность инструкций, записанных и сохраняемых в виде отдельного m-файла. Файл-функция начинается стандартной строкой

function [f,p,q]=fun(x,y,z)

после которой следуют

{инструкции},

реализующие алгоритм функции. В первой строке:

- function – обязательное служебное слово, определяющее файл-функцию;

- fun – имя функции, посредством которого происходит обращение к ней; имя функции целесообразно выбирать так, чтобы оно мнемонически отражало её сущность;

-(x,y,z)- список формальных входных параметров (переменных), от которых зависит функция, и которые должны быть переданы при обращении;

- [f,p,q]– список выходных параметров функции, которые есть результат выполнения {инструкций}; выходные параметры возвращаются функцией в точку вызова и их значения могут использоваться в дальнейшем.

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

function f=fun(x,y,z)

{инструкции} должны обязательно содержать:

- строку или несколько строк комментариев, описывающих смысл программируемой функции

%вычисление значений функции …

%

%

- операторы присвоения значений выходным параметрам:

f={выражение};

p={выражение};

q={выражение};

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

Формат обращения к файл-функции:

F=fun(a,b,c);

Здесь F - переменная или параметр, которым присваивается значение функции fun при значениях переменных . Эти значения называются фактическими параметрами.

Отличие файл-функции от файл-программы заключается в способе использования переменных. Переменные, определённые в файл-программе, доступны для любых манипуляций не только в этой файл-программе, но также и в других файл-программах, открытых одновременно. Такие переменные называются глобальными. Переменные же, определённые в файл-функции, доступны для манипуляций только в этой файл-функции. Такие переменные называются локальными. Локальные переменные a b c можно сделать доступными в других файл-программах и файл-функциях с помощью описания global a b c. Оно должно располагаться перед первым исполняемым оператором в каждой файл-программе и файл-функции.

Файл-функции – мощный универсальный инструмент написания структурированных программ. {инструкции}, реализующие заложенный в них алгоритм, могут насчитывать сотни строк, содержать различные операторы управления, обращения к подфункциям. Но может возникнуть необходимость вычислить значение локальной функции, заданной простым выражением. Для таких случаев MATLAB располагает другим видом функций пользователя – анонимными функциями (anonymous functions).

Формат анонимной функции следующий:

или по-русски

Указательфункции = @(список аргументов) (выражение)

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

Пример.

Пусть требуется многократно вычислять значения функции . Анонимная функция может быть определена следующим образом:

alpha=pi/3;

fx=@(x) abs(cos(alpha*x))

Обращение к анонимной функции осуществляется так:

A=fx(5)

Результат:

A =

0.5000

В MAATLAB имеется ещё один тип функций, не сохраняемый в виде отдельного файла – inline-функция. Её формат следующий:

или

Имяфункции = inline('выражение', 'p1', 'p2',...)

где Имяфункции – разрешённое в MATLAB имя, inline - обязательное служебное слово, 'выражение' – выражение, задающее функцию по правилам MATLAB, 'p1', 'p2',... – переменные и параметры, от которых зависит функция.

Пример.

Inline-функция, вычисляющая значение выражения , имеет вид

fx=inline('x.^2.*cos(a*x)-b','x','a','b')

Обращаться к inline-функции следует так:

F = fx(pi/5,5,2)

Ответ:

F =

-2.3948