Pierścień wielomianów

Transkrypt

Pierścień wielomianów
Zajęcia nr 5
WIELOMIANY
Prowadzący: mgr Marcin Spryszyński
www: http://www-users.mat.uni.torun.pl/ ∼spryszyn
e-mail: [email protected]
Istotna informacja
Maple poprzez słowo wielomian rozumie wyrażenie algebraiczne będące sumą jednomianów, w których
„rozważana” niewiadoma jest w potęgach naturalnych, natomiast współczynniki mogą być liczbami rzeczywistymi, zespolonymi lub wyrażeniami algebraicznymi. Zatem wyrażenie h
> h:=3*x∧ 4*y∧ 5+x∧ 2-3*y∧ 3+2;
jest wielomianem względem obu niewiadomych x oraz y. Natomiast wyrażenie s
> s:=3*x∧ (4/3)*y∧ 5+x∧ 2-3*y∧ 3+2;
jest już tylko wielomianem względem niewiadomej y.
Podstawowe komendy
F Uwaga: Jako, że wielomiany są wyrażeniami algebraicznymi, to działania na nich (dodawanie, odejmowanie, mnożenie i potęgowanie) wykonuje się identycznie jak wcześniej. Dzielenie i pierwiastkowanie nie są niestety zawsze wykonalne - nie są działaniami dobrze zdefiniowanymi w pierścieniu
wielomianów.
X degree(f,x) - stopień wielomianu f względem zmiennej x,
X sort(f,x) - porządkuje wielomian f względem malejących potęg zmiennej x,
F Uwaga: Komenda sort ma wiele innych możliwości, o czym można się przekonać sięgając do „helpa”
programu Maple.
F Przykład: Efektem działania komendy
> sort(h,[x,y],ascending)
będzie uporządkowanie wielomianu h względem stopni składowych jednomianów postaci α · xβ · y γ ,
gdzie α jest wyrażeniem algebraicznym, w którym brak jest zmiennych x, y (od najmniejszego do
największego). Natomiast
> sort(h,[x,y],descending)
posortuje wielomian h względem stopni składowych wielomianów od największego do najmniejszego.
Jeśli chcemy wielomian h posortować leksykograficznie względem par (β, γ) to wykonać to możemy
poleceniem
> sort(h,[x,y],plex)
(wpierw sortuje względem potęg zmiennej x, a następnie względem potęg zmiennej y).
X coeff(f,x,k) - współczynnik wielomianu f przy xk (k ∈ N),
X lcoeff(f,x) - „najstarszy” współczynnik wielomianu f względem zmiennej x (tzn. przy największej
potędze zmiennej x przy której „stoi” niezerowy współczynnik),
1
X expand(f) - zwraca wielomian w postaci ogólnej (czytaj: wymnaża wszelkie nawiasy!),
X factor(f) - rozkłada wielomian f na czynniki nierozkładalne nad ciałem liczb wymiernych,
X rem(f,g,x,’q’) - zwraca resztę z dzielenia wielomianu f przez wielomian g względem zmiennej x. Parametrem opcjonalnym (tzn. nieobowiązkowym) jest q pod którym kryje się iloraz tych
wielomianów przez siebie,
X quo(f,g,x,’q’) - zwraca iloraz z dzielenia wielomianu f przez wielomian g względem zmiennej
x. Parametrem opcjonalnym (tzn. nieobowiązkowym) jest q pod którym kryje się reszta z dzielenia
tych wielomianów przez siebie,
X gcd(f,g,’a’,’b’) - zwraca największy wspólny dzielnik wielomianów f oraz g; parametrami opcjonalnymi są
g
f
def.
def.
,
b =
,
a =
gcd(f, g)
gcd(f, g)
X lcm(f,g) - zwraca najmniejszą wspólną wielokrotność wielomianów f oraz g,
X divide(f,g,’a’) - funkcja zwraca true, gdy wielomian f jest podzielny przez wielomian g, false,
gdy taka relacja nie ma miejsca, FAIL, gdy nie może tego ocenić; w przypadku gdy wynikiem jest
true parametr opcjonalny a przyjmuje jako wartość iloraz fg ,
Przykład zastosowania wielomianów1
F Zadanie: Znaleźć ilość liczb pierwszych na przedziale [12, 1000].
F Rozwiązanie: Efektem działania poniższych komend
> h1:=sum(isprime(i),i=2..1000);
h1:=826false+163true
> lcoeff(h1,true);
163
jest szukana liczba, gdyż w wyrażeniu h1 algebraicznie zsumowane są (jako zwykłe niewiadome)
wartości logiczne. Potraktowanie takiego wyrażenia jako wielomianu zmiennej true i odczytanie
„najstarszego” współczynnika daje ilość liczb pierwszych na zadanym przedziale.
1
Zaczerpnięty ze skryptu Pani dr Justyny Kossakowskiej.
2