Пусть в векторе необходимо вычислить минимальное значение, номер этого элемента и среднее значение в векторе X, размер и значение элементов которого, вводятся с клавиатуры.
Для решения этой задачи создадим следующие файлы:
Файл-функция нахождения минимума, номера и среднего любого массива
function [minx,posx,sred]=myfun_2(X)
[minx,posx]=min(X);
sred=mean(X);
End
Файл- функция ввода элементов вектора
function X=inmas(n)
disp('введите массив');
for i=1:n
X(i)=input(sprintf('X(%d)=%f',i));
end
End
Такую функцию можно один раз написать и использовать сколько угодно раз для ввода любого массива.
Скрипт-файл, который задает количество элементов в векторе и вызывает два файла- функции для ввода значений вектора и вычисления минимума, номера и среднего.
n=input('введите n=')
X=inmas(n);
[min_el, pos_el, sr_zn]=myfun_2(X);
disp(sprintf('min=%.1f; pos=%.1f; sr=%.1f',min_el,pos_el,sr_zn))
На экране:
введите n=6
n =
6
введите массив
X(1)=4
X(2)=3
X(3)=9
X(4)=23
X(5)=8
X(6)=1
min=1.0; pos=6.0; sr=8.0
Использование файлов-функций для задач вычислительной математики
Описание функций широко используются в ML при решении следующих задач:
|
|
1) построение графика функций;
2) численное интегрирование;
3) нахождение корней трансцендентного уравнения;
4) поиск экстремумов функции;
Рассмотрим последовательно каждую из задач.
Построение графика функций
Кроме функции plot(), ML предоставляет пользователю возможность использовать еще две функции ezplot() и fplot(). Функцию ezplot() мы рассмотрим дальше.
Можно построить график любой функции с использованием функции
fplot (< функция>, < интервал построения>). Она имеет 2 входных параметра:
Интервал это вектор из двух значений, задающих границы изменения аргумента, записывается в квадратных скобках. Функция может быть задана либо как символьная константа, либо как имя m-файла, в котором записана функция, либо как анонимная функция. Рассмотрим каждый случай.
1. функция – символьная константа, задающая формулу по которой вычисляется функция. Она заключается в апострофы. Например,
для функции sin(x)^2 на интервале от 0 до 2p запишем:
>> fplot ('sin(x).^2', [0 2*pi]) % - функция задана символьным выражением.
2. функция это имя m - файла- функции, в котором записана формула. Имя файла должно быть заключено в апострофы
Для нашей функции:
function f= f_sin (x)
f=sin(x).^2;
end
Файл должен быть обязательно сохранен с именем f_sin
>> fplot ('f_sin', [ 0 2*pi])
3. функция определена как анонимная ( только начиная с версии 7.0 ) и записана следующим выражением:
f = @ (x) (sin(x).^2);
В этом случае в функцию fplot передается указатель на функцию, которая должна быть отображена на графике.
>> f = @ (X) (sin(X).^2)) % функция задана как анонимная
>> fplot ( f, [0 2*pi])
При использовании этой функции график получается без заголовка, без подписей осей, а масштабируется автоматически.
|
|