softverski paketi za pomoć u nastavi

Upotreba softverskog paketa Gias/Xcas u nastavi matematičke analize na stručnim studijima

 
Luka Marohnić


Tehnicko veleucilište u Zagrebu, Elektrotehnicki odjel
Sažetak
U članku se opisuju svojstva softverskog paketa za simboličku algebru Giac/Xcas te se razmatra način na koji bi se takav alat mogao koristiti u nastavi matematičke analize za studente stručnih studija te pogodnosti koje proizlaze iz takvog pristupa. Ponajprije, time se omogućava rješavanje složenijih zadataka i primjera koji su bliži realnim problemima te bolje prilagođeni vrsti studija. Nadalje, manje je vremena potrebno trošiti na rutinski račun u nastavi, pa se dobiveno vrijeme može upotrijebiti za utvrđivanje teoretskog matematičkog znanja koje je potrebno da bi se računalo moglo koristiti kao alat u pravom smislu te riječi. Dodatno, predlaže se način na koji bi se tijekom nastave studenti educirali o svojstvima i ograničenjima takvih alata, kako bi bili u stanju jasno razlučiti koji se dijelovi postupka rješavanja zadanog problema mogu izraditi na računalu. Tokom izlaganja donose se i konkretni primjeri seminarskih zadataka koje su studenti izradili tokom zimskog semestra ak.god. 2017./2018. u nastavi predmeta Matematika 1 na izvanrednom stručnom studiju elektrotehnike.
Ključne riječi: softverski paket Gias/Xcas; simbolička algebra; matematička analiza; stručni studij

1Uvod

Računalni softver za simboličku algebru (engl. computer algebra system ili CAS) razvija se od sedamdesetih godina prošlog stoljeća u okviru niza različitih softverskih paketa. U periodu od posljednjih 40 godina pojavilo se otprilike isto toliko različitih aplikacija za primjene u matematici, od kojih se mnoge razvijaju i danas1. Velik broj tih paketa je slobodno dostupan, a matematičari i programeri razvijaju ih u svoje slobodno vrijeme.

Mnogo je primjera rutinskog računa u matematici koji se može provoditi uz pomoć softvera za simboličku algebru. To uključuje npr. manipuliranje polinomima, deriviranje realnih funkcija, matrični račun. Računalo nam omogućuje da teoretski jednostavne metode koje stoljećima postoje u tim područjima možemo primijeniti i u kvantitativno vrlo složenim slučajevima.

Činjenica da od početka 21. stoljeća imamo na raspolaganju velik broj razvijenih, pouzdanih i dostupnih alata za simbolički račun, potiče nove izazove u metodici nastave matematike za inženjere i studente stručnih studija. Studenti matematike uglavnom se bave matematičkim dokazom te analizom matematičkih metoda, gdje računalo rijetko igra ključnu ulogu (pa ipak, i tu postoje primjeri u kojima je ono nezaobilazno). S druge strane, svi oni koji matematiku uče u sklopu stručnih (uglavnom tehničkih) studija bave se isključivo primjenom tih metoda, što se uglavnom svodi na algebarski račun. U ovom članku predstavljamo način na koji se računalo u smislu alata može uklopiti u te procese. U tu svrhu analizirat ćemo softverski paket Giac/Xcas i dati primjere upotrebe istoga u praksi nastave matematike na stručnom studiju elektrotehnike Tehničkog veleučilišta u Zagrebu.

2Kada koristiti računalo u nastavi?

Mnogi dijelovi postupaka rješavanja zadataka i primjera u nastavi matematike su rutinski—to može biti npr. određivanje inverza regularne matrice ili deriviranje neke elementarne funkcije. U takvim je slučajevima potrebno je provesti odgovarajući postupak koji u konačno mnogo koraka daje traženi rezultat odnosno rješenje, a koji je obrađen na nastavi. Upravo ta provedba ponekad može oduzeti mnogo dragocjenog vremena ako se izvodi na tradicionalan način, korištenjem papira i olovke. Na primjer, drugu derivaciju funkcije

f(x)=\frac{1+\sqrt{1+\sin^{2} x}}{1+\sqrt{1+\cos^{2} x}}

u točki x=\frac{\pi}{4} je prilično složeno odrediti na taj način, iako je propis same funkcije relativno jednostavan algebarski izraz. Primijenimo li međutim odgovarajući računalni program, shvaćajući proces deriviranja elementarne funkcije kao rutinsku tehniku, točan rezultat f''\left(\frac{\pi}{4}\right)=\frac{20-8\,\sqrt{6}}{3} praktički dobivamo u vremenu koje nam je potrebno da računalu zadamo što točno treba raditi.

Dakako, kada studente upoznajemo s nekom matematičkom tehnikom, kao što je deriviranje, osim uvođenja odgovarajuće terminologije i notacije tehniku valja demonstrirati detaljnom analizom njezine primjene, korak po korak, na nizu jednostavnih primjera. Korištenje računala na toj razini podučavanja besmisleno je, budući da koraci postupka nisu vidljivi, a dobiveni rezultat za nema uporabnu svrhu i praktički ništa ne znači. Međutim, u slučaju kada je primjena tehnike uklopljena u tijek rješavanja nekog složenijeg zadatka, tada interpretacija rezultata postaje moguća i nužna. Primjena računala u takvim slučajevima je poželjna upravo zato što, zbog postojanja konkretnog konteksta, možemo upotrijebiti podatak koji nam ono daje. Primjerice, proces određivanja lokalnih ekstrema zadane realne funkcije predstavlja kontekst unutar kojega koristimo derivaciju kako bismo izveli odgovarajuće zaključke—sam postupak deriviranja manje je bitan, sve dok nam je načelno jasno kako se on provodi.

Dakle, da bismo računalo koristili kao alat, moramo znati sljedeće:

(1) što točno želimo i zašto te jesu li su ispunjeni uvjeti pod kojima to možemo dobiti,
(2) može li se rješavanje toga problema povjeriti računalu i kako mu zadati što da radi.

Računalo može umjesto čovjeka izvršiti bilo koji postupak koji se sastoji od konačnog broja jasno definiranih koraka i koji niti u jednom trenutku ne zahtijeva inteligentnu intervenciju izvana. Jednostavno, radi se o algoritmu. Na primjer, određivanje inverza regularne matrice realnih brojeva je primjer algoritma. Izvođenje toga algoritma u praksi se današnjeg vremena bez iznimke povjerava računalu. Izračun determinante kvadratne matrice, rješavanje Cramerovog sustava linearnih jednadžbi i dijeljenje polinoma s ostatkom također su primjeri algoritama. Tradicionalnu nastavu matematike svakako je poželjno modernizirati na način da se takvi i slični algoritmi zaista obavljaju na računalu u toku rješavanja nekih složenijih primjera i zadataka, čime se ostvaruje bolji kontakt s inženjerskom praksom. U okviru tako modernizirane nastave mogu se demonstrirati mnogi zanimljivi i realistični primjeri, upravo zato što je rutinski račun moguće povjeriti stroju. Time se studenti mogu više usredotočiti na logičko zaključivanje, utemeljeno na ispravnoj upotrebi matematičkih definicija i kriterija.

U tu svrhu je svrhu prikladno u nastavu uključiti rad s nekim od softverskih paketa za simboličku algebru. Mi smo izabrali Giac/Xcas, za koji smatramo da konceptualno i sintaktički najbolje odgovara potrebama nastave matematike na stručnim tehničkim studijima (u našem slučaju, na predmetima Matematika 1 i 2 preddiplomskog studija elektrotehnike Tehničkog veleučilišta u Zagrebu [2]).

3Softverski paket Giac/Xcas

Giac/Xcas [1] je softverski paket za simboličku algebru koji se od 2000. godine razvija na Sveučilištu Grenoble u Francuskoj. Namijenjen je primjeni u nastavi matematike na srednjoškolskoj i dodiplomskoj razini, a u nekim segmentima može se primijeniti čak i u osnovnoškolskom obrazovanju. Cilj razvoja ovoga softvera je popularizacija primjene alata za simboličku algebru, prvenstveno među učenicima, studentima i nastavnicima. Distribuira pod GNU GPL licencom2, a sastoji iz dva odvojena dijela: računalne jezgre Giac i grafičkog korisničkog sučelja Xcas (vidi sliku 1). Naredbe strukturirane u programskom jeziku visoke razine, sličnom onome koji je razvila kompanija Maplesoft za svoj glavni proizvod Maple CAS, unose se u grafičkom sučelju unutar svojevrsnog ,,radnog lista” sačinjenog od niza naredbenih ćelija. Svaka od ćelija može sadržavati jednu ili više naredbi, koje se aktivacijom ćelije prosljeđuju jezgri Giac koja ih interpretira i izvodi. Rezultati se vraćaju natrag korisničkom sučelju koje ih prikazuje koristeći konvencionalnu matematičku notaciju.

Slika 1: korisničko sučelje Xcas


Iako naredbe moraju biti sintaktički ispravne u smislu jezika3 koji Giac ,,razumije”, radi se o jeziku visoke razine koji se vrlo lako koristi za uobičajene operacije u okviru matematičke analize i algebre. Naime, za većinu postupaka koji se mogu algoritamski implementirati postoje posebne naredbe koje se koriste na intuitivan način. Na primjer, želimo li izračunati određeni integral funkcije f(x)=\frac{x}{\sqrt{x+a}}, gdje je a\gt 0 konstanta, na segmentu [0,a], dovoljno je unijeti sljedeće naredbe:

f(x):=1/x*ln((exp(x)-1)/x)

Prvom naredbom postavlja se uvjet na simbol a, koji bi inače bio shvaćen kao proizvoljan realan broj. Drugom naredbom zadaje se funkcija f, dok treća naredba daje vrijednost traženog integrala:

\frac{2}{3}\cdot a\,\sqrt{a}\,(2-\sqrt{2}).

Gornji primjer može poslužiti kao ilustracija glavnih razlika između numeričkog4 i simboličkog računa. Prvo, simbolički račun dopušta unos algebarskih izraza, koji osim numeričkih podataka i matematičkih operatora mogu sadržavati i simbole kojima nisu nužno pridružene numeričke vrijednosti. Prilikom numeričkog računa to nije moguće jer taj pristup ne poznaje koncept algebarskog izraza kao objekta kojime se može manipulirati kao takvim. Drugo, simbolički račun je egzaktan, dok je numerički općenito približan. Specijaliziranih naredbi kao što je 01, koja je korištena u gornjem primjeru, u Giac/Xcas je ugrađeno više stotina, a podijeljene su u niže navedene skupine.

Račun s cijelim, racionalnim, realnim i kompleksnim brojevima—
aritmetika cijelih brojeva s teoretski neograničenom preciznosti, kongruencije, modularni račun, dijeljenje s ostatkom, račun s razlomcima, iracionalnim konstantama te kompleksnim brojevima u algebarskom, trigonometrijskom i eksponencijalnom obliku
Matrični račun—
zadavanje i prikaz simboličkih matrica, računske operacije s matricama, determinanta i inverz matrice, svojstvene vrijednosti, minimalni polinom, dekompozicije matrica
Vektorski račun:
zadavanje vektora u proizvoljnom broju dimenzija, osnovne operacije s vektorima, skalarno i vektorsko množenje vektora, izračunavanje različitih vektorskih normi, grafički prikaz vektora u dvije i tri dimenzije
Polinomi—
egzaktno određivanje korijena polinoma, faktorizacija, interpolacija, aproksimacija realnih funkcija na segmentu, dijeljenje polinoma s ostatkom, neki specijalni polinomi (Legendreovi, Hermiteovi, Laguerreovi i Čebiševljevi), Taylorov polinom, Gr\"{o}bnerove baze, racionalne funkcije (određivanje polova, rastav na djelomične razlomke)
Realne funkcije—
zadavanje funkcija (po dijelovima), izračun funkcijskih vrijednosti, prirodno područje definicije, operacije s funkcijama (komponiranje), granične vrijednosti funkcija, deriviranje (implicitno zadanih) funkcija jedne ili više varijabli, određivanje (uvjetnih) globalnih ekstrema realne funkcije jedne ili više varijabli na kompaktnom skupu, određivanje (uvjetnih) lokalnih ekstrema realne funkcije jedne ili više varijabli, integriranje funkcija jedne realne varijable na segmentu, određivanje primitivnih funkcija, izračun koeficijenata Fourierovog razvoja, Laplaceova transformacija, neke specijalne funkcije
Transformiranje algebarskih izraza—
pojednostavljivanje, ,,raspisivanje'', faktorizacija, zamjena određenih simbola i podizraza, zamjena i djelomična integracija u određenom i neodređenom integralu
Jednadžbe i nejednadžbe—
egzaktno i približno rješavanje (sustava) jednadžbi i nejednadžbi, određivanje optimalne vrijednosti funkcije više varijabli uz (ne)linearne uvjete (linearno i nelinearno programiranje), egzaktno i približno rješavanje (sustava) diferencijalnih jednadžbi
Nizovi i redovi—
granične vrijednosti nizova, rekurzije, egzaktno i približno zbrajanje redova, konvolucija i (auto)korelacija, z-transformacija
Vizualizacija—
interaktivni prikaz grafova realnih funkcija te implicitno i parametarski zadanih krivulja i ploha u Kartezijevom odnosno polarnom koordinatnom sustavu, animacije
Geometrija—
zadavanje i prikaz različitih geometrijskih objekata u ravnini ili prostoru, geometrijske konstrukcije, izračun raznih numeričkih obilježja geometrijskih objekata (npr.~površine, volumena, opsega, duljine luka krivulje\dots)
Vjerojatnost i statistika—
izračun numeričkih obilježja statističkih nizova kao što su srednja vrijednost, varijanca, standardna devijacija, medijan, kvantili i kvartili, izračun (kumulativnih) frekvencija, kovarijance i koeficijenta korelacije, (ne)linearna regresija, diskretne i neprekidne statističke razdiobe (npr.~jednolika, binomna, normalna, Poissonova\dots), Markovljevi lanci, statistički testovi, vizualizacija podataka pomoću histograma te točkastih, linijskih, stupčastih i kružnih dijagrama
Programiranje funkcija—
lokalne varijable, standardne naredbe kontrole tijeka (petlje i kondicionalne naredbe)

Dodatno, u Giac/Xcas ugrađene su i važne konstante, poput već spomenutog broja \pi, Eulerovog broja~e, Euler-Mascheronijeve konstante \gamma te imaginarne jedinice. Također, moguće je koristiti različite fizikalne jedinice i konstante. Raznolikost i brojnost ugrađenih naredbi omogućuje nam da kontroliramo do koje mjere želimo uključiti računalo u postupak rješavanja. Korištenje računala možemo reducirati, tj.~koristiti ga primjerice samo za pojednostavljivanje, provođenje djelomične integracije i slično. S druge strane, možemo koristiti i moćnije naredbe koje odmah daju konačan rezultat, ako su takve u danom slučaju dostupne. Ipak, Giac/Xcas—kao i svaki alat za simbolički račun—ima određena ograničenja kojih korisnici (nastavnici i studenti) trebaju biti svjesni. Neka od njih su navedena niže.

(1) Egzaktno se mogu riješiti samo oni tipovi (diferencijalnih) jednadžbi, odnosno sustava takvih jednadžbi, za koje postoje algoritmi. Giac može egzaktno riješiti nekoliko osnovnih tipova običnih diferencijalnih jednadžbi, sustave linearnih diferencijalnih jednadžbi te sustave polinomijalnih jednadžbi, a ima i ograničenu podršku za eksponencijalne, logaritamske i trigonometrijske jednadžbe.
(2) U nekim je slučajevima moguće dobiti samo neka rješenja jednadžbe koja ih inače ima beskonačno mnogo.
(3) Ponekad je primitivnu funkciju zadane funkcije nemoguće dobiti iako ona postoji.
(4) Prikaz grafa realne funkcije konstruira se iz konačnog skupa njegovih točaka, što znači da nisu svi detalji stvarnog grafa nužno vidljivi na ekranu.
(5) Ponekad Giac neće prepoznati da su dva algebarska izraza F i G jednaka, tj.~da je F-G=0, čak i ako je to istina. Naime, ne postoji algoritam koji bi bio u stanju maksimalno pojednostavniti svaki algebarski izraz (u ovom slučaju izraz F-G).
(6) U izuzetno rijetkim slučajevima može se dogoditi da Giac pogrešno ,,odredi'' limes (takve je primjere nemoguće posve eliminirati jer definitivan i potpuno pouzdan algoritam ne postoji).
(7) Giac će ponekad, uz napomenu, prepustiti provjeru određenih nužnih uvjeta korisniku. Na primjer, prilikom izračunavanja nepravog integrala s beskonačnim granicama računalo će svjesno preskočiti provjeru dobre definiranosti podintegralne funkcije na čitavom području integracije (budući da općenito nema načina da to efektivno učini) i prikazati upozorenje.

Na većinu ovih ograničenja dovoljno je samo upozoriti studente. Neka su neizbježna, kao npr.~ograničenje br.~\ref{og:1}, ali neka se mogu otkloniti u svakom pojedinom slučaju. Na primjer, ukoliko rezolucija prikaza grafa funkcije nije dovoljno velika, moguće ju je povećati postavljanjem varijable 02 prilikom poziva naredbe za prikaz (najčešće je to naredba 03). Također, ograničenje br.~\ref{og:3} može se izbjeći korištenjem naredbe 04 umjesto naredbe 05. Što se tiče ograničenja br.~\ref{og:4}, ukoliko sumnjamo da je granična vrijednost dane funkcije u danoj točki, dobivena pomoću naredbe 06, ispravna, možemo prikazati graf te funkcije u okolini dane točke i to provjeriti. Naposljetku, važno je napomenuti da nam računalo ne može ,,magično'' dati rješenja previše složenih ili nerješivih problema, odnosno tipova problema koji nisu podržani u implementaciji s kojom radimo. Štoviše, postoji klasa tzv.~NP-teških problema np za koje se dovoljno efikasan algoritam ne može implementirati jer jednostavno nije pronađen (i vrlo je nevjerojatno da će uopće biti), pa porastom složenosti ulaznih podataka eksponencijalno raste vrijeme potrebno za rješavanje problema (toj klasi pripada, na primjer, čuveni~\emph{problem trgovačkog putnika}).

4Primjeri seminarskih zadataka u nastavi matematičke analize

U ovoj točki demonstrirat ćemo praktičan rad s programom Giac/Xcas kroz predstavljanje primjera zadataka koje su studenti izvanrednog preddiplomskog stručnog studija elektrotehnike na Elektrotehničkom odjelu Tehničkog veleučilišta u Zagrebu izradili u sklopu seminarskih zadaća na predmetu Matematika 1 u zimskom semestru ak.god.~2017./2018. Prema našem iskustvu, studenti primjenu računala kao alata prilikom rješavanja i analize zadataka smatraju dobrodošlom i zanimljivom. Upravo zbog pozitivne reakcije koja je popratila demonstraciju softvera na nastavi predmeta Matematika 1, odlučeno je da se ponudi mogućnost zainteresiranim studentima da drugi kolokvij polažu u vidu izrade seminarskog rada. Svaki student koji se opredijelio za tu varijantu dobio je dva zadatka. Općenito, prvi se zadatak svodio na primjenu definicija limesa, neprekidnosti i derivacije funkcije u točki, dok je u drugom zadatku bio izložen ekstremalni problem koji je trebalo matematički modelirati i primijeniti tehniku određivanja lokalnih ekstrema. U nastavku navodimo po jedan primjer za svaki od ovih dvaju tipova zadataka te donosimo detaljan tijek rješavanja svakog primjera.

Zadatak 1.Funkcija f:\mathbb{R}\setminus\lbrace 0\rbrace \to\mathbb{R} zadana je propisom
f(x)=\frac{1}{x}\,\ln\frac{\text{e}^{x}-1}{x}.
[a)]
(1) Proširite funkciju f po neprekidnosti do funkcije F:\mathbb{R}\to\mathbb{R}.
(2) Pokažite da je funkcija F derivabilna u točki x=0 i izračunajte F'(0).
(3) Pokažite da graf funkcije F ima točku infleksije s apscisom jednakom 0.

Rješenje. Zadana funkcija f očito je neprekidna na domeni (kao kompozicija neprekidnih elementarnih funkcija) te nije definirana u točki 0. U Xcas-u funkciju f zadajemo naredbom:

domain(f(x),x)

Općenito, prirodno područje definicije funkcije f možemo dobiti naredbom

L:=limit(f(x),x=0)

iako je to u ovom slučaju trivijalno.

Da bismo funkciju f proširili do funkcije F na cijelom skupu \mathbb{R}, mora postojati limes L=\lim_{x\to 0}f(x) [3, str. 29] i

(1)
F(x)=\begin{cases}L,&x=0,\\f(x),&x\neq 0.\end{cases}

Ovako definirana funkcija F neprekidna je po definiciji. Time se rješavanje podzadatka a) svodi na određivanje limesa L, kojega daje sljedeća naredba:

F(x):=when(x==0,L,f(x))

Dobivamo L=\frac{1}{2}. Sada zadajemo funkciju F naredbom

limit((F(x)-F(0))/x,x=0)

što odgovara definiciji (1). Sada lako rješavamo podzadatak b) koristeći definiciju derivacije funkcije u točki [3, str. 31]. Naime, ako je F derivabilna u točki x=0, tada postoji limes

(2)
F'(0)=\lim_{x\to 0}\frac{F(x)-F(0)}{x}

koji određujemo pomoću naredbe

limit(f''(x),x=0)

Dobivamo rezultat \frac{1}{24}. Dakle, limes (2) postoji i vrijedi F'(0)=\frac{1}{24}.

Preostaje riješiti podzadatak c). Prema definiciji, graf funkcije F ima infleksiju u točki x=0 ako vrijedi F''(0)=0 i ako F'' mijenja predznak u okolini te točke [3, str. 37–38]. Budući da vrijedi F''(0)=\lim_{x\to 0}f''(x), tu vrijednost dobivamo naredbom

limit(f'''(x),x=0)

koja zaista daje rezultat 0. Na sličan način odredimo F'''(0), naredbom

assume(r>0)
assume(theta>0 and theta<pi)
R:=r*sin(theta/2)
h:=r*cos(theta/2)
V:=unapply(pi/3*R^2*h,theta)

Na temelju dobivenog rezultata zaključujemo da vrijedi F'''(0)=-\frac{1}{480}\lt 0. Dakle, F''' ne mijenja predznak na nekoj dovoljno maloj okolini točke 0, pa je F'' na toj okolini nužno strogo padajuća, što znači na njoj mora mijenjati predznak (sjetimo se da je F''(0)=0). Prema tome, funkcija F ima točku infleksije \left(0,\frac{1}{2}\right).\hfill\qed

Slika 2: prikaz stošca upisanog u sferu iz zadatka 2 (lijevo) te prikaz dobiven u Xcas-u (desno)

Zadatak 2. U sferu polumjera r sa središtem u točki S upisan je preokrenuti stožac s vrhom u S kako prikazuje slika 2. Poprečni presjek toga stošca je jednakokračni trokut s mjerom \theta kuta pri vrhu S. [a)]
(1) Izvedite formulu za volumen V stošca u ovisnosti od parametra \theta\in\langle 0,\pi\rangle, pa zatim odredite onu vrijednost \theta za koju je taj volumen maksimalan.
(2) Odredite onu vrijednost parametra \theta za koju je omjer volumena i oplošja stošca maksimalna.
Slika 3: graf funkcije V' iz zadatka 2


Rješenje. Označimo li s R i h polumjer baze i visinu stošca, redom, lako možemo vidjeti da vrijedi R=r\,\sin\frac{\theta}{2} i h=r\,\cos\frac{\theta}{2}, gdje je radijus sfere r jednak izvodnici stošca. Prema tome, volumen stošca jednak je [3, str. 68] 

(3)
V(\theta)=\frac{\pi}{3}\,R^{2}\,h=\frac{\pi}{3}\,r^{3}\,\cos\frac{\theta}{2}\,\sin^{2}\frac{\theta}{2}.

Ovu funkciju u Xcas-u zadajemo na sljedeći način:

S:=solve(V'(theta)=0,theta)

Očito je V(0)=V(\pi)=0 i V\gt 0 za \theta\in\langle 0,\pi\rangle. Potražimo nultočke prve derivacije funkcije V u tom intervalu:

evalb(V''(S[0])<0);

Dobivamo da je V'(\theta)=0 za \theta=4\,\tan^{-1}\frac{\sqrt{6}-\sqrt{2}}{2} (što je jedini element liste S koja predstavlja skup rješenja jednadžbe za stacionarne točke), dakle otprilike 109 stupnjeva. To je upravo točka lokalnog maksimuma funkcije V budući da je druga derivacija V'' u toj točki negativna, tj. naredba

labels=["theta","V'(theta)"]; plot(V'(theta),theta=0..pi)

daje rezultat true (istina).

Ako se želimo uvjeriti da jednadžba V'(\theta)=0 ima točno jedno rješenje, možemo prikazati graf te funkcije pomoću sljedećih naredbi (prva nije obavezna):

factor(trigsimplify(V'(theta)))

pa zatim prebrojati sjecišta s osi apscisa (vidi sliku 3).

Izvod jednadžbe za stacionarne točke. Jednadžbu V'(\theta)=0 možemo odrediti sređivanjem propisa funkcije V' pomoću naredbe:

maximize(V(theta),theta,point)

Dobivamo

V'(\theta)=\frac{r^{3}\,\pi}{24}\,\left(3\,\sin\frac{3\,\theta}{2}-\sin\frac{\theta}{2}\right),

odakle slijedi da se određivanje stacionarnih točaka funkcije V svodi na rješavanje jednadžbe

(4)
3\,\sin\frac{3\,\theta}{2}=\sin\frac{\theta}{2},\quad 0\lt \theta\lt \pi.

Budući da naredba trigexpand(sin(3*theta/2)) daje rezultat

\left(4\,\cos^{2}\frac{\theta}{2}-1\right)\,\sin\frac{\theta}{2}

i vrijedi \sin\frac{\theta}{2}\neq 0, lako se pokazuje da je jednadžba (4) ekvivalentna s \cos\frac{\theta}{2}=\frac{1}{\sqrt{3}}.

Izravan način rješavanja. U Xcas-u globalni maksimum funkcije V možemo jednostavno odrediti pomoću naredbe

P:=unapply(R*pi*(R+r),theta)
q:=unapply(V(theta)/P(theta),theta)
S:=solve(q'(theta)=0,theta)

koja daje maksimalni volumen i točku \theta u kojoj se on postiže.

Riješimo sada podzadatak b). Oplošje stošca prikazanog na slici 2 jednako je [3, str. 68] 

(5)
P(\theta)=R\,\pi\,(R+r)=r^{2}\,\pi\,\sin\frac{\theta}{2}\,\left(1+\sin\frac{\theta}{2}\right).

Označimo

q(\theta)=\frac{V(\theta)}{P(\theta)}.

Očito je q(0)=q(\pi)=0 i q(\theta)\gt 0 za \theta\in\langle 0,\pi\rangle. Točku globalnog maksimuma određujemo na analogan način kao ranije:

factor(trigsimplify(q'(theta)))

Dobivamo da je \theta=2\,\sin^{-1}\frac{\sqrt{5}-1}{2} (otprilike 76 stupnjeva) točka lokalnog maksimuma, što možemo provjeriti pomoću naredbe evalb(q”(S[0])<0).

Izvod jednadžbe za stacionarne točke. Jednadžbu q'(\theta)=0 možemo odrediti sređivanjem propisa funkcije q' pomoću naredbe:

assume(a>0);
f(x):=x/sqrt(x+a);
integrate(f(x),x=0..a)

Dobivamo

q'(\theta)=\frac{r\,\left(\cos\theta-2\,\sin\frac{\theta}{2}+1\right)}{12\,\left(1+\sin\frac{\theta}{2}\right)},

odakle, budući da je 1+\sin\frac{\theta}{2}\gt 0 za sve \theta\in\langle 0,\pi\rangle, slijedi da se postupak određivanja stacionarnih točaka funkcije q svodi na rješavanje jednadžbe

1+\cos\theta=2\,\sin\frac{\theta}{2},\quad 0\lt \theta\lt \pi.

Ovu jednadžbu možemo riješiti zamjenom izraza \cos\theta izrazom 1-2\,\sin^{2}\frac{\theta}{2} [3, str. 65], pa potom uvesti novu varijablu t=\sin\frac{\theta}{2}, čime se jednadžba svodi na kvadratnu.

Izravan način rješavanja. Globalni maksimum funkcije q možemo lako odrediti i primjenom naredbe maximize(q(theta),theta,point).\hfill\qed

U zadatku 2 demonstrirano je rješavanje svakog od podzadataka na tri različita načina: pomoću funkcije solve, zatim izvođenjem i analizom jednadžbe za stacionarne točke i napokon pomoću funkcije maximize.

5Zaključak

Iako je u ovom članku predstavljen samo jedan softverski paket, to ne znači da ne postoje i drugi koji su pogodni za korištenje u nastavi matematike (npr. GNU Maxima). Prema našem mišljenju, najbolje je izabrati softver otvorenog tipa koji se može slobodno preuzimati jer ga studenti mogu instalirati na svoja računala i samostalno koristiti prema uputama nastavnika (dakako, poželjno je upotrebu softvera prethodno demonstrirati na nastavi). Također, u projektima otvorenog tipa moguće je participirati, pa se time i nastavnicima otvaraju mogućnosti za sudjelovanje na razvoju CAS paketa.

Bibliografija
[1] Bernard Parisse i Renée De Graeve, Giac/Xcas, a free computer algebra system, https://www-fourier.ujf-grenoble.fr/ parisse/giac.html, verzija 1.4.9 (30.4.2018.)
[2] Luka Marohnić i Mandi Orlić Bachler, Applications of free computational software in math courses at Zagreb University of Applied Science, u monografiji Mathematics Education as Science and Profession, urednice: Zdenka Kolar-Begović, Ružica Kolar-Šuper i Ljerka Jukić Matić, Element, 2017.
[3] Bojan Kovačić, Luka Marohnić i Tihana Strmečki, Repetitorij matematike za studente elektrotehnike, Tehničko veleučilište u Zagrebu, Zagreb, 2016.
[4] Lance Fortnow, The Status of the P versus NP problem, Communications of the ACM 52(9):78–86, 2009.