Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Функции пользователя




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

Способ 1. Применение оператора deff, который в общем виде можно записать так:

deff(’[имя1,...,имяN] = имя_функции(переменная_1,...,переменная_M)’, ’имя1=выражение1;...;имяN=выражениеN’)

где

имя1,...,имяN - список выходных параметров, то есть переменных, которым будет присвоен конечный результат вычислений,

имя_функции - имя, с которым эта функция будет вызываться,

переменная_1,...,переменная_M - входные параметры.

В программировании аргументы функции называют входными параметрами.

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

Эта переменная называется выходным параметром, а ее значение – возвращаемым значением.

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

Пример. Определите функцию f(x)=sin(cos(x)) и вычислите ее значение в точках {-1,3; 2,1; 3,7}.

-->deff('f=fun(x)','f=sin(cos(x))')

-->[fun(-1.3) fun(2.1) fun(3.7)]

ans = 0.2643200 - 0.4836727 - 0.7500251

Способ 2. Применение конструкции function, синтаксис которой следующий:

function [имя1,...,имяN]=имя_функции(переменная_1,...,переменная_M)
тело функции
endfunction

Здесь аналогично предыдущему имя1,...,имяN – список выходных параметров;

имя_функции – имя с которым эта функция будет вызываться, переменная_1,...,переменная_M – входные параметры.

Определение выходных переменных происходит в теле функции.

Пример. Определите функцию f(x)=sin(cos(x)) и вычислите ее значение в точках {-1,3; 2,1; 3,7}.

-->function f=fun(x)

-->f=sin(cos(x))

-->endfunction

-->[fun(-1.3) fun(2.1) fun(3.7)]

ans = 0.2643200 - 0.4836727 - 0.7500251

Пример. Определите функцию, в которой одновременно задаются f(x,y)=cos(x+y) и g(x,y)=sin(x-y) и вычислите ее значение в точке (-2,5; 1,7).

-->deff('[f,g]=fnc(x,y)','f=cos(x+y);g=sin(x-y)')

-->[f1,g1]=fnc(-2.5,1.7)

g1 = 0.8715758

f1 = 0.6967067

-->function[f,g]=fnc(x,y)

-->f=cos(x+y)

-->g=sin(x-y)

-->endfunction

-->[f2,g2]=fnc(-2.5,1.7)

g2 = 0.8715758

f2 = 0.6967067

Все имена переменных внутри функции, а также имена из списка входных и

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

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

Причем имя файла должно обязательно совпадать с именем функции.

Расширение файлам-функциям обычно присваивают sci или sce.

Обращение к функции осуществляется так же, как и к любой другой встроенной функции системы, т.е. из командной строки. Однако функции, хранящиеся в отдельных файлах, должны быть предварительно загружены в систему, например, при помощи оператора exec(имя_файла) или командой главного меню File – Exec..., что, в общем, одно и то же.

Например, создан файл-функция cub для решения кубического уравнения.

function [ x1, x2, x3 ]= cub (a, b, c, d)

r= b / a;

s= c / a;

t= d / a;

p=(3*s-r^2)/3;

q=2*r^3/27-r*s/3+t;

D=(p/3)^3+(q/2)^2;

u=(-q/2+sqrt(D))^(1/3);

v=(-q/2-sqrt(D))^(1/3);

y1=u+v;

y2=-(u+v)/2+(u-v)/2*%i*sqrt(3);

y3=-(u+v)/2-(u-v)/2*%i*sqrt(3);

x1 =y1-r/3;

x2 =y2-r/3;

x3 =y3-r/3;

endfunction

Для использования функции загружаем ее, т.е. указываем путь к файлу, содержащему функцию

-->exec('e:\Документы\SciLab\Примеры\cub.sce');

-->[x1,x2,x3]=cub(3,-20,-3,4)

x3 = 0.3880206

x2 = - 0.5064407

x1 = 6.7850868





Поделиться с друзьями:


Дата добавления: 2015-01-25; Мы поможем в написании ваших работ!; просмотров: 755 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Ваше время ограничено, не тратьте его, живя чужой жизнью © Стив Джобс
==> читать все изречения...

2276 - | 2222 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.