Функции и процедури в Mathematica
Дефиниране и правила за работа с потребителски функции и организиране на процедури
Всички функции в Mathematica имат име, аргументи и формула или процедура за изчисляване. Аналогично е дадена възможност на потребителя да си дефинира свои функции, като спазва правилата на системата. Препоръчва се името на потребителска функция да започва с малка латинска буква, за разлика от системните функции. След което в квадратни скоби се задават формалните параметри, завършващи със символа _ (долна черта) и разделени със запетая. Следва знак за присвояване := и описание на операциите над формалните аргументи, които се пишат без долна черта накрая. Използването на функциите по-нататък е както всички функции на Mathematica.
Пример 1. Дефиниране нафункция на един аргумент. Функцията може да извиква себе си, т.е. да бъде свой аргумент (рекурсивна функция).
Пример 2. Ако искаме да проверим каква точно дефиниция е запомнила системата, във всеки момент можем да разберем с командата ? име на функцията или променлива, чийто смисъл искаме да покажем. Всички операции върху функцията са разрешени.
?f
a=.
f[a+1]
Global`f
|
Пример 3. Ето развиване на израза от пример 2, групиране на множители и опростяване.
Пример 4. Графика на функцията от пример 1 в интервала [-2,2]. Същата графика, но само за стойностите на f[x] в интервала [0,10] с използване на опцията PlotRange.
Пример 5. Дефиниция на функция на две променливи. Променливите за формалните параметри могат да се дублират от с използваните по-рано. Извеждаме формулата и построяваме двумерната графика. Независимо, че функцията не е определена при y=0, Mathematica показва графика, очевидно със скок в съответната област.
Global`huhu
|
Пример 6. Можем да дефинираме изрази, присвоени на прости променливи като използваме без ограничение вече дефинирани функции и да извикваме в комбинация със системни функции. Тук в клетка r запомняме формула на една променлива x, като използваме huhu, рисуваме графиката, изчисляваме при конкретна временна стойност x=3 и решаваме уравнението r==0 спрямо x.
Пример 7. Смесено използване на функциите от горните примери. Дефинираме нова функция, изчисляваме стойност при z=3, t=6, развиваме я в ред на Тейлър до третия член.
Пример 8. Трябва да се има впредвид, че променливите, участващи във функции в дясната част на дефиницията са локални в рамките на оператора и нямат стойност извън него. Ето пример, в който променливата i е локална в рамките на оператора за сума от първия ред. При изчисляване на сумата с 1000000 члена са необходими около 20 секунди, при което системата отразява изчислението с двойна голяма затваряща скоба най-отдясно на текущата клетка.
Пример 9. Дефинирането на процедури става чрез оператори, разделени със символа ; (точка и запетая) и всички поставени в кръгли скоби като израз. За да се разбере кои променливи са глобални и локални ги разпечатваме. Типът на променливата (цяло число, дробно, комплексно, ...) автоматично довежда до работа над съответното поле от числа.
Пример 10. Формалното заместване дава възможност за най-различни символни пресмятания с формули.
Clear[f]
r=f[x]+2f[y]
r /. x->2
r /. {f[x]->p,f[y]->6q}
r/. f[t_] -> t^2
Created by Mathematica (December 29, 2007)