Građevinski fakultet Sveučilišta u Zagrebu
Osnove inženjerske informatike II (Mathematica)
3. predavanje

Algebarsko računanje, definiranje funkcija i njihovi grafovi

Algebarsko računanje

Važno svojstvo Mathematice je to da simbolički računa jednako dobro kao i numerički.
Mi smo već u  prethodnim primjerima koristili simboličko računanje (većina primjera u kojima su se pojavljivali simboli a, b, c, x, z, y....)
U Mathematicu je ugrađen velik broj standardnih pravila za transformiranje algebarskih izraza i napišemo li neki algebarski izraz Mathematica će ga automatski "srediti".

In[1]:=

03pred-novo_1.gif

Out[1]=

03pred-novo_2.gif

In[2]:=

03pred-novo_3.gif

Out[2]=

03pred-novo_4.gif

Ponekad nam čak neće niti odgovarati činjenica što Mathematica ima ugrađene "zaštite" protiv pogrešnog računa.

In[3]:=

03pred-novo_5.gif

Out[3]=

03pred-novo_6.gif

Sljedeći primjer prikazuje kako Mathematica "sređuje" izraz  03pred-novo_7.gif.

In[4]:=

03pred-novo_8.gif

Out[4]=

03pred-novo_9.gif

Funkcije Factor, Expand i Simplify

In[5]:=

03pred-novo_10.gif

Out[5]=

03pred-novo_11.gif

Želimo li da Mathematica ispiše gornji polinom u razvijenom obliku (izvrši množenja i potenciranja te rezultat napiše u obliku sume) upotrebljavamo funkciju Expand.

In[6]:=

03pred-novo_12.gif

Out[6]=

03pred-novo_13.gif

Funkcija Factor prikazuje zadani polinom rastavljen na faktore.

In[7]:=

03pred-novo_14.gif

Out[7]=

03pred-novo_15.gif

Koji je oblik algebarskog izraza jednostavniji? Odgovor na to pitanje nije jednoznačan.

Ponekad je jednostavniji razvijeni oblik,

In[8]:=

03pred-novo_16.gif

Out[8]=

03pred-novo_17.gif

In[9]:=

03pred-novo_18.gif

Out[9]=

03pred-novo_19.gif

a ponekad je jednostavniji faktorizirani.

In[10]:=

03pred-novo_20.gif

Out[10]=

03pred-novo_21.gif

Mathematica ima ugrađenu funkciju Simplify, koja često može dobro poslužiti: Mathematica će pregledati moguće oblike i prikazati onaj koji sadrži najmanje dijelova.

In[11]:=

03pred-novo_22.gif

Out[11]=

03pred-novo_23.gif

In[12]:=

03pred-novo_24.gif

Out[12]=

03pred-novo_25.gif

In[13]:=

03pred-novo_26.gif

Out[13]=

03pred-novo_27.gif

In[14]:=

03pred-novo_28.gif

Out[14]=

03pred-novo_29.gif

Naredba Factor dozvoljava faktorizaciju samo s cjelobrojnim koeficijentima.
Stoga, iako je poznato da potpuna faktorizacija polinoma s koeficijentima iz skupa realnih brojeva sadrži samo polinome 1. i 2. stupnja, Mathematica nam često neće faktorizirati  onako kako bismo željeli. Na primjer:

In[15]:=

03pred-novo_30.gif

Out[15]=

03pred-novo_31.gif

ili

In[16]:=

03pred-novo_32.gif

Out[16]=

03pred-novo_33.gif

No, ako Mathematicu znamo uputiti gotovo uvijek možemo doći do odgovarajućeg rezultata. Naredbama Factor, Expand i Simplify možemo dodavati neke opcije te ih usmjeravati u nama interesantnom smjeru. Na primjer, opcijom Extension možemo Mathematici dodati popis realnih brojeva za koje želimo da ih uključi pri faktorizaciji. Za gornje primjere to može izgeedati ovako:

In[17]:=

03pred-novo_34.gif

Out[17]=

03pred-novo_35.gif

In[18]:=

03pred-novo_36.gif

Out[18]=

03pred-novo_37.gif

Ili, primjer koji smo već spomenuli:

In[19]:=

03pred-novo_38.gif

Out[19]=

03pred-novo_39.gif

u kojem nam funkcija Simplify, bez dodatnih opcija, neće pomoći.

In[20]:=

03pred-novo_40.gif

Out[20]=

03pred-novo_41.gif

Međutim, funkcija Simplify dozvoljava i određivanje matematičkih uvjeta ili pretpostavki. U tom je slučaju sintaksa sljedeća:
                ● Simplify[algebarski izraz,uvjet]

In[21]:=

03pred-novo_42.gif

Out[21]=

03pred-novo_43.gif

In[22]:=

03pred-novo_44.gif

Out[22]=

03pred-novo_45.gif

Opcijom Extension i unosom pretpostavke uz narebu Simplify, naveli smo samo dvije od velikog broja dodatnih mogućnosti koje nam Mathematica dozvoljava uz funkcije Factor, Expand i Simplify. Za njihovu obradu, makar i na nivou pobrojavanje, nemamo u okviru našeg kolegija dovoljno prostora. No, ako se nađete u situaciji da vam se Mathematica čini baš "glupom" za zadatak u kojem očekujete njezinu pomoć, pregledajte malo Mathematica Help i najvjerojatnije ćete pronaći način kako da usmjerite rad programa. Ako vam to ne uspije, pregledajte  pažljivije, udubite se u primjere....

Pridruživanje vrijednosti simbolima -- znak /.

Želimo li izvršiti supstituciju u nekom matematičkom izrazu, tj. želimo simbole zamijeniti brojevima ili nekim drugim matematičkim izrazima, upotrebljavamo znak /. (sleš-točka, bez razmaka).

In[23]:=

03pred-novo_46.gif

Out[23]=

03pred-novo_47.gif

In[24]:=

03pred-novo_48.gif

Out[24]=

03pred-novo_49.gif

In[25]:=

03pred-novo_50.gif

Out[25]=

03pred-novo_51.gif

In[26]:=

03pred-novo_52.gif

Out[26]=

03pred-novo_53.gif

Funkcija Manipulate

Manipulate je nova funkcija u Mathematici 6.

In[27]:=

03pred-novo_54.gif

03pred-novo_55.gif

In[28]:=

03pred-novo_56.gif

Out[28]=

03pred-novo_57.gif

Definiranje funkcija

U Mathematicu je ugrađen velik broj funkcija, no korisniku često trebaju funkcije kojih nema u programu Mathematica. Stoga je potrebno poznavati postupak definiranja funkcija.
Na primjer, ako vam treba funkcija f(x)= cos(2·x+1) + 03pred-novo_58.gif potrebno ju je definirati, jer ona u programu Mathematica nije definirana.
Pretpostavimo da ćemo nezavisnu varijablu zvati x a funkciju f.
Tada je opći oblik formule za zadavanje funkcije f jednak
                       ● f[x_] := formula za funkciju
Na primjer, gornju funkciju  zadat ćemo izrazom:

In[29]:=

03pred-novo_59.gif

Sad možemo računati vrijednost funkcije za bilo koji element iz njezine domene.

In[30]:=

03pred-novo_60.gif

Out[30]=

03pred-novo_61.gif

In[31]:=

03pred-novo_62.gif

Out[31]=

03pred-novo_63.gif

Ili za neki matematički izraz.

In[32]:=

03pred-novo_64.gif

Out[32]=

03pred-novo_65.gif

Možemo tražiti  da Mathematica usporedi vrijednosti funkcije za pojedine brojeve.

In[33]:=

03pred-novo_66.gif

Out[33]=

03pred-novo_67.gif

In[34]:=

03pred-novo_68.gif

Out[34]=

03pred-novo_69.gif

Važno:

    f[x_] := formula za funkciju
• Nezavisna varijalba pisana lijevo od  :=  mora završiti znakom  _ (underline).
• Lijeva i desna strana definicije funkcije razdvojene su znakovima :=  a ne samo  znakom =.
• Imena funkcija i varijabli su proizvoljna, jedino treba paziti da ne počinju velikim slovom budući da je takav oblik naziva razerviran za funkcije u Mathematici .
• Ime varijable  ili funkcije NE SMIJE početi brojem niti smije sadržavati znakove aritmetičkih operacija +, - *, /, ^.

Graf funkcije jedne varijable

Mathematica naredba koja omogućuju crtanje grafa funkcije f : I → R, I⊆R,  je Plot, a sintaksa je sljedeća:
                    ● Plot[f(x),{x,03pred-novo_70.gif,03pred-novo_71.gif}]
Tako na primjer naredba za crtanje grafa funkcije f(x)= cos(2·x+1) + 03pred-novo_72.gif, za x∈[-1.5,1.5],  izgleda ovako:

In[35]:=

03pred-novo_73.gif

Out[35]=

03pred-novo_74.gif

Ili, budući da smo upravo tu funkciju ranije definirali u Mathematici, možemo pisati:

In[36]:=

03pred-novo_75.gif

Out[36]=

03pred-novo_76.gif

03pred-novo_77.gif

Kako Mathematica određuje veličine jedinica na osima?
U zadatku smo zadali da je x između -1.5 i 1.5. Mathematica izračuna vrijednost funkcije za izvjestan broj točaka u tom intervalu i među tim vrijednostima nađe minimalnu i maksimalnu. Tada veličinu jedinica na osima x i y određuje tako da budu zadovoljeni sljedeći uvjeti:

03pred-novo_78.gif


Utjecati na izgled slike možemo pomoću  opcija koje dodajemo naredbi na sljedeći način:
                                        ● Plot[f(x),{x,03pred-novo_79.gif,03pred-novo_80.gif},opcija1,opcija2,..]

Listu opcija za naredu Plot možemo u Mathematici dobiti na sljedeći način:

In[37]:=

03pred-novo_81.gif

Out[37]=

03pred-novo_82.gif


Ovdje ćemo spomenuti samo neke od njih.

Opcija AspectRatio

In[38]:=

03pred-novo_83.gif

03pred-novo_84.gif

Opcijom AspectRatio izražava se omjer visine i širine slike.

In[39]:=

03pred-novo_85.gif

Out[39]=

03pred-novo_86.gif

In[40]:=

03pred-novo_87.gif

Out[40]=

03pred-novo_88.gif

Kvadratni oblik slike -- AspectRatio -> 1

In[41]:=

03pred-novo_89.gif

Out[41]=

03pred-novo_90.gif

Jednake jedinice na osima -- AspectRatio->Automatic.

In[42]:=

03pred-novo_91.gif

Out[42]=

03pred-novo_92.gif

Opcija AxesLabel

Pomoću opcije AxesLabel imenujemo osi.

In[43]:=

03pred-novo_93.gif

Out[43]=

03pred-novo_94.gif

In[44]:=

03pred-novo_95.gif

Out[44]=

03pred-novo_96.gif

In[45]:=

03pred-novo_97.gif

Out[45]=

03pred-novo_98.gif

In[46]:=

03pred-novo_99.gif

Out[46]=

03pred-novo_100.gif

Opcija PlotStyle

Pomoću opcije PlotStyle možemo  definirati boju, debljinu i vrstu linije.
Boju u Mathematici možemo definirati na više načina. Ovdje spominjemo samo funkciju Hue.

In[47]:=

03pred-novo_101.gif

03pred-novo_102.gif

To je funkcija koja brojevima od 0 do 1 pridružuje boju na sljedeći način:

03pred-novo_103.gif

In[48]:=

03pred-novo_104.gif

Out[48]=

03pred-novo_105.gif

Grafovi dviju ili više funkcija nad istim intervalom

Grafove funkcija 03pred-novo_106.gif,....,03pred-novo_107.gif : I → R, definiranih na istom intervalu I⊆R,  Mathematica crta na istoj slici pomoću sljedeće naredbe:
                    ● Plot[{03pred-novo_108.gif(x),....,03pred-novo_109.gif(x)},{x,03pred-novo_110.gif,03pred-novo_111.gif}]

Tako na primjer definiramo funkciju g(x)=-f(x) i nacramo njezin graf.

In[49]:=

03pred-novo_112.gif

In[50]:=

03pred-novo_113.gif

Out[50]=

03pred-novo_114.gif

A zatim na istoj slici nacrtamo grafove funkcija f i g nad istim intervalom.

In[51]:=

03pred-novo_115.gif

Out[51]=

03pred-novo_116.gif

In[52]:=

03pred-novo_117.gif

Out[52]=

03pred-novo_118.gif

Primjer: Manipulate

In[53]:=

03pred-novo_119.gif

Out[53]=

03pred-novo_120.gif

Notebook izradili: Sonja Gorjanc, Vladimir Benić

Spikey Created with Wolfram Mathematica 7.0