TEÈAJ IZ MATHEMATICE

4. DEL

Bor Plestenjak

Teorija števil

Celoštevilsko deljenje

Za celoštevilsko deljenje imamo na voljo operaciji Mod in Quotient. Mod[n,k] vrne ostanek pri celoštevilskem deljenju n s k, Quotient[n,k] pa vrne celi del pri celoštevilskem deljenju n s k,

Mod[10,3]

Quotient[10,3]

Najveènji skupni delitelj in najmanjši skupni veèkratnik

Najmanjši skupni veèkratnik dveh ali veè števil nam vrne funkcija GCD, funkcija LCM pa vrne najveèji skupni delitelj dveh ali veè števil.

LCM[3,4,6]

GCD[24,30,15]

Praštevila

Za praštevila imamo na voljo kar nekaj funkcij. PrimeQ[n] vrne True, èe je n praštevilo, Prime[n] vrne n-to praštevilo, PrimePi[n] pa vrne število praštevil, ki so manjša ali enaka n.

PrimeQ[17]

Table[Prime[i],{i,1,10}]

PrimePi[30]

Razcep na prafaktorje in delitelji

Funkcija FactorInteger[n] razcepi število n na prafaktorje. Vrne seznam parov, kjer je prvi element v paru praštevilo, drugi pa njegova potenca v razcepu. Funkcija Divisors[n] vrne seznam vseh deliteljev števila n, funkcija DivisorSigma[k,n] pa vsoto k-tih potenc deliteljev števila n.

FactorInteger[126]

Divisors[30]

DivisorSigma[1,30]

Racionalne funkcije in polinomi

Mathematica je zaradi monosti simbolnega raèunanja idealno orodje za delo z racionalnimi funkcijami. Z vgrajenimi ukazi jih lahko faktoriziramo, delimo, rišemo, mnoimo, itd.

Za zaèetek definiramo racionalno funkcijo r, polinom ene spremenljivke p in polinom dveh spremenljivk s..

r=(x^2-1)(2+x)/((1+x) (x-3)^2)

p=(x-1)^2(x-2)(x-3)

s=(3+2x)^2 (x+2y)^2

Pretvarjanje izrazov

Racionalne funkcije lahko predstavimo na veè naèinov. Pri tem bodo predstavljeni razlièni ukazi.

Expand[izr]

Expand razvije v izrazu izr po potencah samo steveè izraza in izraz zapiše kot vsoto racionalnih funkcij, kjer v vsakem ulomku v števcu nastopa le en èlen. V primeru polinoma dobimo tako polinom izraen z vsoto potenc.

r1=Expand[r]

p1=Expand[p]

ExpandNumerator[izr]

ExpandNumerator razvije vse števce izraza izr.

ExpandNumerator[r]

ExpandDenominator[izr]

ExpandDenominator razvije vse imenovalce izraza izr.

ExpandDenominator[r]

ExpandAll[izr]

ExpandAll razvije po potencah tako števce kot tudi imenovalce izraza izr. Pri tem izraz zapiše kot vsoto racionalnih ulomkov.

r2=ExpandAll[r]

Together[izr]

Together spravi izraz izr na skupni imenovalec in okrajša ulomek.

r3=Together[r2]

Cancel[izr]

Cancel pokrajša ulomke izraza izr.

Cancel[r]

Apart[izr]

Apart poskusi izraz izr zapisati kot vsoto racionalnih funkcij  z imenovalci oblike (x-a)^k.

r4=Apart[r3]

Factor[izr]

Factor poskusi faktorizirati izraz izr. Faktorizira tako števce kot tudi imenovalce.

Factor[r2]

Factor[p1]

Simplify[izr]

Simplify poskuša izraz zapisati èim preprosteje.

Simplify[r]

Simplify[p]

Polinomi

PolynomialQ[izr,spr]

PolynomialQ] preveri, èe je izraz izr polinom spremenljivke spr. Pri tem so lahko koeficienti funkcije drugih spremenljivk.

PolynomialQ[p,x]

PolynomialQ[Sin[x],x]

Stopnja in koeficienti polinoma

Exponent[pol,x] vrne stopnjo polinoma pol spremenljivke x. Coefficient[pol,x,n] vrne koeficient polinoma pol , ki nastopa pri x^n, CoefficientList[pol,x] pa vrne seznam vseh koeficientov polinoma pol spremenljivke x.

Exponent[p,x]

Coefficient[p,x,2]

CoefficientList[p,x]

Deljenje polinomov

PolynomialQuotient[p1,p2,x] vrne polinom, ki ga dobimo pri polinomskem deljenju polinoma p1 s polinomom p2 (oba spremenljivke x), PolynomialRemainder[p1,p2,x] pa ostanek pri tem deljenju. PolynomialDivision[p1,p2,x] vrne seznam dveh polinomov. Prvi je rezultat PolynomialQuotient[p1,p2,x], drugi pa rezultat PolynjomialRemainder[p1,p2,x].

PolynomialQuotient[p,x^2+1,x]

PolynomialRemainder[p,x^2+1,x]

PolynomialDivision[p,x^2+1,x]

Najveènji skupni delitelj in najmanjši skupni veèkratnik

Podobno kot pri celih številih imamo tu funkciji PolynomialGCD in PolynomialLCM.

PolynomialGCD[p,x^2-1]

PolynomialLCM[p,x^2+1]

Razcep polinoma

FactorList[pol] podobno kot FactorInteger vrne seznam parov. Prvi element v paru je nerazcep polinom nad realnimi števili (linearen ali kvadratièen), drugi pa njegova potenca v razcepu, kar lahko vidimo tudi s primerjavo z ukazom Factor, ki razcepi polinom.

FactorList[p]

Factor[p]

Collect

V primeru polinomov veè spremenljivk pride v poštev funkcija Collect[pol,x], ki polinom pol razvije po potencah spremenljivke x.

s1=Expand[s]

Collect[s1,x]

Collect[s1,y]

Analiza

Vgrajene konstante

Mathematica poleg drugih vsebuje tudi naslednje pomembne konstante. Tu je  E osnova za naravni logaritem, GoldenRatio je razmerje zlatega reza, Degree je razmerje med radiani in stopinjami (Pi/180), I pa je koren iz -1. Mathematica lahko raèuna tudi z neskonènimi števili, tu imamo na voljo kompleksno neskonènost ComplexInfinity in realno Infinity.

N[Pi]

N[E]

N[GoldenRatio]

N[Degree]

I^2

(1/0)^2

Abs[ComplexInfinity]

-5 Infinity

Elementarne funkcije

Algebraiène funkcije

Za osnovne operacije raèunske operacije imamo naslednje simbole. Za seštevanje +, za mnoenje * ali presledek, za odštevanje -, za deljenje / in za potenciranje ^. Funkcija Sqrt[x] vrne kvadratni koren števila x.

{2+3,2 3,2-3,2/3,2^3,Sqrt[4]}

Triginometriène funkcije

Sin[x] vrne sinus, Cos[x] kosinus, Tan[x] tangens in Cot[x] kotangens kota x. V Mathematici se koti raèunajo v radianih. Sec[x] vrne sekans (1/Cos[x]), Csc[x] pa kosekans (1/Cos[x]) kota x. Inverzne kotne funkcije so ArcSin[x], ArcCos[x], ArcTan[x] in ArcCot[x].

{Sin[Pi/3],Cos[Pi/3],Tan[Pi/3],Cot[Pi/3]}

{Sec[Pi/3],Csc[Pi/3]}

{ArcSin[1/2],ArcCos[1/2],ArcTan[Sqrt[3]],ArcCot[Sqrt[3]]}

Eksponentna in logaritemska funkcija

Exp[x] vrne e^x, enak rezultat pa dobimo tudi z E^x.

{Exp[5],E^5}

Log[x] vrne naravni logaritem števila x, Log[b,x] pa logaritem x z bazo b.

{Log[E^5],Log[10],Log[2,16]}

Poenostavljanje in pretvarjanje izrazov

PowerExpand

Mathematica ne krajša izrazov kot so Sqrt[x^2] ali (x^(1/3))^3, saj moramo tu upoštevati razliène veje. Z ukazom PowerExpand[izr] pa Mathematica vseeno krajša take izraze (v bistvu tu izraze oblike (a b)^x spremeni v a^x b^x in izraze oblike (a^x)^y v a^(x y)).

v=Sqrt[x^2]+(x^3)^(1/3)

PowerExpand[v]

Triginometrièni izrazi

Funkciji Expand in Factor ne znata razviti in razcepiti izraze, ki vsebujejo triginometriène funkcije. Lahko pa to doseemo z uporabo opcije Trig->True.

t1=Expand[Sin[x]^2+Sin[2x]^2,Trig->True]

Factor[t1,Trig->True]

Kompleksna števila

ComplexExpand[izr,spr] razvije izraz izr po realni in imaginarni komponenti. Pri tem so spremenljivke navedene v seznamu spr kompleksne, ostale pa realne.

ComplexExpand[z x,x]

ComplexExpand[z1 z2,{z1,z2}]

Infinitezimalni raèun

Z Mathematico lahko raèunamo tudi limite in odvode funkcij.

Limite

Limit[f,x->a] izraèuna limito funkcije f, ko gre vrednost spremenljivke x proti a. Pri tem lahko pošljemo spremenljivko tudi v neskonènost. Z uporabo opcije Direction lahko raèunamo leve in desne limite. Direction->1 pomeni levo, Direction->-1 pa levo limito.

Limit[Sin[x]/x,x->0]

Limit[(1+1/x)^(3x),x->Infinity]

Limit[1/x,x->0,Direction->1]

Limit[1/x,x->0,Direction->-1]

Odvodi

Odvode funkcij raèunamo s funkcijo D. D[izr,x] vrne prvi odvod izraza izr po spremenljivki x. Višje odvode lahko raèunamo z D[izr,{x,n}], ki vrne n-ti odvod izraza izr po spremenljivki x.Raèunamo lahko tudi mešane odvode. D[izr,x1,x2,...,xn] vrne parcialni odvod izraza izr po x1,x2,...,xn.

D[Sin[x],x]

D[Sin[Cos[x^2]],x]

D[f[x],{x,3}]

D[x^3 y^2,x,y]

V primeru e vgrajenih ali na novo definiranih funkcij lahko pridemo do odvodov tudi na navaden naèin z ustreznim številom narekovajev.

f[x_]:=x^3+Sin[x]

f'[x]

f''[x]

Diferenciali

Totalni diferencial izraza izr dobimo z Dt[izr]. Dt[izr,x] vrne totalni diferencial izraza izr, pri èemer so vse spremenljivke v izrazu implicitno odvisne od x.

Dt[Sin[x^2]]

Dt[Sin[x] Cos[y]]

Dt[Sin[x] Cos[y],x]

Reševanje enaèb

Glavni ukaz za eksaktno reševanje enaèb je Solve. Solve[en] poskusi rešiti enaèbo en. Rezultat vrne v obliki seznama transformacijskih pravil. V primeru, da rešitev ne obstaja, vrne prazen seznam, èe pa je rešitev poljubna, vrne seznam s praznim seznamom.

Solve[x^2==1]

Solve[x-1==x]

Solve[x==x]

Solve ne uspe poiskati vseh rešitev, še posebno èe enaèbe niso racionalne.

Solve[x^5-4x+1==0]

Solve[Sin[x]==1/2,x]

Solve[x==Tan[x]]

V takem primeru lahko namesto s Solve poskusimo z NSolve, ki poskusi vrniti numeriène rešitve. Tako NSolve vedno vrne nièle racionalnih funkcij.

NSolve[x^5-4x+1==0]

S Solve lahko rešujemo tudi sisteme enaèb. V tem primeru kot argument podamo seznam enaèb. V primeru, da enaèba ali sistem enaèb vsebuje veè spremenljivk, kot je enaèb, kot drugi argument podamo še spremenljivko ali seznam spremenljivk, ki jih išèemo.

Solve[{x^2-y^2==1,x^2+y^2==4}]

Solve[{x+y==2,x-y==3}]

Solve[a x+b==c,x]