
- •1.Формальнi мови
- •2.Регулярні мови і регулярні вирази.
- •3.Формальні породжувальні граматики.Типи граматик.
- •4.Автомати Мілі та автомати Мура.Типи автоматів. Способи задання автоматів.
- •6. Недетерміновані скінченні автомати без виходу.Алгоритми синтезу нса.
- •7. Скінченні автомати та регулярні мови. Зв’язок прямолінійних граматик з скінченними автоматами. Існування нерегулярних мов. Лема про роздування.
- •8. Застосування регулярних виразів для конкретного пошуку тексту. Програма grep.Опис, опції, приклад.
- •Розширені регулярні вирази. Метасимволи початку, кінця рядка та довільного символу. Вибір, пошук рядків, які містять декілька регулярних виразів.
- •Квантифікатори (повторювачі). Визначення інтервалів та кількості екземплярів.
- •Символьні класи. Інвертовані символьні класи. Стандартні символьні класи. Приклади використання.
- •12. Групи та зворотні посилання. Приклади використання.
- •Застосування регулярних виразів для обробки тексту. Потоковий текстовий редактор sed. Опис опцій, адресація приклади.
- •Функції редактора sed. Функція контекстної заміни тексту.
- •Функція видалення d, друк p та вставки нових рядків a,c,I. Стирання: d
- •Інверсне обмеження: !
- •Співвідношення між d, p та !
- •Функція транслітерації та шифрування тексту. Приклади використання функції обміну інформацією між робочим та допоміжним буферами.
- •Цикл выполнения
- •Регулярні вирази в програмних продуктах LibreOffice та TotalCommander.
- •Приклад 1
- •Арифметичні та алгебраїчні обчислення в системі Mathematica: арифметичні операції, основні елементарні функції, перетворення алгебраїчних виразів, правила заміни.
- •Операції математичного аналізу в системі Mathematica: знаходження похідних, інтегралів, сум, добутків розв’язування рівнянь.
- •Функції в системі Mathematica. Використання вбудованих функції,означення власних функції користувача та їх використання.
Операції математичного аналізу в системі Mathematica: знаходження похідних, інтегралів, сум, добутків розв’язування рівнянь.
Функції обчислення сум Sum[f,{I,imax}] –обчислює суму значень f при зміні індексу і від значення 1 доimax з кроком 1. Таком можна записати Sum[f,{I,imin,imax,di}] обчислює суму значень f при зміні керуючої змінної дійсного типу від мінімального значення imin до максимального imax з кроком di.Приклад Sum[i^2,{I,1,10,0.5}].
Product[f,{I,imax}] – добуток функції f від 1 до imax за змінною i.
D[f,x] – повертає частинну похідну функції за змінною х
D[f,{x,n}] – повертає частинну похідну за змінною х порядку n
D[f,x1,x2,…]- повертає змішану похідну.
Dt[f,x] узагальнену похідну функції за змінною х.
Dt[f] повертає повний диференціал функції.
Derivative[n1,n2,n3,…][f]- основна форма представлення функції, отриманої в результаті диференціювання f n1 раз за першим аргументам,n2 раз за другим аргументом.
Integrate[f,x]- повертає первісну (невизначений інтеграл) функції f за змінною х.
Integrate[f,{x,xmin,xmax}] – повертає значення визначеного інтеграла з межами xmin xmax.
Integrate[f,{x,xmin,xmax},{y,ymin,ymax},…] –повертає значення кратного інтеграла з визначинеми межами з відповідними змінними. Для задання невизначеної границі використовують Infinity.
Чисельне інтегрування NIntegrate[f,{x,xmin,xmax}]-повертає чисельне наближення інтегрування від функції f за змінною х на інтервалі xmin,xmax
Функція Solve – розвязок систем нелінійних рівнянь:
Solve[f,{x,y}]
Можуть бути такі опції:
Mode – задає характер розв’язку рівнянь (Generic, Modular, Rational)
Method – встановлює алгоритм, який використовується для обчислення результату
MakeRules чи повинен результат бути у вигляді AlgebraicRulesData.
InverseFunction
Sort - встановлює чи потрібне сортування результатів.
Solutions – чи потрібна перевірка отриманих розв’язків
NSolve-функція чисельного розв’язку.
Для визначення коренів рівнянь Roots[f,{var}]. При затрудненні в розв’язку рівнянь за допомогою Roots можна використовувати наступні опції.
Cubics – вказує чи потрібно шукати явні розв’язки для незвідних кубічних рівнянь
EquatedTo визначає вираз для заміни змінної в розэязку
Modulus – задає проміжкові факторизацію полінома.
Multiplicity – встановлює кратність для кожного із коренів в кінцевому результаті.
Eliminate[eqns,vars]- виключення змінних із системи рівнянь
FindRoot[lhs==rhs,{x.x0}]- чисельний розв’язок рівняння.
NRoots[lhs==rhs,var] - повертає список чисельно наближених коренів полінома.
Функції в системі 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[]
Аргументи:
1. Список з локальними змінними модуля
2. Блок операторів модуля
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]- виводить на екран