Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Функции, задаваемые пользователем






Рассмотрим два способа задания функций, определенных пользователем, в MATLAB.

Первый способ использует оператор @ для создания, так называемой «анонимной функции».

Второй способ использует команду inline.

Рассмотрим два способа на примере функции одной переменной

.

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

Первый способ:

> > f = @(x) x.^2.*sin(pi*x/2)

f =

@(x)x.^2.*sin(pi*x/2)

Второй способ:

> > f1 = inline('x.^2.*sin(pi*x/2)')

f1 =

Inline function:

f1(x) = x.^2.*sin(pi*x/2)

Когда функция задана, неважно каким методом, её можно вычислить, например

> > a = f(3)

a =

-9

 

> > a = f1(3)

a =

-9

или

> > x = [1 2 3]

x =

1 2 3

 

> > a = f(x)

a =

1.0000 0.0000 -9.0000

 

> > a = f1(x)

a =

1.0000 0.0000 -9.0000

 

Этими способами можно задать функцию двух и более аргументов.

Например, .

> > g = @(x, y) (x+y).*exp(x)

g =

@(x, y)(x+y).*exp(x)

 

> > g1 = inline('(x+y).*exp(x)', 'x', 'y')

g1 =

Inline function:

g1(x, y) = (x+y).*exp(x)

 

> > x = [1 2]

x =

1 2

 

> > y = [2.5 3.4]

y =

2.5000 3.4000

 

> > u = g(x, y)

u =

9.5140 39.9009

 

> > u = g1(x, y)

u =

9.5140 39.9009

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.