Использование файлов- функций
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

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

1. построение графика функций;

2. численное интегрирование;

3. нахождение корней трансцендентного уравнения;

4. поиск экстремумов функци;

5. решение систем дифференциальных уравнений.

Построение графика.

График функции на заданном отрезке, символьное выражение (формула) которой записано в файле-функции, можно построить, используя команду:

fplot ( fun , interval ), где

fun – имя функции или символьное выражение, задающее формулу вычисления;

interval – отрезок, который задается вектором из двух значений: начального и конечного значения отрезка.

В качестве примера построим график функции х2-1 на отрезке от 0 до p. Для функции х2-1 напишем файл-функцию. В текстовом редакторе наберем следующий текст:

function f = func ( x )

f = x .^2-1;

Сохраним его в файле с именем func.m.

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

>> fplot('func',[0 pi])

Или используем вместо имени функции символьное выражение:

>> fplot('sin(x)',[0 pi])

Вычисление интеграла.

Самым простым численным методом нахождения определенных интегралов является метод трапеций, который реализован функцией trapz ( x , y ), где x и y – вектора, задающие значения аргумента и функции в пределах интегрирования. Для ее использования не требуется оформление подинтегральной функции в качестве файла-функции.

Вычислим интеграл

>> x=0:pi/100:pi;

>> y=sin(x);

>> z=trapz(x,y);

z =

1.9998

Получили приближенное значение интеграла. Увеличив шаг интегрирования до pi/1000, получим более точное значение – 2.

Более точные методы реализованы в функциях quad , quad 8, quadl .

Функция quad основана на квадратурной формуле Симпсона, а функция quadl предназначена для вычисления интеграла по более точным формулам Гаусса-Лейбница. Функция quad 8 реализует метод Ньютона-Котеса восьмого порядка. Все три функции имеют одинаковый набор параметров.

[i, n]=quad(fun, a, b, tol, trace), где

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

a , bпределы интегрирования;

tolпогрешность вычислений;

trace признак; если его значение равно 1, то при выполнении функции строится график подинтегральной функции, если 0, то не строится. Последние два параметра являются необязательными.

i значение интеграла;

nколичество значений функции, которое потребовалось вычислить для нахождения значения интеграла.

>> [i, n]=quad8('func', 0, pi, 1e-8, 1)

i =

7.1938

n =

33

При использовании этих численных методов задаётся требуемая точность вычислений, а шаг подбирается автоматически (в отличие от функции trapz). По умолчанию точность равна 10-6.

Имя функции может быть задано символьным выражением.

>> [i,n]=quad8('sin(x)', 0, pi, 1e-8, 0)

i =

2.0000

n =

33

Такой же результат получим, если не укажем два необязательных параметра:

>> [i, n]=quad8('sin(x)', 0, pi )

i =

2.0000

n =

33

Тот же интеграл можно вычислить с использованием функции quadl:

>> [i, n]=quadl('sin(x)',0,pi,1e-8,0)

i =

2.0000

n =

48

Для достижения одной и той же точности понадобилось различное количество вычислений. Можно при вызове функции не указывать выходной параметр n. Тогда команда обращения к функции будет:

>> i=quadl('sin(x)', 0, pi, 1e-8, 0)

i =

2.0000

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

Дата: 2019-02-02, просмотров: 271.