Функції в системі Mathematica. Використання вбудованих функції,означення власних функції користувача та їх використання

В Mathematica біля 1000 вбудованих функцій. Але після визначеного числа сеансів роботи з нею користувач помічає, що при проведенні обчислення в конкретній сфері деякі комбінації вбудованих функцій повторюються і непогано було б дану комбінацією замінити однією функцією.

Одними из широко распространенных специальных функций являются ортогональные многочлены (полиномы). Mathematica имеет следующие функции, возвращающие значения ортогональных многочленов:

  • ChebyshevT [n, х] — полином Чебышева п-й степени первого рода;
  • CyebyshevU [n, x] — полином Чебышева п-йстепени второго рода;
  • HermiteH[n, х] — полином Эрмита п-йстепени;
  • JacobiP[n, a, b, х] — полином Якоби п-й степени;
  • 'GegenbauerC [n, m, х] — полином Гегенбауэра;
  • LaguerreL[n, х] — полином Лагерра n-й степени;
  • LaguerreL[n, а, х] — обобщенный полином Лагерра п-й степени;
  • LegendreP [n, х] — полином Лежандра n-й степени;
  • LegendreP [n, m, x] — присоединенный полином Лежандра;
  • LegendreQ [n, z] — функция Лежандра второго рода n-го порядка;
  • LegendreQ [n, m, z] — присоединенная функция Лежандра второго рода.

К другой известной группе специальных функций относятся интегральные показательные и родственные им функции:

  • Coshlntegralfx] — гиперболический интегральный косинус;
  • Coslntegral [х] — интегральный косинус С1(х);
  • Erf [z] — функция ошибок (интеграл вероятности);
  • Erf[z0, zl] — обобщенная функция ошибок erf (zl)-erf (z0);
  • Erf с [z] — дополняющая функция ошибок 1-erf (z);
  • Erfi [z] — мнимое значение функции ошибок erf (iz) /i;
  • ExplntegralE [n, z] — интегральная показательная функция Е(п,z);
  • ExplntegralEi[z] — интегральная показательная функция Ei(z);
  • Loglntegral [z] — интегральный логарифм li(z);
  • Sinhlntegral [x] — интегральный гиперболический синус;
  • Sinlntegral [х] — интегральный синус 81(лг).

 

Власні функції користувача - це тип функцій, які задає користувач і яких ще нема в састемі. Користувачі створюють функції для спрощення запису та заддання даних. Функція користувача задається наступним чином:

Назва_функції[змінні_]:=дії.

Чисті функції – використовуються в момент їх створення. Для оголошення чистих функцій слугує вбудована функція Function: Function[{x,y,…},expr]. Чисту функцію легко перетворити в іменовану, для цього достатньо зробити присвоєння символу, який в подальшому слугувати її іменем.

Існують більш компактна і зручна форма представлення чистої функції, яку іноді називають анонімною функцією. В анонімних функціях замість зв’язаних змінних використовують спеціальні вирази із заголовком Slot,і має вигляд # #1 #2, причому для функції однієї змінної #, а в функціях декількох змінних перший аргумент #1 другий #2… В кінці анонімної функції ставиться &. Приклад Outer[D[#1,#2]&,f,x].

Існує також суперпозиція функції.

Nest, Fold – (Нехай потрібно послідовно n раз застосувати функцію до деякого аргумента, а потім до результату застосованої функції до аргументу).

Nest[cube,a,3] a^27.

Метод Ньютена newtoniter[f_,x0_,n_]:=Nest[(#-f[#]/f'[#])&,N[x0],n] x0 – для чисельного обраховування N[x0].


 

Основи програмування в системі Mathematica: функція Module, поняття про локальні і глобальні змінні, оператори циклу, умовний оператор.

Програмування в Mathematica можна розглядати як функціональне так і на правилах перетворень.

 

Функція Module[]

Аргументи:

Список з локальними змінними модуля

Блок операторів модуля

3. Для повернення значення використовують функцію Return[]

 

Використання модуля In[1] SQSum[n_]:=Module[{s,i},s=0;For[i=0;++i<=n,s+=i^2];Return[s]] Перевірка коректності роботи In[2] SQSum[5] Out[2] 55

Вираз x=a – це присвоєння символу x значення a. Дане присвоєння є глобальним. В локальному випадку x->a яка задається в окремих формулах після застосування до них ReplaceAll, які мають вид /. У вхідному форматі a[x^2]=E^x тоді повсюди замість a[x^2] буде E^x

Для створення процедур із списком локальних змінних {a,b,c,…} і тілом proc використовують функції

Module[{a,b,c,…},proc]

Block[{a,b,…},proc]

Створення процедури зі списком локальних хмінних, для яких задано початкові значення

Module[{a=a0,b=b0,c=c0,…},proc]

Block[{a=a0,b=b0,…},proc]

Тіло процедури може складатись із довільної кількості операцій, відділених знаком ; Процедура повертає значення останньої операції, якщо після неї нестоїть ;

Функції Module та Block відрізняються методом визначення локальних змінних. Module – використовує лексичний контекст, а Block – динамічний тобто:

m=i;

Block[{i=a},m+i]

2a

m=i;

Module[{i=a},m+i]

a+i

Цикли бувають в основному трьох типів: Do, for, while.

Do[expr,{imax}] виконує imax разів вираз expr

Do[expr,{i,imin,imax}] виконує вираз expr для i від imin до imax з кроком 1

Do[expr,{i,imin,imax,di}] виконує вираз expr для i від imin до imax з кроком di

For[start,test,iner,body]- спочатку обчислюється вираз start, потім перевіряється умова test, якщо її значення істине, то виконується body i iner доки test матиме значення false.

While[test,body] – виконується body поки значення test не стане хибним

Abort[] –зупиняє розрахунок

Break[] – виконує вихід із тіла циклу

Contineu[] - задає перехід на наступний крок виконання циклу.

Interrupt[] – перериває розрахунок із можливість відновлення

Return[] – перериває виконання функції і повертає значення NUll

Return[exrp] перериває виконання функції і повертає значення expr

Функції умови

If[condition,exprt,exprf] – повертає результат розрахунку виразу exprt, якщо результат обчислення condition є true, інакше exprf.

Which[test1, value1, test2, value2,…] розраховує в заданому порядку кожну умову, повертаючи ту величину яка задана value.

Swith[expr,form1,value1, form2,value2,…] – розраховує вираз expr послідовно порівнює його результат із кожним значенням form,повертаючи ту величину value2 яка відповідає першому збігу.

Також функції Input[]- ояікує введення з клави print[expr]- виводить на екран