You are on page 1of 67

Uvod u programski sustav

MATLAB

1
Cilj
n Upoznavanje s osnovama rada u MATLABU
n Organizacija i struktura podataka
n Aritmetike i logike operacije
n Grafovi i prikazi krivulja
n Programiranje u Matlabu
n MATLAB Symbolic toolbox
n Simulink

2
Organizacija predmeta
n Predavanja
n 4 h - upoznavanje s osnovnim mogunostima
Matlaba
n Laboratorijske vjebe
n 4 x 2h etiri cjeline vjebi
n Materijali, rasporedi i sve dodatne obavijesti
nalaze se na:
n http://www.fer.hr/predmet/matlab

3
Literatura
n Knjiga

4
Sadraj
n Uvod
n Pokretanje i organizacija MATLABA
n Varijable
n Operacije
n Funkcije
n Grafike funkcije

5
Uvod
n MATLAB =MATrix LABoratory
n Mathworks Inc.
n Svojstva
n Matrini kalkulator interpreterskog tipa
n Grupiranje naredbi u skripte i funkcije
n Otvorenost razvoj toolboxova
n Testiranje algoritama u stvarnom vremenu

6
Pokretanje Matlaba
n Ikonom na desktopu

n Izbornik (StartPrograms-
Matlab-Matlab)

n Upisom naredbe matlab u


run prozor unutar START
izbornika

7
Osnovne komponente MATLAB
okruenja
Novi m-file Simulink
(m-file editor/debugger)

Trenutni direktorij

Command History Matlab komandni prozor

8
Naredbe pomoi i izlaza
n help
n lookfor
n Izlaz iz MATLABA
n quit
n File Exit
n Zatvaranje osnovnog prozora MATLABA
n MATLAB razlikuje mala i velika slova

9
Naredbe pomoi i izlaza
>> lookfor label
lookfor PLOTYY Graphs with y tick labels on the left and right.
TEXLABEL Produces the TeX format from a character string.
XLABEL X-axis label.
YLABEL Y-axis label.
ZLABEL Z-axis label.
CLABEL Contour plot elevation labels.

help >> help xlabel


XLABEL X-axis label.
XLABEL('text') adds text beside the X-axis on the current axis.

XLABEL('text','Property1',PropertyValue1,'Property2',PropertyValue2,...)
sets the values of the specified properties of the xlabel.

H = XLABEL(...) returns the handle to the text object used as the label.

See also YLABEL, ZLABEL, TITLE, TEXT.

10
Naredbe pomoi i izlaza

11
Funkcionalna struktura MATLABA

Hard disk

Memorijski prostor Matematika


WORKSPACE ljuska Matlaba

Grafiko
suelje

12
Varijable
n Prema sadraju elemenata n Prema vidljivosti na
matrice n Lokalne
n Realne n Globalne
n Kompleksne
n Simbolike n Prema izvoru nastanka:
n Polja cell-ova n Interne
n Strukture n Eksterne

13
Interne varijable
n eps=2.2204e-16
n tonost realnih brojeva(razlika izmeu 1.0 i prvog veeg)
n realmin=2.2250733858507202e-308
n vrijednost najmanjeg realnog broja
n realmax=1.797697134862316e+308
n vrijednost najveeg realnog broja
n pi=3. 14159265358979
n vrijednost broja
n Inf (Infinity, npr. 1/0)
n NaN (Not a Number, npr. 0/0)
n i,j imaginarna jedinica kompleksnih brojeva
14
Eksterne varijable
n Ime varijable
n 19 alfanumerikih znakova
n Slova engleske abecede, brojke i _ (underscore)
n Ime uvijek poinje slovom
n Definiranje varijabli
>>b=[1;2;3+4j] >> c=[1 2 3;2 2 1;3 2 5]

b = c =

1.0000 1 2 3
2.0000 2 2 1
3.0000 + 4.0000i 3 2 5

15
Definiranje niza brojeva
n d1=[var_min:prirast:var_max]
n d2=[var_min:var_max]
n d3=linspace(min,max,br_toc)
n d4=logspace(n1,n2,br_toc)
>> d1=[0:0.5:3]

d1 =

0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000

>> d2=linspace(1,-1,5)

d2 =

1.0000 0.5000 0 -0.5000 -1.0000

16
Ekstrakcija dijela matrice
n ime_var(n1:n2,m1:m2)
>> A(:,1)
>> A(2:3,2:3)
ans =
ans =
1
3 6 1
A = 6 8 3

1 4 2
3 6 1
6 8 3 >> A(end,1:end)
>> A(1,3)

ans = ans =

2 6 8 3

17
Ekstrakcija dijela matrice
n Odreivanje dimenzije matrice
n [m,n]=size(A); >> A(:,1) >> A(2:m,2:n)

ans = ans =

1 6 1
A = 3 8 3
6
1 4 2
3 6 1
6 8 3 >> A(end,1:end)
>> A(1,n)

ans = ans =

2 6 8 3

18
Strukture i polja cell-ova
n Omoguuju grupiranje podataka razliitih tipova i
dimenzija u jednu cjelinu
>> T={'Tlak',2,[1.2 1.25 1.1 1 1.2]} Mjerenje=struct('Name','Tlak','Ts',2,'data',[1.2
T= 1.25 1.1 1 1.2])
'Tlak' [2] [1x5 double] Mjerenje =
Name: 'Tlak'
Ts: 2
data: [1.2000 1.2500 1.1000 1 1.2000]

>> T{3} >> Mjerenje.data


ans = ans =
1.20 1.25 1.10 1.00 1.20 1.2000 1.2500 1.1000 1.0000 1.2000
>> T{3}(2) >> Mjerenje.data(2)
ans = ans =
1.2500 1.2500

19
Brisanje varijabli
n clear brie sve varijable iz workspace-a
n clear a b c brie varijable a, b i c iz workspace-a
n clear global brie globalne varijable iz
workspace-a
n clear d*
n Brisanje pomou prozora workspace-a

20
Spremanje varijabli na disk
n Spremanje i uitavanje varijabli
n save ime_datoteke
n save ime_datoteke var1 var2 var3
n save ime_datoteke var1 var2 var3 ascii
n load ime_datoteke
n Naredbe operacijskog sustava
n pwd, cd, what, delete, type
n !naredba proslijeivanje naredbe operacijskom

sustavu
21
Operacije MATLABA
n Aritmetiki operatori
n Relacijski operatori
n Logiki operatori
n Naredbe odluke i ponavljanja
n Funkcije

22
Aritmetiki operatori
Prioritet Operator Opis

1 () Grupiranje i prioritet
2 Konjugiranje i transponiranje
. Transponiranje
3 ^ Potenciranje
.^ Pojedinano potenciranje elemenata
4 * Matrino mnoenje
.* Mnoenje meu elementima matrica
/ Desno dijeljenje (X/Y=X*Y-1)
\ Lijevo dijeljenje (X\Y=X-1*Y)
./ Dijeljenje meu elementima matrica
5 + Zbrajanje
- Oduzimanje

23
Aritmetiki operatori-primjer
>> A=[1+i 2; 4 3+2i]

A =
1.0000 + 1.0000i 2.0000
4.0000 3.0000 + 2.0000i

>> B=A'
B =
1.0000 - 1.0000i 4.0000
2.0000 3.0000 - 2.0000i

>> C=A.'
C =
1.0000 + 1.0000i 4.0000
2.0000 3.0000 + 2.0000i

24
Aritmetiki operatori -primjer
1 + i 2
A=
4 3 + 2i

>> B=A^2

1 + i 2 1 + i 2 B =
B=

4 3 + 2i 4 3 + 2i 8.0000 + 2.0000i 8.0000 + 6.0000i
16.0000 +12.0000i 13.0000 +12.0000i

>> B=A.^2

(1 + i )2 B =
22
B=
(3 + 2i )
2 0 + 2.0000i 4.0000
42
16.0000 5.0000 +12.0000i

25
Aritmetiki operatori - primjer
>> A*B
1 2
A=
ans =

4 3 5 4
15 6

3 0 >> A.*B

B= ans =
1 2 3 0
4 6

26
Aritmetiki operatori - primjer
n Sustav lin. jednadbi >> X=A\B

2 2 3 x 9 X =
1 1 1 y = 0 1.0000
2.0000
3 1 2 z 7 1.0000

Poddeterminiran sustav >> X=A(1:2,:)\B(1:2)


X =
(npr. zadane samo prve dvije jednadbe) 0
1.8000
1.8000

Ukoliko je sustav predeterminiran tada X=A\B daje


least square rjeenje

27
Relacijski operatori
n Kao rezultat operacije se dobiva logika vrijednost
(0 ili 1)
Operator Opis Primjer
< Manje a<b
<= Manje ili jednako a<=b
> Vee a>b
>= Vee ili jednako a>=b
== Jednako a==b
~= Razliito a~=b
28
Relacijski operatori - primjer
>> A>=B

ans =
1 3 2 0 1 0
A=
1 1 1

2 5 4 >> A>2

ans =
0 1 0
0 1 1
6 3 3
B=
>> A~=B

1 5 2 ans =

1 0 1
1 0 1

29
Logiki operatori

Operator Opis Primjer

& Logiko I A&B

| Logiko ILI A|B

~ Logiki komplement ~A

xor Logiko ekskluzivno ILI xor(A,B)

30
Logiki operatori - primjer
>> A>2&B<3

1 3 2 ans =
A=
0
0
0
0
0
1
2 5 4
>> ~(A<3)

ans =

6 3 3 0
0
1
1
0
1
B=
1 5 2 >> A&A>2

ans =
0 1 0
0 1 1

31
Naredbe odluke i ponavljanja
n if naredba
SINTAKSA PRIMJER

if a>b&a<3
if logicki_izraz
a=0;
naredbe;
end;
elseif logicki_izraz
if a>b&a<3
naredbe;
a=0;
else
elseif a>c
naredbe; a=1;
end end;

32
Naredbe odluke i ponavljanja
for petlja PRIMJER
SINTAKSA for i=1:10
for varijabla=izraz for j=1:2:6

naredbe; a(i,j)=i+j;
end;
end
end;
while petlja
while i>1
while logicki_izraz
a(i)=5*i
naredbe; i=i-2;
end end;

33
Funkcije
n Vrste funkcija
n Interne funkcije
n Funkcije unutar toolboxova
n Funkcije definirane od strane korisnika
n Pozivanje funkcije
n ime_funkcije(arg1,arg2,...,argn);
n Kako bi se funkcija mogla pozvati potrebno je da se ona nalazi
u trenutnom direktoriju ili u nekom od direktorija koji su
dodani u stazu (path)
n Direktoriji u kojima se nalaze interne i toolbox funkcije su
automatski dodane u stazu kod instalacije
n Direktoriji s korisnikim funkcijama se dodaju pomou
naredbe addpath mydir;
34
Podjela funkcija
n Elementarne matematike funkcije
n Trigonometrijske i ciklometrijske funkcije
n Logaritamske i hiperbolne funkcije
n Ostale funkcije
n Funkcije za obradu vektora i matrica
n Funkcije za rad s polinomima
n M funkcije

35
Trigonometrijske funkcije
Funkcija Opis
y=sin(x) Sinus funkcija kuta u radijanima
y=cos(x) Cosinus funkcija kuta u radijanima
y=tan(x) Tangens funkcija kuta u radijanima
y=asin(x) Arcus sinus funkcija
y=acos(x) Arcus cosinus funkcija
y=atan(x) Arcus tangens funkcija
phi=atan2(x,y) Arcus tangens funkcija definirana u 4 kvadranta

36
Logaritamske i hiperbolne funkcije
Funkcija Opis
y=exp(x) Eksponencijalna funkcija s bazom e
y=log(x) Logaritamska funkcija s bazom e
y=log10(x) Logaritamska funkcija s bazom 10
y=sinh(x) Funkcija sinus hiperbolni
y=cosh(x) Funkcija cosinus hiperbolni
y=tanh(x) Funkcija tangens hiperbolni
y=asinh(x) Funkcija arcus sinus hiperbolni
y=acosh(x) Funkcija arcus cosinus hiperbolni
y=atanh(x) Funkcija arcus tangens hiperbolni
37
Ostale aritmetike funkcije
Funkcija Opis
y=abs(x) Apsolutna vrijednost broja x

y=sign(x) Funkcija predznaka (signum funkcija)

y=round(x) Zaokruivanje prema najbliem cijelom broju

y=ceil(x) Zaokruivanje prema najbliem cijelom broju u smjeru +

y=floor(x) Zaokruivanje prema najbliem cijelom broju u smjeru -

y=angle(x) Kut kompleksnog broja (u radijanima)

y=real(x) Realni dio kompleksnog broja

y=imag(x) Imaginarni dio kompleksnog broja

y=conj(x) Konjugirano kompleksna vrijednost broja x

y=sqrt(x) Kvadratni korijen broja x

38
Funkcije za obradu vektora i matrica
n Definiranje matrica
Funkcija Opis
y=zeros(m)
Matrica iji su svi elementi jednaki nula
y=zeros(m,n)
y=ones(m)
Matrica iji su svi elementi jednaki jedinici
y=ones(m,n)
y=eye(m), y=eye(m,n) Jedinina matrica
y=rand(m) Matrica sluajnih vrijednosti na [-1,1] s
y=rand(m,n) uniformnom razdiobom
y=randn(m) Matrica sluajnih vrijednosti na [-1,1]
y=randn(m,n) s normalnom razdiobom
39
Funkcije za obradu vektora i matrica
n Relacijske i logike funkcije
Funkcija Opis
y=any(x) Funkcija vraa logiku jedinicu ako je barem jedan lan
vektora razliit od nule
y=all(x) Funkcija vraa logiku jedinicu ako su svi lanovi vektora
razliiti od nule
y=find(log_izraz) Vraa indekse onih lanova vektora koji zadovoljavaju logiki
izraz
y=isnan(x) Vraa matricu istih dimenzija kao ulazna matrica x s tim da
na mjestima gdje matrica x ima vrijednosti NaN, Inf ili
y=isinf(x) konanu vrijednost vraa logiku jedinicu.
y=finite(x)
y=isempty(x) Vraa logiku jedinicu ukoliko je x prazna matrica tj. ukoliko
ima dimeziju 0x0
40
Funkcije za obradu vektora i matrica
Funkcija Opis
y=min(x) Minimum vektora x

y=max(x) Maksimum vektora x

y=mean(x) Srednja vrijednost vektora x

y=median(x) Median vektora x

y=std(x) Standardna devijacija vektora x

y=sum(x) Suma elemenata vektora

y=cumsum(x) Kumulativna suma elemenata vektora y=[x1, x1+x2,x1+x2+x3,...]


y=diff(x) Vektor razlike susjednih elemenata y(i)=x(i+1)-x(i)
y=prod(x) Produkt elemenata vektora

y=cumprod(x) Kumulativni produkt elemenata vektora

y=sort(x) Sortira lanove vektora po rastuem redu

41
Funkcije za obradu vektora i matrica
Funkcija Opis
y=trace(x) Trag matrice x (Suma elemenata glavne dijagonale)

y=rank(x) Rang matrice x (Broj lin. nezavisnih redaka/stupaca )

y=det(x) Determinanta matrice x

y=eig(x) Karakteristine vrijednosti matrice x (det(I-x)=0)

y=poly(x) Karakteristini polinom matrice x (det(I-x))

y=diag(x) Vraa vektor koji sadri elemente glavne dijagonale matrice x

y=inv(x) Inverzna matrica kvadratne matrice x

y=rot90(x) Rotacija matrice za 90 stupnjeva

y=fliprl(x) Zrcalna zamjena stupaca matrice

y=flipud(x) Zrcalna zamjena redaka matrice

42
Funkcije za obradu stringova

Funkcija Opis
s=blanks(n) Vraa string koji se sastoji od n praznih mjesta

s=strfind(s1,s2) Pronalazi string s2 unutar stringa s1 i vraa indekse gdje


zapoinju stringovi s2
s=isstr(s1) Vraa logiku jedinicu ukoliko je s1 string

s=lower(s1) Sva slova u stringu s1 pretvara u mala slova

s=upper(s1) Sva slova u stringu s1 pretvara u velika slova

s=strcat(s1,s2,s3) Spaja stringove s1,s2 i s3 u jedna string

s=num2str(x) Pretvara numeriku vrijednost u string

43
Funkcije za rad s polinomima
n Polinomi se u Matlabu predstavljaju s vektorima koji
sadravaju koeficijente uz pojedine potencije varijable
x
n Primjer
4 2
Polinom: P(x)=x -x +2x
Matlab: P=[1 0 -1 2 0]

44
Funkcije za rad s polinomima
Funkcija Opis
x=roots(P) Korijeni polinoma P
Vraa polinom na temelju korijena
P=poly(x)
polinoma
R=conv(P,Q) Mnoenje polinoma P i Q
Dijeljenje polinoma P/Q (R je rezultat
[R,S]=deconv(P,Q)
dijeljenja a S ostatak)
Q=polyder(P) Derivacija polinoma P
Metodom najmanjih kvadrata raunaju se
P=polyfit(x,y,n)
koeficijenti polinoma P(x) n-tog reda

45
Funkcije za rad s polinomima-primjer
P(x)=x3-5x2+8x-6 >> P=[1 -5 8 -6]; P(x)
>> Q=[1 -4 3]; Q(x)
Q(x)=x2-4x+3
>> R=conv(P,Q)
>> R=roots(P) R= P(x)Q(x)
R= 1 -9 31 -53 48 -18
3.0000
1.0000 + 1.0000i >> R=polyder(P)
1.0000 - 1.0000i R= P(x)
3 -10 8
>> P=poly(R)
P= >> [R,S]=deconv(P,Q)
1.0000 -5.0000 8.0000 -6.0000 R=
1 -1 P(x)/Q(x)
S=
0 0 1 -3
46
M funkcije
n M-datoteka je tekstualna datoteka koja sadri Matlab
naredbe definirane od strane korisnika
n M-skripte
n M-funkcije
function out=myfun(in1,in2,...,)
%komentar
Naredbe i pozivi drugih funkcija
Out=...
n Sve varijable koje se koriste unutar funkcije su lokalne osim
onih koje eksplicitno deklarirane kao globalne ( global a )
n Pozivanje m-funkcije
n ime_fun(in1,in2,...,)

n feval(ime_fun,in1,in2,...)

47
M funkcije - primjer
n Funkcija za pronalaenje najveeg elementa vektora X
function xmax=maxfun(X)
% Komenatr funkcije koji se ispisuje kada utipkamo help maxfun
if nargin~=1
error('Funkcija ima samo jedan ulazni argument')
end;
if nargout~=1
error('Funkcija ima samo jedan izlazni argument')
end;
n=length(X);
xmax=X(1);
for i=1:n-1
if X(i+1)>xmax
xmax=X(i+1);
end;
end;

48
Poboljanje performansi
n Prednost koritenju m-funkcija u odnosu na m-
skripte zbog breg izvravanja
n Prealokacija memorije
A = rand(100); A = rand(100);
y = ones(100,1); y = ones(100,1001);
dt = 0.001; dt = 0.001;
for n = 1:(1/dt) for n = 1:(1/dt)
y(:,n+1) = y(:,n) + dt*A*y(:,n); y(:,n+1) = y(:,n) + dt*A*y(:,n);
end end

SPORO BRZO

49
Poboljanje performansi
n Vektorizacija s ciljem eliminacije petlji
x=linspace(-5,5,500);
n=length(x);
x=linspace(-5,5,500);
for i=1:n
y=x.*exp(-x.^2)
y(i)=x(i)*exp(-x(i)^2);
end;

SPORO BRZO

50
Poboljanje performansi
Profiler

Matlab 7
Desktop->profiler

Matlab 6.5
View>profiler

51
Grafike funkcije 2D

n Vanije funkcije (plot, bar, stem, stairs)

n Kao prvi korak potrebno generirati vektor x koji sadri


vrijednosti u kojima se izraunava funkcija y=f(x), te
nakon izraunavanja graf funkcije se iscrtava.
>>plot(x,y)

n Ove funkcije primaju i dodatne parametre koji


definiraju izgled samog grafa (npr. boja i vrsta linija)
52
Grafike funkcije 2D (Opcije)
Oznaka Boja Oznaka Tip linije
y uta - Puna
m Ljubiasta : Tokasta linija
c Svjetloplava -. Crta toka
r Crvena -- Isprekidana linija
g Zelena
b Plava
w Bijela
k Crna
53
Grafike funkcije 2D (Opcije)
n Crtanje na logaritamskoj skali
n semilogx semilogx(x,y,r);
n semilogy semilogy(x2,y2,k);
n loglog
n Nova slika
n figure figure, plot(x,y,r);

n Vie odvojenih grafova na istoj slici


n subplot subplot(211), plot(x1,y1,r);
subplot(212), plot(x2,y2,k);
54
Grafike funkcije 2D (Primjer)
n Nacrtati graf funkcije y=xe-x2 na intervalu (-5,5)

x=linspace(-5,5,500);
y=x.*exp(-x.^2);
plot(x,y,r),grid on;

plot stem stairs bar


55
Grafike funkcije 3D
n Slino kao u 2D sluaju korisnik mora sam kreirati
vrijednosti nezavisnih varijabli u kojima e se funkcija
izraunavati
x1=linspace(0,5,100);
y1=linspace(0,10,100);
[x,y]=meshgrid(x1,y1);

n Funkcije za crtanje u 3D
n surf
n mesh
n contour
n contoursurf
56
Grafike funkcije 3D (primjer)
Nacrtati plohu z=sin
(x2+y2)
>> x1=linspace(-2,2,100);
>> y1=linspace(-2,2,100);
>> [x,y]=meshgrid(x1,y1);
>> z=sin(x.^2+y.^2);
>> surf(x,y,z);

57
Easy-to-use grafike funkcije
n ezplot, ezplot3, ezsurf, ezmesh, ezcontour,....
n ezplot(f, [a,b]) iscrtava graf eksplicitno zadane
funkcije y=f(x) na intervalu [a,b]
ezplot('x*exp(-x^2)',[-3,3])
n ezplot(f, [xmin,xmax,ymin,ymax]) iscrtava graf
implicitno zadane funkcije f(x,y)=0 na podruju
definiranom xmin<x<xmax i ymax<y<ymax
ezplot('x^2 - y^2 - 1')

n ezplot(x,y, [tmin,tmax]) iscrtava parametarski


zadanu funkciju x=x(t), y=y(t) na intervalu
[tmin,tmax]
58
Symbolic Math Toolbox
n Za simboliko rjeavanje matematikih problema
n Osnovni symbolic math toolbox
n Proireni symbolic math toolbox

n Koristi Maple engine za simbolike izraune


n Osnovni symbolic math toolbox sastoji od vie od 100
funkcija
n Popis funkcija help symbolic

59
Symbolic Math Toolbox
n Simbolike varijable
n Varijable koje koristimo kod simbolikog izrauna je potrebno
kreirati kao
x=sym(x)
ili syms x y
y=sym(y)
n Ukoliko je potrebno kreirati kompleksnu simboliku varijablu:
syms x y real
z=x+i*y

n Simboliku varijablu mogue je zamjeniti numerikom


vrijednosti ili drugom simbolikom varijablom
subs(f,x,xvalue)

60
Vanije funkcije - Derivacija
diff(f), diff(f,x), diff(f,x,n)

f(x)=x 2sin(x) syms x;


f=x^2*sin(x);
d 2f(x) diff(f,2)
2
=?
dx ans =
2*sin(x)+4*x*cos(x)-x^2*sin(x)

syms x y;
f=x^2*y+2*y^2*x
f(x,y)=x 2 y + 2 y 2 x diff(diff(f,x),y)
d 2f(x,y) ans =
=? 2*x+4*y
dxdy

61
Vanije funkcije - Limes
limit(f,a) ili limit(f,x,a,right ili left)
a
x
b 1
lim x 1 + sin lim
x
x x x x

syms x a b; syms x;
f=x*(1+a/x)^x*sin(b/x); limit(1/x,x,0) NaN
limit(f,x,inf)
limit(1/x,x,0,left) -Inf
ans =
exp(a)*b limit(1/x,x,0,right) Inf

Za one koji koriste LaTeX


>> latex(f)
ans =
x \left( 1+{\frac {a}{x}} \right) ^{x}\sin \left( {\frac {b}{x}} \right)
62
Vanije funkcije - Integral
int(f), int(f,x), ili int(f,x,a,b)
Neodreeni integral >> syms x

dx
-x >> f=x*exp(-x);
xe >> F=int(f)
F=
-x*exp(-x)-exp(-x)

Odreeni integral >>syms x a b;


b
>>f=x*exp(-x);
xe
-x
dx >> F=int(f,x,a,b)
a F=
-b*exp(-b)-exp(-b)+a*exp(-a)+exp(-a)

>> subs(F,{a,b},[0,10])
ans =
0.9995

63
Vanije funkcije Pojednostavljenje izraza
syms x y
R=expand(f) expand(cos(x+y))
ans =
cos(x)*cos(y)-sin(x)*sin(y)

syms x y
R=factor(f) factor(x^3-y^3)
ans =
(x-y)*(x^2+x*y+y^2)

syms x
f=(x^2+5*x+6)/(x+2)
R=simplify(f) simplify(f)
ans =
x+3

R=simple(f)
64
Vanije funkcije - solve
Simboliko rjeavanje algebarskih jednadbi

solve(eq), solve(eq,var) ili solve(eq1,eq2,...,eqn)


x 2 +y2 -1=0
3
0.75x -y+0.9=0 >> S=solve('x^2+y^2-1=0','y=4*sqrt(3)*x^3')
S=
x: [6x1 sym]
y: [6x1 sym]

>> S.x >> S.y


ans = ans =
1/2 1/2*3^(1/2)
-1/2 -1/2*3^(1/2)
-1/12*(-18+6*i*39^(1/2))^(1/2) -1/432*(-18+6*i*39^(1/2))^(3/2)*3^(1/2)
1/12*(-18+6*i*39^(1/2))^(1/2) 1/432*(-18+6*i*39^(1/2))^(3/2)*3^(1/2)
-1/12*(-18-6*i*39^(1/2))^(1/2) -1/432*(-18-6*i*39^(1/2))^(3/2)*3^(1/2)
ezplot('x^2+y^2-1=0') 1/12*(-18-6*i*39^(1/2))^(1/2) 1/432*(-18-6*i*39^(1/2))^(3/2)*3^(1/2)
hold on
ezplot('0.75*x^3-y+0.9=0')

65
Vanije funkcije - dsolve
Simboliko rjeavanje obinih diferencijalnih jednadbi
dsolve(deq), dsolve(deq,c1) ili dsolve(deq1,deq2,c1,c2)
Bez poetnih uvjeta
Primjer: y'(t)=y(t)+sin(t) >> dsolve('Dy = y + sin(t)')
ans =
-1/2*cos(t)-1/2*sin(t)+exp(t)*C1

Poetni uvjet y(0)=1


>> dsolve('Dy = y + sin(t)','y(0)=1')
ans =
-1/2*cos(t)-1/2*sin(t)+3/2*exp(t)

66
Vanije funkcije
Suma reda >> symsum(x^2)
symsum(f) ans =
symsum(f,a,b) 1/3*x^3-1/2*x^2+1/6*x

Linearna algebra
syms a;
det(A) poly([1 a;a^2 2])
eig(A)
ans =
poly(A)
inv(A) x^2-3*x+2-a^3
rank(A)

67

You might also like