260 likes | 527 Views
Компютърна алгебра. доц. Стефка Буюклиева. ал-габр. Абу Джафар Мохамед ибн Муса ал-Хорезми – IX век, Багдад Ал-габр : символни пресмятания и преобразования : Алгебра алгоритъм
E N D
Компютърна алгебра доц. Стефка Буюклиева ВТУ, 2008
ал-габр Абу Джафар Мохамед ибн Муса ал-Хорезми – IX век, Багдад Ал-габр: символни пресмятания и преобразования: Алгебра алгоритъм Основна задача на алгебрата до XIX век: алгоритмични манипулации със символни алгебрични изрази, основно с цел решаването на алгебрични уравнения ВТУ, 2008
Абстрактна алгебра XX век: Формални изследвания на алгебрични структури, които следват от дадени аксиоми Алгебрична структура – непразно множество със зададени алгебрични операции Примери: • линейно пространство • поле (числово или не) • група • пръстен ВТУ, 2008
Компютърна алгебра • Връщане към алгоритмичните аспекти на алгебрата • Връзка между алгоритмичната и абстрактната алгебра • Алгебра + дискретна математика • Алгоритмични методи в математическата логика • Приложения в математиката, физиката, инженерните науки ВТУ, 2008
Какво е компютърна алгебра? Дисциплина, посветена на методи за решаване на математически формулирани задачи чрез символни алгоритми, както и софтуерната и хардуерна реализация на тези алгоритми.Тя се базира на точни крайни представяния на крайните и безкрайни математически обекти и структури, и прави символни и абстрактни манипулации с компютър. ВТУ, 2008
Какво е компютърна алгебра? Математиеските знания се използват при дизайна на съответните алгоритми, а също и при тяхната верификация и анализа на тяхната сложност. Затова компютърната алгебра може да бъде много ефективно средство за отговор на въпроси от различни области на компютърните науки, математиката, природните и инженерните науки, при условие, че може да се направи техен математически модел. ВТУ, 2008
Какво е компютърна алгебра? Компютърната алгебра дава възможност на компютрите да манипулират с математически изрази, зададени символно. Работи се с точно ( а не приближено) представяне на числата. ВТУ, 2008
Числен анализ В числения анализ реалните числа се апроксимират с числа с плаваща точка, т.к. Устройството на компютъра е ориентирано за работа с числа с не повече от 10 десетични цифри. Това води до неточни изчисления. Обикновено дължината на компютърната дума е 16, 32 или 64 бита, така че най-голямото цяло число, с което може да се побере в комп. дума, е 216-1, 232-1 или 264-1 ВТУ, 2008
Представяне на данните Списък над произволно множество S наричаме крайна редица a=(a1,a2,…,an), n0, в която всеки елемент ai е или елемент на множеството S, или списък над S. n=0 a=0 - празен списък length(a)=n, first(a)=a1,last(a)=an, ВТУ, 2008
Списъчно представяне на целите числа • Цели числа с кратна точност (дълги цели числа) • Цели числа с единична точност (къси цели числа) Дълги цели числа: i=(i0,i1,i2,…,in), n1, където i=(|in|n + in-1n-1 + + i1 + i0 ), 0ik<, тоест i0,i1,…,inса цифрите на числото i при представянето му в бройна система с основа = 2m, m – дължина на компютърната дума (обикновено m=16, 32, 64) ВТУ, 2008
Списъчно представяне на целите числа Пример: 1) =103, i=+23456789 i 2) =28, i = +23456789 = 10110010111101100000101012 i I = 1.2563 + 101.2562 + 236.256 + 21 789 456 +23 00010101 11101100 01100101 +1 ВТУ, 2008
Алгоритми и тяхната сложност • Алгоритъм – метод за решаване на даден клас задачи • Сложност – ресурсите, които алгоритъмът използва за решаването на задача от този клас • Измерване на сложността – време за изчисленията или използвана памет • Времева сложност – времето за изчисления се изразява като функция на количеството на данните (измерени по определен начин) на входа на алгоритъма ВТУ, 2008
Алгоритми и тяхната сложност -дължина на цялото число i ще наричаме броя на цифрите му в бройна система с основа - L (i) L1000 (23456789)=3 L10 (23456789)=8 L256 (23456789)=4 L2 (23456789)=25 ВТУ, 2008
Алгоритми и тяхната сложност Нека A е алгоритъм, а S – множество от допустини стойности за входа на А. Цялото число tA(n), nS, дава броя на базисните операции, използвани от А при стойност на входа n и се нарича функция на времето за изчисление, асоциирано с А и определено от S. Към базисните операции се отнасят събирането и умножението на числа с единична точност, присвоявания, безусловен преход и извикване на подпрограми. ВТУ, 2008
Алгоритми и тяхната сложност Нека f и g са реални функции, определени върху множеството S. Ще казваме, че f се доминира от g, или f=O(g),ако съществува положително реално число и елемент x0S такива, че |f(x)|c|g(x)| за всяко xS,x>x0 ВТУ, 2008
Алгоритми и тяхната сложност Теорема: f(x)= anxn + an-1xn-1 + + a1x + a0 • f(x)=O(xn) Доказателство:Нека x1. Тогава |f(x)| |an|xn + |an-1|xn-1 + + |a1|x + |a0| (|an| + |an-1|(1/x) + + |a1|(1/xn-1) + |a0|(1/xn)) xn (|an| + |an-1| + + |a1| + |a0|) xn = c xn c ВТУ, 2008
Алгоритми и тяхната сложност • Ако tA(n)=O(nk),то А се нарича алгоритъм с полиномна (времева) сложност (полиномен алгоритъм) • Алгоритъм с експоненциална сложност (експоненциален алгоритъм) - tA(n)=O(2n) O(log n)< O(n) < O(n log n)< O(n2)< O(2n) ВТУ, 2008
Класически алгоритми от аритметиката Нека aи bса цели числа • ISUM – алгоритъм, пресмятащ сумата a+b tISUM(a,b)=O{max(L(a),L(b))} • IMULT – алгоритъм, пресмятащ произведението ab tIMULT(a,b)=O(L(a)L(b)) ВТУ, 2008
Системи за компютърна алгебра • Системи с общо предназначение: AXIOM, Magma, Mathematica, Maple, • Системи със специално предназначение: ВТУ, 2008
Mathematica Създадена от Stephen Wolfram и по-нататък разработена от колектив от математици и програмисти. Продава се от Wolfram Research www.wolfram.com ВТУ, 2008
www.maplesoft.com ВТУ, 2008
MathCad ВТУ, 2008
MuPAD • Open Computer Algebra System до 2005 • University of Paderborn, Germany • http://www.mupad.de ВТУ, 2008