Professional Documents
Culture Documents
Matlab ima vie alatki koje omoguavaju upravljanje tokom izvravanja programa. Uslovni iskazi i
struktura switch omoguavaju da se odreene komande prekoe ili da se u razliitim sluajevima izvravaju
razliite grupe komandi. Petlje for i while omoguavaju da se izvravanje odreene grupe komandi ponovi
vie puta.
Jasno je da je za promenu toka izvravanja programa potreban odreeni postupak donoenja odluka.
Raunar mora da odlui da li da izvri narenu komandu ili da preskoi jednu ili vie i nastavi od nekog
drugog reda u programu. Tome slue relacioni i logiki operatori.
U programu se mogu koristiti i funkcijske datoteke, kao potprogrami. Kada program doe do reda sa
imenom funkcije, prosleuje joj ulazne vrednosti, a zatim dobija rezultat funkcije.
Relacioni i logiki operatori
Relacioni operator poredi dva broja i utvruje da li je iskaz istinit ili neistinit. Ako je istinit dobija
vrednost 1 a ako ne vrednost 0. Logiki operatori ispituju izraze ije vrednosti mogu biti true ili false,
zavisno od operatora. Relacioni i logiki operatori se mogu koristiti u matematikim izrazima i esto se
upotrebljavaju u kombinacijama sa drugim operatorima pri donoenju odluka pomou kojih se upravlja
tokom izvravanja programa.
Relacioni oparator
Opis
<
Manje od
>
Vece od
<=
Manje ili jednako od
>=
Vece ili jednako od
==
Jednako
~=
Razlicito
Kada se porede dva broja rezultat je 1 ukoliko je istinit izraz poreenja, ili 0 ukoliko je neistinit. Kada
se porede dve skalarne vrednosti, rezultat je takoe skalar, koji moe biti 0 ili 1. Ako se porede dva niza
(samo nizovi jednakih dimenzija), poreenje se obavlja element po element, a rezultat je niz jednakih
dimenzija kao i izvorni nizovi, i sadtoji se od logikih vrednosti (jedinica i nula), koje predstavljaju rezultat
poreenja pojedinanih elemenata nizova. Kada se skalarna vrednost poredi sa nizom, poredi se sa
svakimelementom niza pojedinano, a rezultat je niz iji su elementi logike jedinice i nule, koje odraavaju
rezultate poreenja sa pojedinanim elementima izvornog niza.
>> 5>8
ans =
0
>> a=5<10
a=
1
>> y=(6<10)+(7>8)+(5*3==60/4)
y=
2
>> b=[15 6 9 4 11 7 14];c=[8 20 9 2 19 7 10];
>> d=c>=b
d=
0 1 1 0 1 1 0
>> b==c
ans =
0 0 1 0 0 1 0
>> b~=c
1
ans =
1 1 0 1 1 0 1
>> f=b-c>0
f=
1 0 0 1 0 0 1
>> A=[2 9 4;-3 5 2;6 7 -1]
A=
2 9 4
-3 5 2
6 7 -1
>> B=A<=2
B=
1 0 0
1 0 1
0 0 1
Rezultat relacionih operacija nad vektorima jesu vektori iji su elementi logike nule i jedinice, a
zovu se logiki vektori. Kada se logiki vektor upotrebi za adresiranje drugog vektora, iz tog vektora se
izdvajaju elementi koji se nalaze na pozicijama gde logiki vektor sadri jedinice.
>> r=[8 12 9 4 23 19 10]
r=
8 12 9 4 23 19 10
>> s=r<=10
s=
1 0 1 1 0 0 1
>> t=r(s)
t=
8 9 4 10
>> w=r(r<=10)
w=
8 9 4 10
Logiki vektori se mogu upotrebiti u aritmetikim operacijama i tada se menja u numeriki vektor ili matricu.
Redosled prioriteta: u matematikim izrazima koji sadre relacione i aritmetike operatore, aritmetike
operacije imaju prioritet nad relacionim operacijama. Relacioni operatori imaju jednak prioritet, a rezultati se
izraunavaju sleva nadesno. Redosled prioriteta se moe izmeniti zagradama.
3+4<16/2
ans =
1
>> 3+(4<16)/2
prvo se rauna 4<16 , rezultat je 1
ans =
3.5000
Logiki operatori
Operator Naziv
Opis
&
AND
Deluje na dva operanda. Ako oba imaju vrednost
true, rezultat je true, u suprotnom false
|
OR
Deluje na dva operanda. Ako jedan ili oba imaju
vrednost true, rezultat je true, kad su oba false,
rezultat je false
~
NOT
Deluje na jedan operand, daje suprotnu vrednost
Operandi logikih operatora su brojevi. Koriste se kao aritmetiki operatori u matematikim izrazima.
Rezultat se moe upotrebiti u drugim matematikim operacijama, za adresiranje nizova, te u drugim
komandama Matlab-a (if). Logiki operatori se mogu primenjivati na skalare i nizove.
Operandi logikih operatora AND i OR mogu biti ili skalari ili vektori ili kombinovano. Ako su oba
skalari, rezultat je skalarna vrednost. Ako su oba operanda nizovi, moraju biti jednakih dimenzija, a logika
operacija se odvija element po element. Rezultat je niz jednakih dimenzija kao izvorni nizovi, iji su elementi
logike nule i jedinice. Ako je jedan operand skalarna vrednost, a drugi niz, logika operacija se obavlja nad
skalarnom vrednou i svim elementima niza pojedinano.
NOT ima samo jedan operand. Kada se primeni na skalar daje rezultat nula ili jedan. Kada se primeni
na niz, rezultat je niz jednakih dimenzija koji sadri logike jedinice na mestima gde izvorni niz sadri
brojeve razliite od nule, a logike nule na mestima gde izvorni niz sadri nule.
>> 3&7
ans =
1
>> a=5|10
a=
1
>> ~25
ans =
0
>> t=25*((12&0)+(~0)+(0|5))
t=
50
>> x=[9 3 0 11 0 15];y=[2 0 13 -11 0 4];
>> x&y
ans =
1 0 0 1 0 1
>> z=x|y
z=
1 1 1 1 0 1
>> ~(x+y)
ans =
0 0 0 1 1 0
Redosled prioriteta Operacija
1(najvii)
Zagrade
2
Stepenovanje
3
Logiko NOT
4
Mnoenje, deljenje
5
Sabiranje, oduzimanje
6
Relacioni operatori (>,<,>=,<=,==,~=)
7
Logiko AND
8
Logiko OR
Ako dva ili vie operatora imaju isti prioritet, izraz se izraunava sleva nadesno.
>> x=-2;y=5;
>> -5<x<-1
ans =
0
>> -5<x&x<-1
ans =
1
>> ~(y<7)
3
ans =
0
>> ~y<7
ans =
1
>> ~(y>=8)|(x<-1)
ans =
1
Ugraene logike funkcije: and(A,B), or(A,B) not(A), ekvivalentne logikim operatorima. Postoje i druge
ugraene funkcije:
Funkcija
Opis
Primer upotrebe
xor(a,b)
Iskljuivo ili.Vraa true ako je
xor(7,0)
jedan operand true a drugi false
ans=1
all(A)
Vraa 1 ako su svi elementi A
A=[6 2 15 9 7 11];
razliiti od nule. Vraa 0 ako je bar all(A)
jedan elem. A nula. Ako je A
ans=1
matrica njene se kolone tretiraju
B=[6 2 15 9 0 11];
kao vektori, a rezultat je vektor
all(B)
koji sadri logike 0 i 1
ans=0
Any(A)
Vraa 1 ako je barem jedan
A=[6 0 15 0 0 11];
element vektora A razliit od nule. any(A)
Ako je A matrica, isto kao gore
ans=1
B=[0 0 0 0 0 ];
any(B)
ans=0
Find(A)
Ako je A vektor, vraa indekse
A=[0 9 4 3 7 0 0 1 8];
elemenata koji su razliiti od nule find(A)
Find(A>d)
Ako je A vektor, vraa adrese
ans=2 3 4 5 8 9
elemenata koji su vei od d
find(A>4)
ans=2 5 9
Primer: Sledei podaci su maksimalne dnevne temperature zabeleene toku jednog meseca u nekom
gradu:58 73 73 53 50 48 45 73 73 66 69 63 74 82 84 91 93 89 91 80 59 69 56 64 63 66 64 74 63 69 (u
Farenhajtima). Pomou relacionih i logikih operatora utvrdite sledee:
a) Ukupan broj dana u kojima je temperatura bila iznad 75 stepeni
b) Ukupan broj dana u kojima je temperatura bila izmeu 65 i 80 stepeni
c) Dane u mesecu u kojima je temperatura bila izmeu 50 i 60 stepeni.
T=[58 73 73 53 50 48 56 73 73 66 69 63 74 82 84 91 93 89 91 80 59 69 56 64 63 66 64 74 63 69];
Tiznad75=T>=75;
Vektor sadri jedinice na mestima gde je T>=75
NdanaTiznad75=sum(Tiznad75)
Tod65do80=(T>=65)&(T<=80);
NdanaTod65do80=sum(Tod65do80)
datumiTod50do60=find((T>=50)&(T<=60)) Funkcija daje adrese elemenata vektora T koji imaju vr.
Operatori
izmeu 50 i 60
NdanaTiznad75 =
7
NdanaTod65do80 =
12
datumiTod50do60 =
4
21
23
Uslovni iskazi
To je komanda koja omoguava Matlab-u da odluuje da li e izvriti grupu komandi koja sledi
iskazu ili e te komande preskoiti. U uslovnom iskazu morate zadati uslovni izraz. Ako je rezultat izraza
true, izvrava se grupa komandi koja neposredno sledi iskazu. Ako je rezultat false, raunar preskae tu grupu
naredbi. Uslovni iskazi se mogu unositi u program napisan u skript datoteci ili u funkcijskoj datoteci.
Struktura if-end
Dijagram toka
-------------------
false
Isk
az
true
Matlabov program
if uslovni izraz
--------Grupa komandi
----------------end
-----------Matlabov program
-----------------------
Komande
end
Primer: Radnik je plaen za odreeni iznos po satu za rad do 40 sati, a prekovremeni rad se plaa 50% vie.
Napiite program u skript datoteci koji e obraunavati zaradu radnika. Program zahteva od korisnika da
unese ukupan broh sati i iznos satnice, a zatim prikazuje ukupnu zaradu.
s=input('Unesite ukupan broj radnih sati ');
c=input('Unesite cenu satnice u dinarima ');
Zarada=s*c;
if s>40
Zarada=Zarada+(s-40)*0.5*c;
end
fprintf('Zarada radnika je \n %5.2f',Zarada)
>> zarada
Unesite ukupan broj radnih sati43
Unesite cenu satnice u dinarima385.44
Zarada radnika je
17152.08
Struktura if-else-end
Ova struktura omoguava da se izabere izvravanje jedne od dve mogue grupe komandi. Ako je
vrednost iskaza true, program izvrava prvu grupu komandi izmeu iskaza if i else, a zatim preskae ostale
5
komande do iskaza end. Ako je vrednost izraza false, program preskae komande do iskaza else, a zatim
izvrava komande koje se nalaze izmeu else i end.
Struktura if-elseif-else-end
Struktura sadri dva uslovna iskaza koji omoguavaju da se jedna od tri grupe naredbi odabere za
izvravanje.
------------------------- Matlab-ov program
if uslovni iskaz
..............
Grupa 1 komandi
..............
..............
elseif uslovni izraz
..............
Grupa 2
..............
komandi
..............
else
..............
Grupa 3
..............
komandi
..............
end
............
Matlab-ov program
...........
Iskaz switch-case
Omoguava da se za izvravanje izabere jedna od vie moguih grupa komandi.
------------------------- Matlab-ov program
switch izraz switch
case vrednost1
..............
Grupa 1 komandi
..............
..............
case vrednost2
..............
Grupa 2
..............
komandi
..............
case vrednost3
..............
Grupa 3
..............
komandi
..............
otherwise
..............
Grupa 4
..............
komandi
..............
end
Matlab-ov program
............
...........
6
Izraz u komandi switch moe biti vrednost ili znakovni niz. Najee je to promenljiva kojoj je
dodeljena skalarna vrednost ili znakovni niz.
Vrednost izraza u komandi switch se poredi pojedinano sa vrednou zadatom u svakom iskazu case.
Ako se vrednosti podudaraju, izvrava se grupa komandi iza odgovarajueg iskaza case. Ako postoji vie od
jednog podudaranja, izvrava se samo prvi iskaz. Ukoliko nije pronaeno podudaranje i postoji iskaz
otherwise, izvrava se ta grupa komandi. Ukoliko otherwise ne postoji ne izvrava se ni jedna grupa
komandi.
Primer: Napiite program u skript datoteci koji koliinu energije izraenu odreenim jedinicama, dul (J), ftlb, kalorija (cal) ili eV, preraunava u ekvivalentnu koliinu u drugim jedinicama koje korisnik zada.
Program najpre zahteva da korisnik zada koliinu energije, tekuu jedinicu i novu ciljnu jedinicu. Rezultat je
koliina energije izraena u novim jedinicama.
Faktori konverzije su sledei:
1J=0.738ft-lb=0.239cal=6.24x1018eV
Upotrebite program da bi ste preraunali sledee vrednosti: a)150 J u ft-lb; b)2800cal u J; c) 2.7eV u cal.
Reenje:
Ein=input('Upisite kolicinu energije koju cete konvertovati');
EinUnits=input('Upisite tekuce jedinice (J, ft/lb, cal,eV):','s');
EoutUnits=input('Upisite nove jedinice (J, ft/lb, cal,eV):','s');
error=0;
switch EinUnits
case 'J'
EJ=Ein;
case 'ft/lb'
EJ=Ein/0.738;
case 'cal'
EJ=Ein/0.239;
case 'eV'
EJ=Ein/6.24e18;
otherwise
error=1;
end
switch EoutUnits
case 'J'
Eout=EJ;
case 'ft/lb'
Eout=EJ*0.738;
case 'cal'
Eout=EJ*0.239;
case 'eV'
Eout=EJ*6.24e18;
otherwise
error=1;
end
if error
disp('greska pri iyboru jedinica')
else
fprintf('E=%g%s',Eout,EoutUnits)
end
>> konverzijaenergije
Upisite kolicinu energije koju cete konvertovati2800
Upisite tekuce jedinice (J, ft/lb, cal,eV):cal
7
U komandnom prozoru izvravanje ove skript datoteke, nazvane temperature, daje sledee rezultate:
>> temperature
Pod a)
prosecna temperatura u Njujorku je 37.6774 stepeni Farenhajta
prosecna temperatura u Enkoridzu je 33.129 stepeni Farenhajta
Pod b)
temperatura je u Njujorku bila iznad proseka ukupno 14 dana
temperatura je u Enkoridzu bila iznad proseka ukupno 18 dana
Pod c)
Temperatura je u Enkoridzu bila veca ukupno 11 dana
dani u mesecu kada je temperatura u Enkoridzu bila veca nego u Njujorku su:
1 7 9 14 15 18 19 21 22 25 26
Pod d)
Temperatura je bila jednaka ukupno 1 dana
dani u mesecu kada je temperatura bila jednaka u oba grada su:
23
Pod e
broj dana kada je temperatura u oba grada bila veca od temp. smrzavanja je:
16
To su sledeci dani:
7 8 9 13 14 15 16 17 18 19 20 23 24 25 26 27
Petlje
Petlje predstavljaju jo jedan nain da se upravlja tokom programa. U petlji se izvravanje komande
ili grupe komandi ponavlja vie puta zaredom. Svako izvravanje petlje zove se prolaz. U svakom prolazu se
barem jednoj promenljivoj dodeljuje nova vrednost. Matlab podrava dve vrste petlji: for-end, i while-end.
Petlje for-end
Izvravanje komandi se ponavlja zadati broj puta:
for k = f : s : t
...............
...............
end
k je indeksna promenljiva, f vrednost k u prvom prolazu, s korak poveanja nakon svakog prolaza, a t
vrednost indeksne promenljive u poslednjem koraku. Ime promenljive koje se koristi kao indeks moe biti
proizvoljno. Ako nije zadata vrednost s, podrazumeva se da je 1. Ako su k, s i t takvi da k ne moe biti
jednako t, poslednji prolaz e se izvriti kad k ima najveu vrednost manju od t. U komandi for se
promenljivoj k mogu dodeliti odreene vrednosti, npr. k=[7 9 -1 3 3 5]. Svakoj komandi for mora biti
pridruena komanda end. Vrednost promenljive k se ne dodeljuje automatski. Primer:
for k=1:3:10
x=k^2
end
Kada se pokrene program, petlja se izvrava 4 puta.
n
1 k
Primer: a) Pomou petlje for-end u skript datoteci izraunajte zbir prvih n lanova reda k k . Izvrite
k 1 2
datoteku za n=4 i n=20.
9
1 k x 2 k 1
2k 1!
k 0
Napiite korisniku funkciju koja izraunava sin(x) pomou Tejlorovog reda. Ime i argumenti funkcije neka
budu y=Tsin(x,n). Ulazni argumenti su ugao x, izraen u stepenima, i n, broj lanova reda. Upotrebite
funkciju da bi ste izraunali sin(150o) pomou reda od 3 i 7 lanova.
Reenje a)
%Izracunavanje sume reda pomocu for petlje
n=input('Upisite broj clanova');
S=0;
for k=1:n
S=S+(-1)^k*k/2^k;
end
fprintf('Zbir clanova reda je:%f',S)
Izvravanjem ove datoteke dobija se:
>> Petlja1
Upisite broj clanova4
Zbir clanova reda je:-0.125000
>> Petlja1
Upisite broj clanova20
Zbir clanova reda je:-0.222216
Reenje b)
function y=Tsin(x,n)
%funkcija izracunava sinus ugla pomocu Tejlorovog reda
% Ulazni argumenti: x-ugao u stepenima, n-broj clanova reda
xr=x*pi/180;
y=0;
for k=0:n-1
y=y+(-1)^k*xr^(2*k+1)/factorial(2*k+1);
end
Datoteku je najbolje zapamtiti pod imenom funkcije, i tako je pozivati iz komandnog prozora. Izvravanjem
se dobija:
>> Tsin(150,3)
ans =
0.6523
>> Tsin(150,7)
ans =
0.5000
Primer: Vektor je definisan na sledei nain: V=[5,17,-3,8,0,-1,12,15,20,-6,6,4,-7,16]. Napiite skript koji
udvostruuje vrednost pozitivnih elemenata deljivih sa 3 i 5, a podie na trei stepen vrednost negativnih
elemenata veih od -5.
V=[5 17 -3 8 0 -1 12 15 20 -6 6 4 -7 16];
n=length(V);
for k=1:n
if V(k)>0&(rem(V(k),3)==0|rem(V(k),5)==0)
V(k)=2*V(k);
elseif V(k)<0&V(k)>-5
V(k)=V(k)^3;
end
end
disp(V)
10
>> Primer8
10 17 -27
-1
24
30
40
-6
12
-7
16
Petlje while-end
Koriste se kada ukupan broj prolaza nije unapred poznat. Petlja se izvrava dok je ispunjen zadati
uslov. Struktura petlje:
while uslovni izraz
...............
...............
end
Ukolilko je uslovni izraz false, prelazi se na end i nastavlja izvravanje programa. Ukoliko je izraz true,
izvrava se grupa komandi izmeu while i end. Petlja se izvrava sve dok uslovni izraz ne dobije vrednost
false. Uslovni izraz mora sadrati barem jednu promenljivu. Promenljive u uslovnom iskazu moraju imati
poznate vrednosti kada se petlja prvi put izvrava. Komande izmeu while i end moraju dodeljivati novu
vrednost barem jednoj promenljivoj. Na primer:
x=1
while x <= 15
x=2*x
end
Mora se obezbediti da promenljiva u izrazu u nekom trenutku dobije vrednost false, inae e se petlja
izvravati beskonano. Takav sluaj se moe izbei brojanjem prolaza i prekidanjem petlje ukoliko ukupan
broj prolaza premai odreenu vrednost. Maksimalan broj prolaza se ugradi u uslovni izraz ili se upotrebi
komanda break.
Primer: Funkcija f(x)=ex moe se predstaviti u obliku Tejlorovog reda na sledei nain:
ex
n0
xn
n!
Napiite skript koji izraunava ex pomou Tejlorovog reda. Ovaj program sabira lanove reda, a zaustavlja se
kada apsolutna vrednost dodatog lana bude manja od 0,0001. Upotrebite petlju while-end, ali ograniite broj
prolaza ba 30. Ako u tridesetom prolazu dodati lan reda ne bude manji od 0,0001, program prekida petlju i
prikazuje poruku da je sabrano 30 lanova. Pomou napisanog programa izraunati e2, e-4, e21.
Reenje:
x=input('Upisite x');
n=1;an=1;S=an;
while abs(an)>=0.0001 & n<=30
an=x^n/factorial(n);
S=S+an;
n=n+1;
end
if n>=30
disp('Potrebno je vise od 30 clanova')
else
fprintf('exp(%f)=%f',x,S)
fprintf('\nBroj clanova je: %i',n)
end
>> Petlja2
Upisite x2
exp(2.000000)=7.389046
Broj clanova je: 12
>> Petlja2
11
Upisite x-4
exp(-4.000000)=0.018307
Broj clanova je: 18
>> Petlja2
Upisite x21
Potrebno je vise od 30 clanova
Ugnjedene petlje
Petlja ili izraz moe zapoeti unutar druge petlje ili izraza. Svaki iskaz if, case, for i while mora imati
odgovarajui end. Primer:
for k=1:n
for h=1:m
..........
..........
end
end
Primer: Napiite skript koji formira matricu nxm elemenata sledeih vrednosti: u prvoj vrsti, vrednost
elemenata se redni brojevi kolona; vrednost svakog elementa u prvoj koloni jednaka je rednosm broju vrste.
Vrednosti svih ostalih elemenata izraunavaju se tako to se tekuem elementu dodeli zbir vrednosti
elemenata iznad i levo od njega. Kada se pokrene, program zahteva vrednosti za m i n.
Reenje:
n=input('upisite broj vrsta ');
m=input('Upisite broj kolona ');
A=[];
for k=1:n
for h=1:m
if k==1
A(k,h)=h;
elseif h==1
A(k,h)=k;
else
A(k,h)=A(k,h-1)+A(k-1,h);
end
end
end
disp(A)
>> Petlja3
upisite broj vrsta 4
Upisite broj kolona 6
1 2 3 4 5 6
2 4 7 11 16 22
3 7 14 25 41 63
4 11 25 50 91 154
Komande break i continue
Kada se upotrebi unutar petlje, komanda break prekida izvravanje petlji. Prelazi se na komandu end
na kraju petlje i nastavlja izvravanje prve naredne komande. Ako se komanda nae unutar ugnjedene petlje,
prekida samo izvravanje ugljedene petlje. Ako se komanda nae izvan petlje u skript datoteci ili
funkcijskoj datoteci, prekida izvravanje cele datoteke.
12
Komanda continue moe se upotrebiti unutar petlje da bi se pri izvravanju petlje prekinuo tekui
prolaz i zapoeo naredni. Najee je deo uslovnog iskaza. Kada se naie na ovu komandu, ide se na
komandu end kraja petlje a zatim prelazi na nov prolaz.
Polinomi
Polinomi su matematiki izrazi koji se esto koriste za reavanje zadataka i modelovanje u prirodnim
i tehnikim naukama. U mnogim sluajevima, jednaina do koje se doe je polinom, a reenje zadatka je nula
polinoma. Polinomi imaju sledei oblik:
f(x)=anxn+an-1xn-1+...+a1x+a 0
Koeficijenti an, an-1,...,a1, a0 su realni brojevi, a n predstavlja stepen ili red polinima.
U Matlab-u se polinomi predstavljaju vektor vrstom iji su elementi koeficijenti. Prvi element je koeficijent
ispred x sa najviim stepenom. Vektor mora da sadri sve koeficijentr, ukljuujui i one jednake nuli. Na
primer:
8x+15
p=[8 15]
2x2 -4x + 10
p=[2 -4 10]
2
6x 150
p=[6 0 -150]
5x5 + 6x2 -7x
p=[5 0 0 6 -7 0]
Vrednost polinoma
Vrednost polinoma u taki x moe se izraunati pomou funkcije polyval:
polyval(p,x)
p je vektor koji sadri koeficijente polinoma, x je broj, promenljiva kojoj je dodeljena vrednost, ili izraz koji
se moe izraunati. Argument x moe biti i vektor ili matrica. U tom sluaju se vrednost polinoma izraunava
za svaki element, a rezultat je takoe vektor, ili matrica, koji sadre odgovarajue vrednosti polinoma.
Primer: Za polinom f(x)=x5 -12.1x4 + 40.59x3-17.015x2 -71.95x + 35.88 izraunajte
a) f(9)
b) Nacrtajte grafik polinoma za -1.5<=x<=6.7
Reenje:
a)
>> p=[1 -12.1 40.59 -17.015 -71.95 35.88];
>> polyval(p,9)
ans =
7.2611e+003
b)
>> x=-1.5:0.1:6.7;
>> y=polyval(p,x);
>> plot(x,y)
13
Reenja polinoma
To su vrednosti argumenta za koje je vrednost polinoma jednaka nuli, pa se esto zovu i nule
polinoma. Na primer, reenja polinoma f(x)=x2 - 2x 3 jesu vrednosti za koje je x 2 - 2x 3=0, a to su x=-1 i
x=3. U Matlab-u postoji funkcija roots koja izraunava reenja polinoma. Funkcija ima sledei oblik:
r=roots(p), gde je r vektor koji sadri reenja polinoma, a p vektor koji sadri koeficijente polinoma. Na
primer, reenja polinoma iz prethodnog primera su:
>> p=[1 -12.1 40.59 -17.015 -71.95 35.88];
>> r=roots(p)
r=
6.5000
4.0000
2.3000
-1.2000
0.5000
Kada su reenja poznata, ovaj polinom se moe napisati u sledeem obliku:
f(x)=(x+1.2)(x-0.5)(x-2.3)(x-4)(x-6.5)
Kada su reenja polinoma poznata, pomou komande poly mogu se izraunati koeficijenti polinoma.
Komanda ima sledei oblik:
p=poly(r), gde je p vektor sa koeficijentima polinoma, a r vektor sa reenjima polinoma. Koeficijenti
polinoma iz prethodnog primera mogu se izraunati na sledei nain:
>> r=[6.5 4 2.3 -1.2 0.5];
>> p=poly(r)
p=
1.0000 -12.1000 40.5900 -17.0150 -71.9500 35.8800
>> p=p1+p2
p=
3 15 0
-7
-3
13 -46
Dva polinoma se mnoe pomou Matlab-ove ugraene funkcije conv, koja ima sledei oblik:
c=conv(a,b), gde su, c vektor koeficijenata polinoma koji je rezultat operacije mnoenja, a i b su
vektori koeficijenata polinoma koji se mnoe. Polinomi ne moraju biti istog stepena. Za prethodni primer:
>> p1=[3 15 0 -10 -3 15 -40];
>> p2=[3 0 -2 -6];
>> pm=conv(p1,p2)
pm =
9 45 -6 -78 -99 65 -54 -12 -10 240
to znai da je odgovor:
9x9 + 45x8 6x7 78x6 99x5 + 65x4 -54x3 -12x2 -10x + 240
Polinom se moe podeliti drugim polinomom pomou Matlab-ove ugraene funkcije deconv, koja
ima sledei oblik:
[q,r] = deconv(u,v), gde je q vektor koeficijenata polinoma koji je kolinik deljenja, r je vektor
koeficijenata polinoma koji je ostatak deljenja, u je vektor koeficijenata polinoma koji predstavlja brojilac, u
vektor koeficijenata koji predstavlja imenilac.
Primer: podeliti polinome 2x6 -13x5 + 75x3 + 2x2 60 i x2 5:
>> w=[2 -13 0 75 2 0 -60];
>> z=[1 0 -5];
>> [g,h]=deconv(w,z)
g=
2 -13 10 10 52
h=
0 0 0 0 0 50 200
Kolinik je 2x4 13x3 + 10x2 + 10x + 52, a ostatak je (50x 200)/(x2 5).
Izvodi polinoma
Ugraena funkcija polyder moe se upotrebiti za izraunavanje izvoda jednog polinoma, proizvoda
dva polinoma i kolinika dva polinoma, ro pokazuju sledee tri komande:
k=polyder(p)
diferenciranje jednog polinoma, k predstavlja izvod polinoma p
k=polyder(a,b)
diferenciranje proizvoda dva polinoma, a i b su koeficijentoi vektora koji se mnoe
[n d]=polyder(u,v)
diferenciranje kolinika dva polinoma, u i v su koeficijenti polinoma brojioca i
imenioca, a n i d keoficijenti brojioca i imenioca izvoda
2
Na primer, f1(x)=3x 2x + 4 i f2(x)=x2 + 5
>> f1=[3 -2 4];
>> f2=[1 0 5];
>> k=polyder(f1)
k=
6 -2
>> d=polyder(f1,f2)
d=
12 -6 38 -10
>> [n d]=polyder(f1,f2)
n=
2 22 -10
d=
15
10
25
3x 2 2 x 4
2 x 2 22 x 10
je
.
x2 5
x 4 10 x 2 14
1
mx b
reciprona funkcija
Sve navedene funkcije mogu lako aproksimirati date podatke pomou funkcije polyfit. To se radi tako to se
funkcija napie u obliku linearnog polinoma (n=1), koji ima sledei oblik:
y=mx + b
16
Logaritamska funkcija ve ima taj oblik, dok se jednaine za stepenovanje, ili eksponencijalne i
reciprone jednaine mogu napisati u sledeem obliku:
ln(y)=mln(x) + ln(b)
stepena funkcija
ln(y)=mx + ln(b) ili log(y)=mx + log(b)
eksponencijalna funkcija
1/y=mx + b
reciprona funkcija
Pomou funkcije polyfit(x,y,1) mogu se izraunati konstante m i b koje omoguavaju najbolje
aproksimiranje ukoliko se, umesto x i y, upotrebe sledei argumenti:
stepena funkcija
y= bxm
p=polyfir(log(x),log(y),1)
eksponencijalna
y=bemx ili y=b10mx
p=polyfit(x,log(y),1) ili
p=polyfit(x,log10(y),1)
logaritamska
y=mln(x) + b ili
p=polyfit(log(x),y,1) ili
y=mlog(x) + b
p=polyfit(log10(x),y,1)
reciprona
y=
1
mx b
p=polyfit(x,1./y,1)
Rezultat funkcije polyfit dodeljuje se promenljivoj p, koja je vektor sa dva elementa. Prvi element,
p(1) je konstanta m, a drugi, p(2), je konstanta b za logaritamske i reciprone funkcije, ln(b) ili log(b) za
eksponencijalne, ili ln(b) za stepene funkcije (b=e p(2) ili b=10p(2) za eksponencijalne, odnosno b=ep(2) za
stepene funkcije). Za dati skup podataka moe se u izvesnoj meri predvideti koja vrsta funkcija ima najvie
mogunosti da obezbedi najbolje aproksimiranje. To se radi tako to se nacrtaju grafikoni podataka za vie
kombinacija linearnih i logaritamskih osa.
Interpoliranje
To je izraunavanje vrednosti izmeu dve poznate take. matlab ima interpolacione funkcije
zasnovane na polinomima, koje su opisane u ovom odeljku. U jednodimenzionalnom interpoliranju svakoj
taki odgovara jedna nezavisna (x) i jedna zavisna promenljiva (y). U dvodimenzionalnom interpoliranju
svakoj taki odgovaraju dve nezavisne (x i y) i jedna zavisna promenljiva (z).
Jednodimenzionalno interpoliranje
Ako postoje samo dve take koje predstavljaju podatke, one se mogu povezati pravom linijom, a
vrednosti izmeu njih se mogu izraunati pomou linearne jednaine (polinoma prvog stepena). to je vei
broj taaka, potreban je polinom veeg stepena koji prolazi kroz sve take. Meutim, takav polinom nee
uvek obezbediti dobru aproksimaciju podataka izmeu poznatih taaka. Bolje interpoliranje moe se postii
ako se umesto svih taaka iz skupa podataka u obzir uzme samo nekoliko taaka u blizini mesta gde je
potrebno interpoliranje.Takva metoda, poznata kao interpoliranje splajnom, koristi vie polinoma niskog
stepena, a svaki vai samo u ogranienom domenu skupa podataka. Najjednostavniji nain je linearno
interpoliranje, gde linija izmeu taaka ima konstantan nagib, koji se menja u svakoj taki. Zaobljena kriva
interpolacije moe se dobiti pomou kvadratnih i kubnih polinoma-kvadratni i kubni splajn-vrednosti izmeu
svake dve take interpoliraju se pomou polinoma drugog ili treeg stepena. Koeficijenti tih polinoma
odreuju se na osnovu podataka iz dodatnih taaka u blizini dve poetne take.
U Matlab-u se jednodimenzionalno interpoliranje moe obaviti pomou funkcije interp1, koja ima
sledei oblik:
yi=interp1(x,y,xi,metoda)
gde su: yi interpolirana vrednost; x je vektor s horizontalnim koordinatama taaka; y je vektor s vertikalnim
koordinatama taaka; xi je horizontalna koordinata take koja se interpolira (nezavisna promenljiva); metoda
interpoliranja je upisana kao tekst i nije obavezan podatak.
Vektor x mora biti monoton (vrednosti elemenata se ravnomerno menjaju rastuim ili opadajuim
redosledom)
xi moe biti skalarna vrednost ili vektor, pa e i y biti skalarna ili vektorska vrednost
Metode:
- nearest vraa kordinatu take koja je najblia taki u kojoj se interpolira
17
- linear
- spline
- pchip
Trodimenzionalni grafikoni
Koriste se kada treba predstaviti podatke koji zavise od vie od dve promenljive. Trodimenzionalni
grafikoni mogu biti linijski, iani, povrinski, mreasti itd.
Linijski grafikoni
To je linija dobijena povezivanjem taaka u dvodimenzionalnom prostoru. Osnovni 3D grafikon crta
se pomou komande plot3 koja ima sledei oblik:
plot3(x,y,z,oznake linije,ImeSvojstva,vrednost svojstva)
19
gde su x,y,i,z vektori koordinata taaka, moraju imati jednak broj taaka. Oznake linija, svojstva i vrednosti
svojstava su isti kao i zadvodimenzionalne grafikone. Na primer, ako su koordinate x,y,i z date u funkciji
parametra t sledeim formulama:
x=sqrt(t)sin(2t); y=sqrt(t)cos(2t); z=0.5t
grafikon taaka za 0<=t<=6Pi moe se nacrtati pomou sledee skript datoteke:
t=0:0.1:6*pi;
x=sqrt(t).*sin(2*t);
y=sqrt(t).*cos(2*t);
z=0.5*t;
plot3(x,y,z,'k','linewidth',1)
grid on
0 1
0 1
0 1
0 1
2
2
2
3
, Y=
3
3
2
1
3
2
1
3
2
1
3
2
1
3
.
2
U Matlab-u postoji ugraena funkcija meshgrid koja omoguava formiranje matrica X i Y i ima sledei oblik:
[X,Y]=meshgrid(x,y)
U vektorima x i y prvi i poslednji element su granice domena. Gustinu reetke odreuje broj elemenata tih
vektora. Matrice reetke X i Y koje su gore navedene odgovaraju sledeim komandama:
>> x=-1:3;
20
>> y=1:4;
>> [X,Y]=meshgrid(x,y)
Izraunavanje vrednosti z u svakoj taki reetke
Vrednost z se izraunava u svakoj taki reetke element po element, isto kao kada se radi sa
vektorima. Kada su nezavisne promenljive x i y matrice, (moraju biti jednakih dimenzija), izraunata zavisna
promenljiva je takoe matrica iste veliine. Vrednost z na svakoj adresi izraunava se na osnovu
odgovarajuih vrednosti x i y. Na primer, ako je z dato formulom:
z
xy 2
x2 y2
nain:
>>Z=X.*Y.^2./(X.^2+Z.^2)
Crtanje mreastih ili povrinskih grafikona
Crtaju se pomou sledeih komandi:
mesh(X,Y,Z) ili surf(X,Y,Z)
gde su X i Y matrice koordinata reetke, a Z matrica vrednosti zavisne promenljive z u takama reetke.
Mreasti grafikon se sastoji od linija koje povezuju take. Na povrinskom grafikonu, oblasti izmeu linija
mree ispunjene su bojom. Na primer, crtanje mreastog grafikona funkcije z
1<=y<=4:
x=-1:0.1:3;
y=1:0.1:4;
[X,Y]=meshgrid(x,y);
Z=X.*Y.^2./(X.^2+Y.^2);
mesh(X,Y,Z)
xy 2
za -1<=x<=3 i
x2 y2
x=-1:0.1:3;
y=1:0.1:4;
[X,Y]=meshgrid(x,y);
Z=X.*Y.^2./(X.^2+Y.^2);
surf(X,Y,Z)
x2 y 2
21
x=-3:0.25:3;
y=-3:0.25:3;
[X,Y]=meshgrid(x,y);
Z=1.8.^(1.5*sqrt(X.^2+Y.^2)).*sin(X).*cos(0.5*Y);
surf(X,Y,Z)
x=-3:0.25:3;
y=-3:0.25:3;
[X,Y]=meshgrid(x,y);
Z=1.8.^(1.5*sqrt(X.^2+Y.^2)).*sin(X).*cos(0.5*Y);
meshz(X,Y,Z)
x=-3:0.25:3;
y=-3:0.25:3;
[X,Y]=meshgrid(x,y);
Z=1.8.^(1.5*sqrt(X.^2+Y.^2)).*sin(X).*cos(0.5*Y);
meshc(X,Y,Z)
x=-3:0.25:3;
y=-3:0.25:3;
[X,Y]=meshgrid(x,y);
Z=1.8.^(1.5*sqrt(X.^2+Y.^2)).*sin(X).*cos(0.5*Y);
surfc(X,Y,Z)
x=-3:0.25:3;
y=-3:0.25:3;
[X,Y]=meshgrid(x,y);
22
Z=1.8.^(1.5*sqrt(X.^2+Y.^2)).*sin(X).*cos(0.5*Y);
waterfall(X,Y,Z)
x=-3:0.25:3;
y=-3:0.25:3;
[X,Y]=meshgrid(x,y);
Z=1.8.^(1.5*sqrt(X.^2+Y.^2)).*sin(X).*cos(0.5*Y);
contour3(X,Y,Z)
Specijalni grafikoni
U Matlab-u postoje funkcije za izradu razbih vrsta trodimenzionalnih grafikona sa specijalnim
efektima. Prikazaemo neke od njih:
sphere(20)-vraa x,y i z koordinate jedinine sfere
t=linspace(0,pi,20);
sa 20 povrina:
r=1+sin(t);
[X,Y,Z]=cylinder(r);
surf(X,Y,Z)
Y=[1 6.5 7;2 6 7;3 5.5 7;4 5 7;3 4 7;2 3 7;1 2 7];
bar3(Y)
23
t=0:0.2:10;
x=t;
y=sin(t);
z=t.^1.5;
stem3(x,y,z,'fill')
grid on
t=0:0.4:10;
x=t;
y=sin(t);
z=t.^1.5;
scatter3(x,y,z,'fill')
grid on
colormap([0.1 0.1 0.1])
X=[5 9 14 20];
explode=[0 0 1 0];
pie3(X,explode)
(explode je vektor u kome jedinica oznaava da
iseak treba da bude odvojen u odnosu na centar
kruga)
24
25
a= f ( x ) dx
a
Funkcija f(x) je podintegralna funkcija, a brojevi a i b su granice integrala. Na grafiku funkcije, vrednost
integrala je povrina izmeu krive funkcije, ose x i granica a i b. Kada se odreeni integral izraunava
analitiki, f(x) je uvek funkcija. U numerikom integraljenju, ukupna povrina se izraunava tako to se
povrina podeli na male iseke, izrauna povrina svakog iseka, a zatim dobijene vrednosti saberu. Matlab
ima ugraene funkcije za integraljenje: quad, quad1 i trapz. Prve dve komande koriste se kad je f(x) funkcija,
a trapz kad je f(x) data u obliku taaka.
Komanda quad
q=quad(funkcija,a,b)
Funkcija se unosi u obliku znakovnog niza. Funkcija se mora napisati za argument x koji je vektor, tako da
komanda quad izraunava vrednost funkcije za svaki element vektora x.
Komanda quad1
q=quad1(funkcija,a,b)
Sve navedeno za komandu quad vai i za quad1. Komande se razlikuju samo po numerikoj metodi koja se
koristi za izraunavanje vrednosti integrala.
Primer: izraunajte sledei integral primenom numerike integracije:
8
( xe
x 0.8
0.2) dx
>> quad('x.*exp(-x.^0.8)+0.2',0,8)
ans =
3.1604
26
Komanda trapz
Oblik komande je sledei:
q=trapz(x,y)
gde su x i y vektori x koordinata, odnosno y koordinata taaka. Vektori moraju biti iste duine.
Obine diferencijalne jednaine
Diferencijalne jednaine imaju kljunu ulogu u nauci i tehnici. Vrlo mali broj diferencijalnih
jednaina se moe reiti analitiki, dok se numeriki moe nai reenje svake jednaine. Matlab ima veliku
biblioteku alatki koje se mogu upotrebiti za reavanje diferencijalnih jednaina. Korisnik mora da poznaje
diferencijalne jednaine i razne numerike metode za njihovo reavanje.
Obina diferencijalna jednaina sadri nezavisnu promenljivu, zavisnu promenljivu i izvode zavisne
promenljive. Razmotriemo jednaine oblika
dy
f ( x, y ) , gde je x nezavisna promenljiva, a y zavisna
dx
promenljiva. reenje je funkcija y=f(x) koja ispunjava uslove jednaine. Poto vie funkcija moe ispunjavati
uslova date jednainom, za reavanje zadatka potrebni su dodatni podaci. Oni predstavljaju vrednost funkcije
za odreenu vrednost nezavisne promenljive.
Postupak reavanja obine diferencijalne jednaine prvog reda
Koristiemo vreme t kao nezavisnu promenljivu.
Korak 1. Napisati zadatak u standardnom obliku
dy
f (t , y ) za to<=t<=tf uz y=yo i t=to
dx
dy t 3 2 y
Primer za reavanje:
za 1<=t<=3, uz y=4.2 u t=1
dt
t
ime_dat
ime funkcijske datoteke uneto u znakovnom nizu koja izraunava dy/dt za date
vrednosti t i y
topseg
vektor koji zadaje interval reenja. Mora imati najmanje dva elementa, moe i vie.
Ako su dva, to moraju biti [to tf], odnosno poetna i zavrna taka intervala reenja.
yo
Poetna vrednost y
[t,y]
Rezultat komande, odnosno reenje jednaine. t i y su vektori. Prvi i poslednji element
su koordinate poetne i zavrne take intervala. Broj taaka i razmak zavise od
ulaznog vektora topseg. Ako topseg ima samo dva elementa, vektori t i y sadre
reenje za svaki korak integraljenja. Ako topseg ima vie od dva elementa, vektori t i y
sadre reenja samo u tim takama.
Na primer, reenje zadatka navedenog u koraki 1 moe se dobiti na sledei nain:
>> [t,y]=ode45('ODJpr1',[1:0.5:3],4.2)
t=
1.0000
1.5000
2.0000
2.5000
3.0000
y=
4.2000
2.4528
2.6000
3.7650
5.8444
Evo jo jednog reenja: vektoru topseg zadajemo manje korake, a zatim crtamo krivu reenja pomou plot:
>> [t,y]=ode45('ODJpr1',[1:0.01:3],4.2);
>> plot(t,y)
>> xlabel('t'),ylabel('y')
28
>> k=sym(5);m=sym(7);
>> p=k/m+h
p=
85/21
Simboliki objekat S, napisan u tanom obliku, moe se pomou komande double(S) pretvoriti u numeriki
oblik:
>> pn=double(p)
pn =
4.0476
>> y=sym(10)*cos(5*pi/6)
y=
-5*3^(1/2)
>> yn=double(y)
yn =
-8.6603
Simboliki objekat se moe napraviti i zadavanjem simbolikog izraza sastavljanog od promenljivih koje
nisu prethodno definisane kao simboliki objekti:
>> f=sym('a*x^2+b*x+c')
f=
a*x^2+b*x+c
Postojei simboliki izrazi mogu se koristiti za sastavljanje novih simbolikih izraza. To se radi tako to se
ime postojeeg izraza upotrebi u novim izrazu:
>> syms x y
>> SA=x+y;SB=x-y
>> SA=x+y,SB=x-y
SA =
x+y
SB =
x-y
>> F=SA^2/SB^3+x^2
F=
(x+y)^2/(x-y)^3+x^2
Komanda findsym
Ova komanda omoguava da se utvrdi koje su sve simbolike promenljive sadrane u postojeem
simbolikom izrazu. Format komande:
findsym(S) ili findsym(S,n)
Komanda prikazuje abecednim redom imena svih simbolikih promenljivih sadranih u izrazu S. Drugi oblik
komande prikazuje podrazumevanim redosledom imena n simbolikih promenljivih u izrazu S.
Podrazumevani redosled poinje od x. Podrazumevana simbolika promenljiva u izrazu S moe se utvrditi
pomou komande findsyim(S,1). Primeri:
>> syms x h w y d t
>> S=h*x^2+d*y^2+t*w^2
S=
h*x^2+d*y^2+t*w^2
>> findsym(S)
ans =
d, h, t, w, x, y
>> findsym(S,5)
ans =
x,y,w,t,h
30
>> findsym(S,1)
ans =
x
Komanda Collect
Ova komanda grupie i sabira lanove izraza koji sadre promenljive s jednakim izloiocem. U
novom izrazu, ti elementi e biti poreani opadajuim redosledom izloioca. Komanda ima sledee oblike:
collect(S)
collect(S,ime_promenljive)
Prvi oblik je najpogodniji za izraze koji sadre samo jednu simboliku promenljivu. Ako sadre vie, Matlab
e najpre grupisati elemente koji sadre prvu promenljivu, zatim elemente koji sadre drugu itd. Korisnik
moe da zada prvu promenljivu pomou drugog oblika komande. Primeri:
>> syms x y
>> S=(x^2+x-exp(x))*(x+3)
S=
(x^2+x-exp(x))*(x+3)
>> F=collect(S)
F=
x^3+4*x^2+(-exp(x)+3)*x-3*exp(x)
>> T=(2*x^2+y^2)*(x+y^2+3)
T=
(2*x^2+y^2)*(x+y^2+3)
>> G=collect(T)
G=
2*x^3+(2*y^2+6)*x^2+y^2*x+y^2*(y^2+3)
>> H=collect(T,y)
H=
y^4+(2*x^2+x+3)*y^2+2*x^2*(x+3)
Komanda expand
Ona razvija izraze na dva naina: meusobno mnoi lanove koji sadre operacije sabiranja i
oduzimanja, i primenjuje trigonometrijske, eksponencijalne i logaritamske formule i pravila na lanove koji
sadre operacije sabiranja i oduzimanja. Komanda ima oblik:
expand(S)
Primeri:
>> syms a x y
>> S=(x+5)*(x-a)*(x+4)
S=
(x+5)*(x-a)*(x+4)
>> T=expand(S)
T=
x^3+9*x^2-x^2*a-9*x*a+20*x-20*a
>> expand(sin(x-y))
ans =
sin(x)*cos(y)-cos(x)*sin(y)
Komanda factor
Pretvara izraz polinomskog tipa u proizvod polinoma nieg stepena. Komanda ima oblik:
factor(S)
Primer:
>> syms x
>> S=x^3+4*x^2-11x-30
>> S=x^3+4*x^2-11*x-30
S=
31
x^3+4*x^2-11*x-30
>> factor(S)
(x-3)*(x+5)*(x+2)
Komanda simplify
Koristi matematike operacije (sabiranje, oduzimanje, mnoenje, pravila za razlomke, stepenovanje,
logaritme itd.) i funkcijske i trigonometrijske formule da bi generisala uproen oblik izvornog izraza. Oblik
komande:
simplify(S)
Primeri:
>> syms x y
>> S=x*(x*(x-8)+10)-5
S=
x*(x*(x-8)+10)-5
>> SA=simplify(S)
SA =
x^3-8*x^2+10*x-5
>> simplify((x+y)/(1/x+1/y))
ans =
x*y
Komanda simple
Pronalazi oblik izraza koji sadri najmanji mogui broj znakova. Kada korsnik zada tu komandu,
Matlab formira vie verzija izraza tako to primenjuje komande collect, expand, factor i simplify. Potom
program vraa najkrai oblik izraza. Komanda ima tri mogua oblika:
F=simple(S) simple(S)
[F how]=simple(S)
U prvom obliku, promenljivoj F se dodeljuje najkrai oblik izvornog izraza S; U drugom obliku prikazuju se
svi pokuaji uproavanja izraza. Najkrai se dodeljuje promenljivoj ans; U treem obliku promenljivoj F se
dodeljuje najkrai mogui oblik izvornog izraza S. Ime metode uproavanja dodeljuje se promenljivoj how.
Primeri:
>> syms x
>> S=(x^3-4*x^2+16*x)/(x^3+64)
S=
(x^3-4*x^2+16*x)/(x^3+64)
>> F=simple(S)
F=
x/(x+4)
>> [G how]=simple(S)
G=
x/(x+4)
how =
factor
Komanda pretty
Prikazuje simboliki izraz u formatu slinom matematikom formatu u kojem se obino piu
matematiki izrazi. Komanda ima oblik:
pretty(S)
Primer:
>> syms a b c x
>> S=sqrt(a*x^2+bx+c)
>> S=sqrt(a*x^2+b*x+c)
S=
(a*x^2+b*x+c)^(1/2)
32
>> pretty(S)
2
1/2
(a x + b x + c)
33