Создание пользовательских функций
Перейдем к созданию рабочей программы на языке Scilab. Мы будем создавать скрипт-файлы с расширением .sce во встроенном редакторе SciNotes, о котором говорилось выше.
Чаще всего пользователю необходимо создавать собственные функции на языке Scilab, которые необходимы для решения текущих задач.
Для создания собственной подпрограммы-функции нужно использовать конструкцию:
function [v1, v2, … , vn] = f_name(w1, w2, … wm)
операторы (тело функции)
endfunction;
Итак, у функции есть:
f_name - имя функции, по которому происходит её вызов,
v1, v2, … ,vn - выходные параметры - то, что функция возвращает,
w1, w2, … ,wm - входные параметры - то, что функция принимает.
В качестве примера напишем подпрограмму, вычисляющую значения функции \( z= \sqrt{ | cos({2y\over x}) | }e^{y+x} \) на промежутках \( 1 \le y \le 2 \), с шагом d=1(листинг 9).
/* Создание пользовательской функции */
function z = myfunc(x, y)
z = sqrt(abs(cos(2*y/x)))*exp(y+x);
endfunction
d = 0.1; // задаём шаг
X = 0:d:1; // задаём промежуток для переменной x
Y = 1:d:2; // задаём промежуток для переменной y
Z = myfunc(X,Y); // вызываем пользовательскую функцию myfunc
disp(Z); // выводим значения функции в командном окне
plot(X, Y);
Мы создали собственную функцию с именем myfunc, по которому и происходит вызов данной функции далее в программе на строке 11. В круглых скобках у имени функции перечислены входные переменные, разделённые запятой. Тело функции состоит из одной строки - присвоения значения функции в выходную локальную переменную z.
Отметим, что в строке 11 скрипт-файла происходит вызов функции с параметрами X,Y, являющимися массивами из 11 точек на заданных промежутках, а результат записывается в переменную Z, которая представляет собой массив, содержащий 11 значений функции myfunc.
Создание собственных функций удобно тем, что поддерживает многократный вызов с различными параметрами. Например, для вычисления значения функции myfunc в точках x=1, y=0,3, достаточно воспользоваться записью Z = myfunc(1, 0.3). При этом, в переменную Z будет записана всего одна точка 3.333482.
Предлагаем читателю сравнить данный результат с представленным на листинге 3 и самостоятельно убедиться в удобстве использования встроенного текстового редактора и пользовательских функций.
Комментарии