Professional Documents
Culture Documents
MATLAB/SIMULINK
2006/2007
2 MATLAB/SIMULINK
:
MATLAB/SIMULINK -
:
,
, o
,
,
.
:
,
.
-
,
.
.
m.fileovi-
SIMULINK
work
0 Matlab Tutorial.
.
MATLAB/SIMULINK
MATLAB/SIMULINK
.
,
.
:
: kkk_pgp_xx_ime na problemot.m
kkk
(
)p
gp
-g,p
xx
(
)
ime na problemot ,
.
:
MATLAB (MATLAB TUTORIAL MT)
mt.
1, 2, 3, ...
3: 3.1.,3.2. 3.3, ...
.,
3.1.01,
3.1.02.,...,
3.2.01.,
3.2.02, ...
3.3.02. ...
.,
MATLAB
pgp_xx = p31_01, p31_02, p32_01, p32_02, p33_01, p33_02
.
3.1.01.
3
3.1.
mt_p31_01_polinomi.m.
,
3.3.01.,
2
5.2.20)
(m
)
20 (
ts_p52_20.m.
:
)
MULINK
(
)
ts_pp_xx_xx.m,
.
.
MATLAB/SIxx_xx
4 MATLAB/SIMULINK
work
(
.
).
work
.
,
.1.
MATLAB6p5
work1
(
.2.)
.1.
.2.
cd.
.
work1
,
cd,
>> cd,
C:\MATLAB6p5\work1 (
cd ..
>> cd ..
>>
>> cd,
C:\MATLAB6p5
.
:
MATLAB)
,
MATLAB)
(
(
)
MATLAB)
cd (work1)
. MATLAB6p5
C:\MATLAB6p5
(
)
>> cd ('work1')
(
>>
(
MATLAB)
>> cd,
(
C:\MATLAB6p5\work1 (
MATLAB)
. work1,
work1)
)
work1
NIR proekt,
:
C:\MATLAB6p5\work1 (
)
>> cd ('NIR proekt')
(
NIR proekt)
>>
(
MATLAB)
>> cd,
(
)
C:\MATLAB6p5\work1\NIR proekt (
MATLAB)
NIR proekt
(
help,
.).
MATLAB/SIMULINK
1.
..........................................................................
1.1.
....................................................................................................
1.2.
.....................................................
10
1.3.
...........................................................................................
14
1.4.
............................................................................
15
...............................................................................................
(:).........................................
................................
..........................................................................
........................................................................
(*) ..........................................
(.*) ...............................................................
(
) (./) ................................................
(.^)
18
20
20
21
21
22
25
27
28
.................................................
..............................................................
..........................................
.....................................................
.................................................................
.....................................................................
................................................................
.........................................................
.....................................
..................................................
............................................
.............................................................
........
.............................................................
...................................................................
30
31
32
32
33
34
34
35
37
38
39
40
40
42
43
.....................................................
...........................................
.........................................................................
...................................................................
(zoom) ..................................................................
(subplot)
...............................
45
48
50
51
52
53
55
1.5.
1.5.1.
1.5.2.
1.5.3.
1.5.4.
1.5.5.
1.5.6.
1.5.7.
1.5.8.
1.6.
1.6.1.
1.6.2.
1.6.3.
1.6.4.
1.6.5
1.6.6.
1.6.7.
1.6.8.
1.6.9.
1.6.10.
1.6.11.
1.6.12.
1.6.13.
1.6.14.
1.7.
1.7.1.
1.7.2.
1.7.3.
1.7.4.
1.7.5.
1.7.6.
6 MATLAB/SIMULINK
2.
2.1.
61
.........
61
2.2.
) ......
65
......
66
........
69
2.3.
2.4. While
71
2.6.
2.6.1
2.6.2
2.6.3
( m)
.........
.............
...............
72
72
75
78
2.7.1.
2.7.2.
2.7.3.
2.7.4.
2.7.5.
2.7.6.
................
........
sum .......................
max min ................
....................
find
........
find
........
81
81
82
83
84
85
87
2.8.1.
2.8.2.
2.8.3.
2.8.4.
2.8.5.
.......................
MATLAB .
.....................
...
..........
(
) ...........
88
88
88
90
90
90
2.7.
2.8.
2.9.
.........
......
(
)
...............
input ........................
92
92
93
94
......
95
95
96
96
3.1.4.
..
3.2.1.
3.2.2.
3.2.3.
.
.
..
99
99
101
104
106
106
2.9.1.
2.9.2.
2.9.3.
3.
3.1.
3.1.1.
3.1.2.
3.1.3.
(
(
3.2.
3.3.
3.3.1.
3.3.2.
) ..
.
97
97
MATLAB/SIMULINK
109
3.4.1.
3.4.2.
3.4.3.
.
.
110
110
112
113
3.5.1.
3.5.2.
...
115
119
121
127
127
132
136
3.4.
3.5.
(
3.6.
3.6.1.
3.6.2.
3.7.
(
3.7.1.
3.7.2.
3.7.3.
3.7.4.
3.7.5.
!)
.
4.
SIMULINK
4.1.
!)
137
SIMULINK?
4.2.
4.2.1.
- Sources
4.2.2.
- Sinks
4.2.3.
- Discrete
4.2.4.
- Linear
4.2.5.
- Nonlinear
4.2.6. Connections
4.2.7. Extracs
4.3.
4.4.
4.5.
4.6.
4.7.
5.
139
(
5.1.
5.2.
5.3.
8 MATLAB/SIMULINK
6.
CONTROL SYSTEM TOOLBOX
7.
8.
)
)
147
)
1: help
2:
3:
4:
5:
146
149
MATLAB/SIMULINK
1.
1.1.
MATLAB
.
,
,
MATLAB
.
.
MATLAB-
FORTRAN
Imeto MATLAB
C.
MATrix LABaratory
LINPACK
EISPACK
.
MATLAB.
,
,
.
, MATLAB -
MATLABtoolboxes (
),
.
(m-
MATLAB
MATLAB
.
:
,
.
10 MATLAB/SIMULINK
MATLABFORTRAN
C++.
.
MATLAB -
C++
FORTRAN
.
1.2.
MATLAB
MATLAB
MATLAB- .
,
m-
MATLAB,
>>
>>
,
WINDOWS
MATLAB
MATLAB
MATLAB promt
.
help,
.
quit
MATLAB.
MATLABMATLAB - ,
:
+
*
/
^
(Addition),
(Subtraction),
(Multiplication),
(Division),
(Power),
( ).
>>.
:
>> 5^2
Enter
ans =
25
MATLAB-
11
MATLAB/SIMULINK
:
>> 3.50*11/7+(25+6^3)
,
Enter MATLAB-
:
ans =
246.5000
.
ans
.
>> x = 3.50*11/7+(25+6^3)
MATLABx=
246.5000
x.
3.50*11/7+(25+6^3),
(
,
x
),
,
x
.
:
>> x
x=
5.7500
x.
,
( ;)
>> x = 2 + 3/4*5; y = 2^2, z = 3^1.5;
y=
4
,
.
x, y
z
z,
;
y
.
>> x
x=
5.7500
>> z
z=
5.1962
;
z
12 MATLAB/SIMULINK
MATLAB
MATLAB
1.
1362, -217897
2.
1.234, -10.76
3.21 - 4.3i ( i
3.
4.
Inf
5.
NaN
,
, 0/0
"e"
-1.3412e+03 = -1.3412x103 = -1341.2
-1.3412e-01 = -1.3412x10-1 = -0.13412
MATLAB
15-
precision),
(double
.
MATLAB
"format".
: 45.7503820449325179
1.
45.7504 (4
2.
4.5750e+001
3.
45.75038204493252 (15
4.
4.575038204493252e+001
5.
45.75 (2
15
.
,
:
>> format short
>> pi
ans =
3.1416
> format short e
>> pi
ans =
3.1416e+000
format
13
MATLAB/SIMULINK
MATLAB- ,
format.
MATLAB
format
:
>> 34*3
ans =
102
format compact
>> format compact
>> 34*3
ans =
102
).
14 MATLAB/SIMULINK
1.3.
)
.
.
ProCredit, Tri2Plus, Y4, z21x6
:
Pro-Credit=1, Tri2%Plus=2, Y@4=3, z21#x6=4
.
.
: MATLAB-
1+eps
1
pi = 3.14159 = .
MATL B-
1 ),
:
>> i,j, i=3
ans =
0 + 1.0000i
ans =
0 + 1.0000i
i=
3
,
i
3.
:
1) -2^3+9
2) 2/3*3
6) 3*(3*4-2*5^2-3)
3) 3*2/3
4) 3*4-5^2*2-3
5) (2/3^2*5)(3-4^3)^2
15
MATLAB/SIMULINK
1.4.
MATLAB
,
.
MATLAB:
Elementaru Math Functions Trigonometric Functions
sin
Sine (
)
sinh
Hiperbolic sine (
)
asin
Inverse sine (
- arcsin)
asinh
Inverse hyperbolic sine (
cos
Cosine (
)
cosh
Hyperbolic cosine (
acos
Inverse cosine (
)
acosh
Inverse hyperbolic cosine (
tan
Tangent (
)
tanh
Hyperbolic tangent (
atan
Inverse tangent (
)
atan2
Four quadrant inverse tangent (
atanh
Inverse hyperbolic tangent (
coth
Hyperbolic cotangent (
Exponential Functions
exp
Exponential (
exp(x)= x )
)
)
)
)
)
)
)
log
Natural logarithm (
)
log10
Common (base 10) logarithm (
10)
log2
Base 2 logarithm and dissect floating point number (
2)
pow2
Base 2 power and scale floating point number
sqrt
Square root (
)
Complex Function
abs
Absolute value and complex magnitude (
)
angle
Phase angle (
)
conj
Complex conjugate (
)
imag
Imaginary part of complex number (
.)
real
Real part of complex number (
)
Rounding and remainder
fix
Round towards zero (
)
floor
Round towards minus infinity (
.
)
ceil
Round towards plus infinity (
.
+)
round
Round towards nearest integer (
.
)
mod
Modulus (signed remainder after division) (
rem)
rem
Remainder after division (
)
sign
Signum (signum
sign(-3.26)=-1)
16 MATLAB/SIMULINK
MATLAB
>>help funkcija
.
>> x = 5*cos(pi/6), y = 5*sin(pi/6)
x=
4.3301
y=
2.5000
sin
.
cos
pi/6,
sin
y
MATLAB-
.
.
>> x = 9;format;
>> sqrt(x), exp(x), log(sqrt(x)),log10(x^2+6)
ans =
3
ans =
8.1031e+003
ans =
1.0986
ans =
1.9395
>> format long e, exp(log(9)), log(exp(9)
ans =
9.000000000000002e+000
ans =
9
>> format short
17
MATLAB/SIMULINK
exp( x ) = e x
exp(x)
log(x)
.
format long e,
15format short,
15
.
.
:
1. 3 x , x = 2 .
3
3. 7 x
x2
, x=6.
2
3
4. 4 x , x = 2 .
2.
, x=4.
1+ x
, x=2.
x 1
2
3
7. 3 x 4 x , x = 2 .
6. x 4 x
9. 5( x ) , x = 3 .
1
, x=4.
( x )3
10.000
12.
, x = 1,075 .
x120
5.
13. x =
60
, x =3.
8. 6 x (6 x ) , x = 10 .
0
11. 500 x
9.
10.
, x = 1, 01 .
14. x = 3, y = 5, z =
e 0.2696 x sin( 2 y )
x y ln( x y )
15.
x = 5.5, y = 7.0, z = ( x + y ) 2
16.
z1 = 3 + 4 j
e 0.5 x cos( 2 y )
x 2 + y 2 + ln( x 2 + y 2 )
i z2 = 7 10 j
: z = z1 z2 , u = z , w = z1 z z2u , a =| z |, b =| w |
18 MATLAB/SIMULINK
1.5.
,
:
.
(
(blank).
,
)
.
[ ].
>> v = [1 3, sqrt(5)]
v=
1.0000 3.0000 2.2361
>> length(v)
ans =
3
x
,
.
.
>> v2 = [ 3+ 4 5]
v2 =
7
5
>> v3 = [ 3 +4 5]
v3 =
3 4 5
v2
3
v3,
3
MATLAB.
+,
.
,
.
v
,
>> v + v3
ans =
4.0000 7.0000 7.2361
>> v4 = 3*v
v4 =
3.0000 9.0000 6.7082
v3
19
MATLAB/SIMULINK
w
cd
z.
sort
MATLAB- .
.
>> w(2) = -2, w(3)
w=
1 -2 3
ans =
3
.
>> w = [ 2 4 9 16 25 ]
w=
2 4 9 16 25
>> sqrt(w)
ans =
1.4142 2.0000 3.0000 4.0000 5.0000
sqrt (
)
w.
MATLAB,
.
20 MATLAB/SIMULINK
1.5.1.
(:)
( : ),
.
>> 1:4
>> 3:7
>> 1:-1
ans =
1 2 3 4
ans =
3 4 5 6 7
ans =
Empty matrix: 1-by-0
1
4.
.
3
7.
-1
1.
m: k: n
n(
n).
-7
-
:
>> r5(3:6)
ans =
5 -1 -3
-5
:
r5( 6:-2:1),
21
MATLAB/SIMULINK
1.5.3.
.
(;)
).
1.5.4.
( ' ).
>> w = [ 1 -2 3 ], c = [ 1; 3; sqrt(5)]
w=
1 -2 3
c=
1.0000
3.0000
2.2361
>> w', c
ans =
1
-2
3
ans =
1.0000
3.0000 2.2361
22 MATLAB/SIMULINK
>> t = w + 2*c'
t=
3.0000 4.0000 7.4721
>> T = 5*w' - 2*c
T=
3.0000
-16.0000
10.5279
>> T,t
T=
3.0000
-16.0000
10.5279
t=
3.0000 4.0000 7.4721
T
MATLAB.
x
x.
>> x = [ 1+3i, 2-2i]
x=
1.0000 + 3.0000i 2.0000 2.0000i
>> x
ans =
1.0
3.0000i
.0000 + 2.0000i
1.5.5.
(*)
(
),
.
,
.
u = [u1 , u
n
2
,... u
v = [ v 1 , v 2 ,... v n ] T
]T
n
23
MATLAB/SIMULINK
10
u = 11
12
20
v = 21 .
22
>> w = [2, 1, 3]
w=
2 1 3
u
MatLab-
w,
>> u*w
??? Error using ==> *
Inner matrix dimensions must agree.
u*w'
ans =
45
,
.
24 MATLAB/SIMULINK
.
n
ui
u =
= uT u
n
MATLAB-
.
:
. MATLAB
.
:
cos =
ye
x y
x y
x = [1 , 2 , 3 ] T
y = [3, 2,1]T
.
MATLAB:
>> x=[1, 2, 3]';
>> y=[3, 2, 1]';
>> costheta=x'*y/(norm(x)*norm(y));
>> theta=acos(costheta);
>> thetad=theta*180/pi;
>> costheta, theta, thetad
(
costheta =
0.7143
theta =
0.7752
thetad =
44.4153
=theta)
(
(
25
MATLAB/SIMULINK
1.5.6.
(.*)
.
MATLAB- .
(
),
u.*v)
ans =
(
200 231 -264
u.*v)
y = x sin(x) za x=0.0:0.25:1.0.
,
x
>>x = 0.0:0:25:1.0;
x = [0.0:0:25:1.0]; (
x=
0 0.2500 0.5000 0.7500 1.0000
>>
>> x = [0.0:0:25:1.0];
(
x=
0
0.2500
0.5000
0.7500
1.0000
y
spx= sin(x)
26 MATLAB/SIMULINK
>> spx=sin(pi*x);
ans =
0
0.7071
1.0000
0.7071
0.0000
=x
spx= sin(x)
0.000
0.2500
0.5000
0.7500
1.0000
0.0000
0.7071
1.0000
0.7071
0.0000
= y = x sin(x)
0.0000
0.1768
0.5000
0.5303
0.0000
MATLAB>> y = x.*sin(pi*x)
y=
0
0.1768
0.5000
0.5303
0.0000
pi = 3.1495.
sin
r sin(pi*x)
x
y,
.
MATLAB
>> x=[0.0:0.25:1.0];
>> spx=sin(pi*x);
%
%
>> y=x.*spx;
>> [x, spx, y]
ans =
x
0
0.2500
0.5000
0.7500
1.0000
%
%
sin(x) -
)
)
y = x sin(x)
sin(x)
y = x sin(x)
0
0.7071
1.0000
0.7071
0.0000
0
0.1768
0.5000
0.5303
0.0000
27
MATLAB/SIMULINK
1.5.7.
) ( ./ )
.
MATLAB-
( ./ )
.
(
),
.
>> a = 1:5, b = 6:10, a./b
a=
1 2 3 4 5
b=
6 7 8 9 10
ans =
0.1667 0.2857 0.3750 0.4444 0.5000
>> a./a
ans =
1 1
2.5000
,
a
MATLAB.
c,
Inf,
,
-
MATLAB.
lim
x 0
sin(x )
x
28 MATLAB/SIMULINK
sin(x)/x
x
0.
.
>> x = [0.1; 0.01; 0.001; 0.0001]
x=
0.1000
0.0100
0.0010
0.0001
>> sin(pi*x)./x
ans =
3.0902
3.1411
3.1416
3.1416
.
ans.
.
,
8-
( ./ ),
>> 1./x
ans =
10
100
1000
10000
1.5.8.
( .^ )
,
u.*u.
( .^ ).
MATLAB/SIMULINK
29
>> u.^2
ans =
100 121 144
>> u.*u
ans =
100 121 144
>> u.^4
ans =
10000
14641
20736
30 MATLAB/SIMULINK
1.6.
(;)
MATLAB
.
.
,
3 3
6 1 2
A = 1 8 3 .
2 4 9
MATLAB,
.
>> A = [6 1 2; -1 8 3; 2 4 9]
:
>>
=
6 1 2
-1 8 3
2 4 9
(;)
(
>> A = [ 6 1 2
-1 8 3
2 4 9]
:
>>
=
6 1 2
-1 8 3
2 4 9
31
MATLAB/SIMULINK
( : ).
:
>> r3 = A(3,:)
:
>> r3 =
2 4 9
,
(:,2)
>> c2 = A(:,2)
>> c2 =
1
8
4
1.6.1.
(
,
size.
x:
>> size(ans)
ans =
1 2
B
.
2x3
x, 3x1,
ans
size(ans)
size
size
1
,
2.
32 MATLAB/SIMULINK
4 1 3 -4; 12 0 3 4];
9
2
6
-8 -1
4 10
6 -2
1.6.3.
.
,
:
.
.
33
MATLAB/SIMULINK
ans =
3 5
ans =
5 3
1.6.4.
MATLAB
.
ones(m,n)
mxn
zeros(m,n)
mxn
:
>> P=ones(2,3)
P=
1 1 1
1 1 1
:
(nxn).
.
.
.
34 MATLAB/SIMULINK
>> S-St
ans =
0 0
0 0
0 0
0
0
0
1.6.5.
nxn,
.
MatLab-
eye(n).
>> I = eye(3), x = [8; -4; 1], I*x
I=
1 0 0
0 1 0
0 0 1
x=
8
-4
1
ans =
8
-4
1
.
1.6.6.
.
MATLAB-
.
.
>> D = [-3 0 0; 0 4 0; 0 0 2]
D=
-3 0 0
0 4 0
0 0 2
. 100x100).
d
diag(d)
diag.
.
35
MATLAB/SIMULINK
diag(A),
.
>> F=[0 1 8 7; 3 -2 -4 2; 4 2 1 1]
F=
0 1 8 7
3 -2 -4 2
4 2 1 1
>> diag(F)
ans =
0
-2
1
.
1.6.7.
:
>> C = [ 0 1; 3 -2; 4 2]; x = [8; -4; 1];
>> G = [C x]
G=
0 1 8
3 -2 -4
4 2 1
>> A = [ 5 7 9; 1 -3 -7], B, H = [A;B]
A=
5 7 9
1 -3 -7
B=
-1 2 5
9 0 5
H=
5 7 9
1 -3 -7
-1 2 5
9 0 5
36 MATLAB/SIMULINK
x
H
G,
A
B,
.
>> J= [1:4; 5:8; 9:12; 20 0 5 4]
J=
1 2 3 4
5 6 7 8
9 10 11 12
20 0 5 4
>> K = [diag(1:4)
K=
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
1 5 9 20
2 6 10 0
3 7 11 5
4 8 12 4
J; J' zeros(4,4)]
1 2 3 4
5 6 7 8
9 10 11 12
20 0 5 4
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
spy(K)
K,
4
5
nz = 34
:
y=4sin(3x)
0.0.1,0.2,....0.5
u=3sin(4x)
x =
37
MATLAB/SIMULINK
>> x=0:0.1:0.5;
>> y=4*sin(3*x); u=3*sin(4*x);
>> [x',y',u']
ans =
0
0
0
0.1000 1.1821 1.1683
0.2000 2.2586 2.1521
0.3000 3.1333 2.7961
0.4000 3.7282 2.9987
0.5000 3.9900 2.7279
.
>> x=(0:0.1:0.5)';
>> [x 4*sin(3*x) 3*sin(4*x) ]
ans =
0
0
0
0.1000 1.1821 1.1683
0.2000 2.2586 2.1521
0.3000 3.1333 2.7961
0.4000 3.7282 2.9987
0.5000 3.9900 2.7279
1.6.8.
.
.
Aij
>> J = [1:4; 5:8;9:12; 20 0 5 4]
J=
1 2 3 4
5 6 7 8
9 10 11 12
20 0 5 4
>> J(1,1)
ans =
1
>> J(2,3)
ans =
7
>> J(4,5)
??? Index exceeds matrix dimensions.
.
Matlab
i
A(i,j).
j
:
38 MATLAB/SIMULINK
.
,
>> J(:,3)
ans =
3
7
11
5
% kolonite 2 i 3 se izdvoeni
>> J(:,2:3)
ans =
2 3
6 7
10 11
0 5
>> J(4,:)
ans =
7 0
>> J(2:3,2:3)
ans =
6 7
10 11
1.6.9.
( .* )
.
(
).
>> A = [ 6 7 9; 1 -3 -7]
39
MATLAB/SIMULINK
A=
6 7
1 -3
9
-7
>> B = [ -1 2 5; 9 0 5]
B=
-1 2 5
9 0 5
>> A.*B
ans =
-6 14 45
9 0 -35
>> A.*B'
??? Error using ==> .*
Matrix dimensions must agree.
B'
A.
1.6.10.
.
Ax
xA
.
, Ax
A
x.
>> x = [8; -4; 1]
x=
8
-4
1
>> A
A=
6 7 9
1 -3 -7
>> A*x
ans =
29
13
>> x*A
??? Error using ==> *
Inner matrix dimensions must agree.
,
.
Ax
xA,
40 MATLAB/SIMULINK
1.6.11.
A
nxp,
mxn
A
. A*B,
B,
mxp.
>> A = [5 7 9; 1 -3 -7]
A=
5 7 9
1 -3 -7
>>B = [ 0, 1; 3, -2; 4, 2]
B=
0 1
3 -2
4 2
>> C = A*B
C=
57 9
-37 -7
>> D = B*
D=
1 -3 -7
13 27 41
22 22 22
,
1.6.12.
MATLAB
A\ B
A/B
. AB
BA.
:
A-1B
AB-1
,
m-file-
2.
m-file
.
1.6.1.
, Ax = B,
4 2 10 x1 10
2 10 12 x = 32
4 6 16 x3 16
x:
MATLAB/SIMULINK
41
:
% Primer 1.6.1
% file: mt_p16_01_linalgebra.m
%
A = [ 4 -2 -10; 2 10 -12; -4 -6 16];
B = [-10; 32; -16];
X = A\B
:
X=
2.0000
4.0000
1.0000
MATLAB
.
(MATLAB Users Guide).
1.6.2.
inv
1.6.1.,
A
x.
:
% Primer 1.6.2
% File: mt_p16_02_linalgebra.m
%
A = [ 4 -2 -10; 2 10 -12; -4 -6 16];
B = [-10; 32; -16];
C = inv(A)
X = C*B
:
C=
2.2000 2.3000 3.1000
0.4000 0.6000 0.7000
0.7000 0.8000 1.1000
X=
2
4
1
1.6.3.
lu
1.6.2.
x
, A = LU.
1 1
X = U L B.
42 MATLAB/SIMULINK
(m-file):
% Primer 1.6.3
% File: mt_p16_03_linalgebra.m
%
A = [4 -2 -10; 2 10 -12; -4 -6 16];
B = [-10; 32; -16];
[L,U] = lu(A)
X = inv(U)*inv(L)*B
:
L=
1.0000
0
0
0.5000 1.0000
0
-1.0000 -0.7273 1.0000
U=
4.0000 -2.0000 -10.0000
0 11.0000 -7.0000
0
0 0.9091
X=
2
4
1
1.6.13.
(Eigenvalues)
nxn
Ax = x
.
eig(A)
.
MATLAB
[X,D]=eig(A)
D
:
AX = XD .
43
MATLAB/SIMULINK
. 1.6.4.
:
1
1
0
A = 6 11 6
6 11 5
M-file (
):
% Primer 1.6.4
% File: mt_p16_04_eigenvalues.m
%
A = [0 1 -1; -6 -11 6; -6 -11 5];
[X,D] = eig(A)
:
X=
1.6.14.
:
1.6.5.
x + y + z +t = 4
2x y + t = 2
3x + y z t = 2
x 2 y 3 z + t = 3
.
Ax = B,
1
1 x 4
1 1
2 1 0
1 y 2
=
3 1 z 1 z 2
1 2 3 1 t 3
x = A 1B .
44 MATLAB/SIMULINK
.
:
% Primer 1.6.5
% File: mt_p16_05_linalgebra.m
%
A = [ 1 1 1 1; 2 -1 0 1; 3 2 -1 -1; 1 -2 -3 1];
B = [4; 2; 2; -3];
X = A\B
x = [ x y z t ]T :
:
X=
0.8437
0.8750
1.0937
1.1875
(x)
(y)
(z)
(t)
:
1.6.1.
2x + 3 y + z + t = 1
x y z + t =1
3 x + y + z + 2t = 0
x + z t = 2
1.6.2.
x 2y + z + t = 3
x+ z =t
2y z = t
x + 4 y + 2z t = 1
1.6.3.
x + 2y w = 0
3x + y + 4 z + 2w = 3
2 x 3 y z + 5w = 1
x + 2 z + 2w = 1
45
MATLAB/SIMULINK
1.7.
2D, 3D,
,
,
.
2-D
bar.
grid
xlabel(tekst), ylabel(tekst)
title(tekst),
text(tekst)
.
(.,+,*,o,x)
(r,b,g,w).
.
.
-10
+40,
- 60
axis
60.
.
.
.
>> title(' Graph of y = sin(3pi x)')
>> xlabel('x axis')
>> ylabel('y-axis')
,
( '
')
.
.
.
:
grid
.
grid
grid off.
46 MATLAB/SIMULINK
plot
.
:
plot(x,y)
plot(y)
If y
x.
y
, plot(y)
plot,
plot(real(y),imag(y)).
.
,
:
plot(x,y,s)
s
:
b
g
r
c
m
y
k
.
o
x
+
*
s
d
v
point (
)
circle (
)
x-mark (
)
plus (
)
star (
)
square (
)
diamond (
triangle (down)
triangle (up)
<
triangle (left)
>
triangle (right)
p
h
pentagram (
hexagram (
:
-.
--
solid (
dotted (
dashdot (
dashed (
)
)
)
.)
)
)
)
)
)
)
)
, plot(x,y,'c+:')
)
; plot(x,y,'bd')
.
plot(x1,y1,s1,x2,y2,s2,x3,y3,s3,...)
(x,y,s),
x and y
, s
.
, plot(x,y,'y-',x,y,'go')
,
.
plot,
.
,
default. Default
,
.
47
MATLAB/SIMULINK
plot
bar, )
help naredba (
help loglog).
plot3
plot().
3-D
plot3(x,y,z),
x, y
plot3(x,y,z),
X, Y and Z
X, Y
. plot3()
,
x, y and z.
3-D
plot3(x,y,z,s)
s
plot
,
Z.
, plot
1, 2 or 3
.
plot3(x1,y1,z1,s1,x2,y2,z2,s2,x3,y3,z3,s3,...)
(x,y,z,s) ,
x,y
z
.
plot3:
):
>> t=0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t), grid;
.1.7.1.
.1.7.1.
48 MATLAB/SIMULINK
1.7.1.
MATLAB.
y = sin( 3x)
0 x 1.
x
0
y.
(x,y),
x-y
.
N+1
>> y=sin(3*pi*x);
:
>>plot(x,y)
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
-0.2
-0.2
-0.4
-0.4
-0.6
-0.6
-0.8
-0.8
-1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
-1
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
)
.1.7.2: )
)
y = sin(3x) h = 0.1,
y = sin(3x) h = 0.01
. 1 ),
.
100,
.
>> N = 100; h=1/N; x = 0:h:1;
>> y = sin(3*pi*x); plot(x,y)
.1. ).
49
MATLAB/SIMULINK
:
1.7.1.
X-Y
10
11
12
.5
11
14
15.5
16
16
16
16
,
.
M-File:
% Primer 1.7.1
% File: mt_p17_01_lingraf.m
%
t = [0 1 2 3 4 5 6 7 8 9 10 11 12];
y = [0 0.5 1 2 4 7 11 14 15.5 16 16 16 16];
plot(t,y), grid
. 1.7.3. (
1.7.1)
.1.7.4. (
1.7.2)
1.7.2.
y=
(
- title),
sin x
x
4 < x < 4 .
(xlabel, ylabel)
(grid).
50 MATLAB/SIMULINK
1.7.2.
,
>> plot(x,y,'w-',x,cos(2*pi*x),'g--')
.1.7.5).
1.7.3.
% Primer 1.7.3. dve krivi na eden graf
% File:mt_p17_03_dve_krivi.m
x=0:0.01:1;
plot(x,sin(3*pi*x),'b-',x,cos(3*pi*x),'g--')
legend('Sin kriva','Cos kriva')
title(' Multi-plot')
xlabel('x axis'), ylabel('y axis')
grid
Mult i-plot
1
Sin kriva
Cos kriva
0.8
0.6
0.4
y axis
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
0.1
. 1.7.5:
0.2
0.3
0.4
0.5
x axis
y = sin( 3x)
0.6
0.7
0.8
0.9
y = cos(3x)
h = 0.01
HOLD
plot,
.
.
hold.
>> plot(x,y), hold
>> plot(x,y,'gx'), hold off
hold
.
hold off
,
clg.
51
MATLAB/SIMULINK
1.7.3.
,
x
y.
.1.7.6:
axis
.
xy-
.
.1.7.6.
:
>> x = -1:0.1:1;
>> plot(x,sin(pi*x),'g-')
>> hold on
>> plot(x,cos(pi*x),'r-')
1.7.4.
(zoom)
(
.
>>zoom
(pointer)
.
.
.
,
.
52 MATLAB/SIMULINK
1.7.5.
(SUBPLOT)
m- -n
subplot(m,n,p), or subplot(mnp),
(
),
p
.
,
subplot(2,2,1), plot(x,y,s),
subplot(2,2,2), plot(x,y,s),
subplot(2,2,3), plot(x,y,s),
subplot(2,2,4), plot(x,y,s),
(window),
(mxn),
.
1.7.4.
subplot.
.1.7.7.
subplot (22p)
subplot (221)
.
(1)
(subplot) 2x2, a o
subplot (222),
.
53
MATLAB/SIMULINK
1.7.5.
(
0.0005.
i = 100 sin(t )
4
v = 120 sin t
1)
t .
p = v i
2)
t .
.
3)
f a = Fm sin t , f b = Fm sin(t
t .
2
4
), f c = Fm sin(t
) , Fm = 3.0
3
3
.
fR = 3Fm .
4)
.
54 MATLAB/SIMULINK
Sl. 1.7.8.
55
MATLAB/SIMULINK
1.7.6.
f(x,y)
x
y,
.
z=f(x,y),
(x,y,z).
,
Karteziev (
y,
-
y,
.
x
(x,y)
.2<x<4
(x,y)
.
MatLabx
>> x = 2:0.5:4; y=1:0.5:3;
>> [X,Y] = meshgrid(x,y);
>> X
>> Y
X=
2.0000 2.5000 3.0000
2.0000 2.5000 3.0000
2.0000 2.5000 3.0000
2.0000 2.5000 3.0000
2.0000 2.5000 3.0000
Y=
1.0000 1.0000 1.0000
1.5000 1.5000 1.5000
2.0000 2.0000 2.0000
2.5000 2.5000 2.5000
3.0000 3.0000 3.0000
meshgrid
.
3.5000
3.5000
3.5000
3.5000
3.5000
4.0000
4.0000
4.0000
4.0000
4.0000
1.0000
1.5000
2.0000
2.5000
3.0000
1.0000
1.5000
2.0000
2.5000
3.0000
X
(X(i,j), Y(i,j))
(x,y)
X
.
f(x,y)
Y
Y,
X
MATLABf.
1.7.6:
f ( x, y) = ( x 3) 2 ( y 2) 2 ,
% Primer 1.7.6. Graf na funkcija
% File mt_p17_06_Sedlo.m
%
[X,Y] = meshgrid(2:0.2:4, 1:0.2:3);
2<x<4
1 < y < 3.
56 MATLAB/SIMULINK
Z = (X-3).^2- (Y-2).^2;
mesh(X,Y,Z)
title(' Sedlo '), xlabel('x'),ylabel('y')
Saddle
0.5
-0.5
-1
3
2.5
4
3.5
2
3
1.5
y
2.5
1
.1.7.9.
MatLab.
mesh(X,Y,Z)
f = xye 2( x
1.7.7: a)
+ y2 )
b)
.
% Primer 1.7.7. ) Graf na funkcija 3D
% File mt_p17_07_ _graf_na_funkcija_3D.m
[X,Y] = meshgrid(-2:0.1:2, -2:0.1:2);
f = -X.*Y.*exp(-2*(X.^2+Y.^2));
mesh(X,Y,f)
title('Funkcija f=-x*y*exp(-2*(x^2+y^2))'), xlabel('x'),ylabel('y')
. 1.7.10.
57
MATLAB/SIMULINK
m-file.
% Primer 1.7.7.b) Ekstremi na funkcija
% File mt_p17_07_b_graf_na_funkcija_3D.m
%
[X,Y] = meshgrid(-2:0.1:2, -2:0.1:2);
f = -X.*Y.*exp(-2*(X.^2+Y.^2));
fmax = max(max(f))
kmax = find(f==fmax)
Pos = [X(kmax), Y(kmax)]
contour(X,Y,f)
xlabel('x'), ylabel('y'), grid, hold on
plot(X(kmax),Y(kmax),'*')
text(X(kmax),Y(kmax),'Maximum')
fmax =
0.0920
kmax =
641
1041
Pos =
-0.5000 0.5000
0.5000 -0.5000
2
1.5
1
0.5
Maximum
0
-0.5
Maximum
-1
-1.5
-2
-2
-1.5
-1
-0.5
0
x
.1.7.11.
0.5
1.5
58 MATLAB/SIMULINK
1.7.8.
Bessel-
Jo = x + y .
2
Sl. 1.7.12. (
1.7.8)
1.7.9
z=
-10
10
sin r
, r = x2 + y2 ,
r
0.5
%
1.7.9. Graf na funkcijata z=sinr/r, r=sqrt(x^2+y^2)
% M-file: mt_p17_09_Meshgrid2.m:
%
59
MATLAB/SIMULINK
clg
[x,y]=meshgrid(-10:.5:10);
% meshgrid ja transfora specificiranata domena
% vo matrici x i y za ocenuvanje na z
%
r=sqrt(x.^2+y.^2)+eps;
z= sin(r)./r;
%
% 3-D mesh plot
mesh(x,y,z)
a) [x,y]=meshgrid(-10:.5:10);
b) [x,y]=meshgrid(-20:.5:20);
. 1.7.13.
( a
1.7.9)
60 MATLAB/SIMULINK
61
MATLAB/SIMULINK
2.
2.1.
,
.
,
.
,
.
.
.
,
.
MATLAB-
< 1,
2.1.1:
n = 1,2,3,...8.
sin(nx)
1 < x
8
-1
-1
1
-1
-1
1
-1
-1
1
-1
-1
1
-1
-1
1
-1
-1
1
-0.5
-0.5
-0.5
0.5
0.5
0.5
0
-1
-1
-0.5
0.5
-0.5
0.5
-0.5
0.5
-0.5
0.5
-0.5
0.5
.2.1.1.
1 < x < 1,
-1
-1
sin(nx)
n = 1,2,3,...8.
62 MATLAB/SIMULINK
2,3
for
subplot
,
8.
end
n
4x2
n
-1
-1
1
-0.5
0.5
-1
-1
1
0
-1
-1
1
-0.5
0.5
-1
-1
1
0.5
-0.5
0.5
-0.5
0.5
-0.5
0.5
-0.5
0.5
-1
-1
1
0
-1
-1
-0.5
0
-1
-1
1
1,3,5,7
-0.5
0.5
-1
-1
.2.1.2.
(
n),
.
for
63
MATLAB/SIMULINK
brojac
.
2.1.03:
1,
f1 = 0,
f2 = 1
f n = f n1 + f n 2 za n = 3,4,5.....
f n / f n1
( 5 + 1) / 2 = 1.618
>>
>>
>>
>>
>>
>>
>>
>>
F(1) = 0; F(2) = 1;
for i=3:20
F(i) = F(i-1)+F(i-2);
end
plot(2:19,F(3:20)./F(2:19),'o')
hold on
plot(2:19,F(3:20)./F(2:19),'-')
plot([0 20],((sqrt(5)+1)/2)*[1,1])
2
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1
10
. 2.1.3.
12
14
16
18
20
64 MATLAB/SIMULINK
2.1.4:
1
1
1
1
+ 2 + 2 + ..... 2
2
2
3
4
20
1
1
1
1
1
= 1 + 2 + 2 + 2 + ..... 2 + 2
2
3
4
20
21
S 20 = 1 +
S 21
...
S100 = 1 +
1
1
1
1
1
1
+ 2 + 2 + ..... 2 + 2 + ...... +
2
2
3
4
20
21
100 2
81
sum(1./(1:20).^2). (
MatLab
S20
sum
).
>> S= zeros(100,1);
>> S(20) = sum(1./(1:20).^2);
>> for n =21:100
>> S(n) = S(n-1) +1/n^2;
>> end
>> clf; plot([20:100],S(20:100),'.',[20
100],[1,1]*pi^2/6,'-')
>> axis([20 100 1.5 1.7])
>> [(98:100)' S(98:100)]
ans =
98.0000
1.6348
99.0000
1.6349
100.0
1.6350
1.7
1.68
1.66
1.64
1.62
1.6
1.58
1.56
1.54
1.52
1.5
20
30
40
50
60
.2.1.5.
70
80
90
100
%
%
%
%
%
1
2
3
4
5
%
%
%
6
7
8
65
MATLAB/SIMULINK
100
0.
S20 ,
sum.
for
,
1/n^2 i
Sn.
.
S98, S99
2.2.
(T
MATLABMATLAB-
S100.
(true)
.
(false)
1,
0.
true = 1, false = 0
x
,
x == 2
x ~= 2
x>2
x<2
x >= 2
x <= 2
x
x
x
x
x
x
2?
2?
2?
2?
2?
2?
1
.
>> x = pi
x=
3.1416
>> x ~= 3, x ~= pi
ans =
1
ans =
0
x
>> x = [ -2
x =
-2.0000
-1.0000
>> x == 0
,
pi
5; -1
3.1416
0
.
1 ]
5.0000
1.0000
66 MATLAB/SIMULINK
ans =
0
0
0
1
0
0
x
0
(2,2),
.
x,
1
. 1.
2.3.
.
&
|
~
xor
any
all
(AND)
(OR)
(NOT)
XOR
A
1
1
0
0
A
1
1
0
0
B
1
0
1
0
A&B
1
0
0
0
A
1
1
0
0
B
1
0
1
0
A|B
1
1
1
0
A
1
0
~A
0
1
B
1
0
1
0
xor(A,B)
0
1
1
0
67
MATLAB/SIMULINK
MATLAB-
ans =
any
x.
all
any(x)
x
.
all(x),
,
.
68 MATLAB/SIMULINK
0
0
1
0
0
0
.
x>3
y
x
1,
y
x< 4,
.
y i z,
AND (&),
.
ans.
>> x = [-2
x =
-2.0000
-5.0000
pi
5; -5
3.1416
-3.0000
-3
-1]
5.0000
-1.0000
>> x, L = x >= 0
x =
-2.0000
3.1416
-5.0000
-3.0000
L =
0
1
1
0
0
0
>> pos = x.*L
pos =
0
3.1416
0
0
5.0000
-1.0000
5.0000
0
pos
.
>> x = 0:0.05:6; y = sin(pi*x); Y= (y >=0).*y;
>> plot(x,y,':',x,Y,'-')
69
MATLAB/SIMULINK
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
.2.1.6.
2.4. While
for
.
.
2.4.1:
S = 12 + 2 2 + ..... + n 2
100.
>>
>>
>>
>>
>>
>>
S =1; n = 1;
while S+ (n+1)^2 < 100
n = n+1;
S = S + n^2;
end
[n,S]
ans =
6
91
while
end
).
70 MATLAB/SIMULINK
100,
10
n=2
2.4.2.:
S=5.
x = cos(x).
.
x = /4,
x n = cos( xn 1 )
n=2,3,4 ....
| xn xn-1 |
xn
.
1:
>> x = zeros(1,20) ; x(1) = pi/4;
>> n = 1; d = 1;
>> while abs(d) > 0.001
>> n = n+1; x(n) = cos(x(n-1));
>> d = x(n)-x(n-1);
>> end
>> n,x
n=
14
x=
Columns 1 through 7
0.7854 0.7071 0.7602 0.7247 0.7487 0.7326 0.7435
Columns 8 through 14
0.7361 0.7411 0.7377 0.7400 0.7385 0.7395 0.7388
Columns 15 through 20
0
0
0
0
0
0
.
.
.
20
14-
d<=0.001,
.
.
,
2.
>> xold = pi/4; n = 1; d = 1;
>> while abs(d) > 0.001 & n < 20
>> n = n+1; xnew = cos(xold);
71
MATLAB/SIMULINK
>> d = xnew-xold;
>> xold = xnew;
>> end
>> [n, xnew, abs(d)]
ans =
14.0000 0.7388 0.0007
,
0.001
n < 20.
.
while
while
end
MATLAB
.
e :
e
>>
>>
>>
>>
a = pi^exp(1); c = exp(pi);
if a >= c
b = a^2 - c^2
end
b,
a=
<c= e .
:
>> if a >= c
>> b = sqrt(a^2 - c^2)
>> else
>> b = 0
>> end
b =
0
b
a<c.
72 MATLAB/SIMULINK
if....
if
_1
_1
elseif
_2
_2
.
.
.
else
end
2.6.
(m
, MATLAB
.
.
.
,
, MATLAB
.
.
MATLAB,
MATLAB
.
(
(
,
.
MATLAB
m-
m.
MATLAB
m-
2.6.1.
), MATLAB
),
,
m.
) m-
mm-
) m-
73
MATLAB/SIMULINK
2.6.1:
m-
a
.
a,b
A = s ( s a )( s b)( s b)
MATLAB
s=
a+b+c
2
>> a=10;b=15;c=20;
>> s=(a+b+c)/2;
>> A=sqrt(s*(s-a)*(s-b)*(s-c))
A =
72.6184
,
.
.
m.
m-
work.
mt_p26_01_area.m
s=(a+b+c)/2;
A=sqrt(s*(s-a)*(s-b)*(s-c))
.
>> a=10;b=15;c=20;
>> mt_p26_1_area
A =
72.6184
>> a=3;b=4;c=5;
>> mt_p26_1_area
A =
6
mt_p26_01_area.m
74 MATLAB/SIMULINK
m-
MATLAB
mt_p26_1_area.m
,
mt_p26_1_area.m
.
,
.
m-
.
a, b
,
,
;.
A (
),
;.
m-
.
,
.
.
2.6.02 -
file
File mt_p26_02_crta.m
plot(x,y,'w-')
legend(' matematicka kriva')
title(' Crtez na fukcija ')
xlabel('x-oska'), ylabel('y-oska')
grid
>> x=-pi:pi/20:pi;
>> y=sin(x);
>> mt_p26_02_crta
Crtez na fukcija
1
matematicka kriva
0.8
0.6
0.4
y-oska
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-4
-3
-2
-1
0
x-oska
Sl. 2.6.1.
75
MATLAB/SIMULINK
>> x=-1:2/100:1;
>> y=x.^2;
>> mt_p26_02_crta
Crtez na fukcija
1
matematicka kriva
0.9
0.8
0.7
y-osk a
0.6
0.5
0.4
0.3
0.2
0.1
0
-1
-0.8
-0.6
-0.4
-0.2
0
x-oska
0.2
0.4
0.6
0.8
y
,
m2.6.2.
mm-
,
.
.
.
mt_p26_01_area.m,
function [A] = povr(a,b,c)
% presmetuva povrsina na triagolnik cii
% strani imaat dolzina a, b i c.
% Vlez:
%
a, b, c : Dolzini na strani
% Izlez
%
A: Povrsina na triagolnikot
,
.
76 MATLAB/SIMULINK
% Koristenje:
%
Area = povr(2,3,4)
%-----------------------------------------------s = (a+b+c)/2;
A=sqrt(s*(s-a)*(s-b)*(s-c));
%----------- kraj na funkcijata povr -----------
m-
,
povr.
povr.m
.
E:\mat-vezb,
>>
>>
>>
>>
povr(3,4,5)
Area = povr(3,4,5)
x=10;y=15;z=20;
A=povr(x,y,z)
ans =
6
Area =
6
A =
72.6184
.
3,4
ans.
Area.
x, y
povr
x, y z
A = povr(x,y,z)
A.
.
.
povr.m
s.
s,
.
>> s
??? Undefined function or variable 's'.
s
.
s (
),
77
MATLAB/SIMULINK
.
.
function [A,s] = povr(a,b,c)
:
1.
>> povr(10,15,20)
ans =
72.6184
(
ans.
2.
>> Area = povr(10,15,20)
Area =
72.6184
.
3.
>> [Area, hlen] = povr(10,15,20)
Area =
72.6184
hlen =
22.5000
,
.
1.
MATLAB.
povr
povr.m.
2.
function [
]=
[
:
78 MATLAB/SIMULINK
3.
.
.
%,
MATLAB
%
.
4.
.
,
.
, MATLAB-
2.6.3.
f1 = 0, f 2 = 1, f n = f n 1 + f n 2
ni
1: Fajl E:\mat-prog\Fib1.m (
function f = Fib1(n)
% premetuva n-tiot broj vo
%nizata na Fibonaci
F = zeros(1,n+1);
F(2) = 1;
for i = 3:n+1
n=3,4,5.....
fn.
!)
79
MATLAB/SIMULINK
2: Fajl E:\mat-prog\Fib2.m
n
.
function f = Fib2(n)
% premetuva n-tiot broj vo
%nizata na Fibonaci
if n== 1
f=0;
elseif n==2
f=1;
else
f1 = 0; f2 = 1;
for i = 2:n-1
f = f1 + f2;
f1 = f2; f2 = f;
end
end
%--------------- kraj---------------
3: Fajl E:\mat-prog\Fib3.m
MatLab.
function f = Fib3(n)
% premetuva n-tiot broj vo
% nizata na Fibonaci
if n== 1
f=0;
elseif n==2
f=1;
else
f = Fib3(n-1) + Fib3(n-2)
end
%--------------- kraj---------------
4: Fajl
E:\mat-prog\Fib4.m
80 MATLAB/SIMULINK
function f = Fib4(n)
% premetuva n-tiot broj vo
% nizata na Fibonaci
A = [0 1;1 1];
y = A^n*[1;0];
f = y(1);
%--------------- kraj--------------.
>>
>>
>>
>>
x1
x2
x3
x4
=
=
=
=
Fib1(10)
Fib2(10)
Fib3(10)
Fib4(10)
x1 =
34
x2 =
34
x3 =
34
x4 =
34
.
tic
>>
>>
>>
>>
tic,x1
tic,x2
tic,x3
tic,x4
=
=
=
=
toc,
Fib1(20),toc
Fib2(20),toc
Fib3(20),toc
Fib4(20),toc
x1 =
4181
elapsed_time = 0.1700 sec
x2 =
4181
elapsed_time = 0 sec
x3 =
4181
elapsed_time = 31.8000 sec
x4 =
4181
elapsed_time = 0 sec
81
MATLAB/SIMULINK
2.7.
2.7.1
.
>> x=[ -3.14 0
x =
-3.1400
0
ans =
-3
0
3.14
6.45
10
>> fix(x)
ans =
-3
>> floor(x)
ans =
-4
0
>> ceil(x)
ans =
-3
0
10
3.1400
9.75], round(x)
6.4500
0.1400
9.7500
0.4500
0.7500
round
.
0.5
,
.
fix
.
floor
.
ceil
.
sign
rem(x,k)
.
x
82 MATLAB/SIMULINK
2.7.2
sum
sum
,
.
1,
A 3.
>> A*A'
ans =
1.0000
0
0
0 1.0000 0.0000
0
0.0000
AA'
>> S = eye(3)
1.0000
A'A
83
MATLAB/SIMULINK
S =
1
0
0
0
1
0
0
0
1
>> A*A' - S
ans =
1.0e-015 *
-0.2220
0
0
-0.2220
0
0.0555
0
0.0555
-0.2220
>> A'*A - S
ans =
1.0e-015 *
-0.2220
0
0
-0.2220
0
0.0555
0
0.0555
-0.2220
2.7.3
max
min
sum.
x
min(x)
max(x)
x,
2.3],
max(x),
max(abs(x))
0 2.3000
84 MATLAB/SIMULINK
, max (A),
(
.
max(max(A)).
A,
>> max(max(A)), min(min(A))
ans =
0.7071
ans =
-0.7071
2.7.4
rand(n,m)
0 1.
0 1.
mxn,
rand
0.4565
.
0.7382
m-
.
(
1
6.
rand
0
floor(1 + 6*rand)
file: E:\mat-prog\kocka.m
function [d] = kocka(n)
% simulira n frlawa na par kocki
% Vlez:
n, broj na frlawa
)
0
1,
6,
.
MATLAB/SIMULINK
2, 3
6, 3
6.
3.5,
.
>> sum(kocka(100))/100
ans =
3.5600
3.3100
2.7.5
find
find
x,
>> x = -1:0.05:1;
>> y = sin(3*pi*x).*exp(-x.^2); plot(x,y,':')
>> k = find(y > 0.2)
k=
Columns 1 through 12
9 10 11 12 13 22 23 24
Columns 13 through 15
37 38 39
25 26 27
36
85
86 MATLAB/SIMULINK
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
.2.7.1
>> hold on, plot(x(k),y(k),'o')
>> km = find(x>0.5 & y < 0)
km =
32 33 34
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.8
-0.6
-0.4
-0.2
0.2
.2.7.2.
0.4
0.6
0.8
87
MATLAB/SIMULINK
2.7.6.
find
find
>> A = [ -2
A=
-2 3 4
0 5 -1
6
4;
4
6
8
-1
6;
1]
A
(
2
find
9.
A
.
1
2
3
4
5
6
7
8
9
10
11
12
A(n)
88 MATLAB/SIMULINK
2.8.
MatLab.
2.8.1
MATLAB
MatLabo.
m-
MATLAB
.
:
f ( x) =
1
1
+
6
2
( x 0.3) + 0.01 ( x 0.9) 2 + 0.04
.
m-
humps(x).
file e:\mat-vezbi\humps.m
function y=humps(x)
y = 1./((x-0.3).^2 + 0.01) + 1./((x-0.9).^2 + 0.04)
2.8.2
fplot
x
.
100
80
60
40
20
-20
-5
-4
-3
-2
-1
. 2.8.1
6;
89
MATLAB/SIMULINK
.2.8.1.
>> fplot('humps',[-5
>> grid on
5])
.
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-1
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
.2.8.2.
>> fplot('[2*sin(x+3), humps(x)]', [-5 5])
100
80
60
40
20
-20
-5
-4
-3
-2
-1
.2.8.3.
90 MATLAB/SIMULINK
2.8.3
x,
fmin.
>> x = fmin('humps',0.3,1)
x=
0.6370
0.3
1
.
2.8.4
fzero
.
.
>> a = fzero('humps', -0.2)
a=
-0.1316
a 0.2. fzero
.
.
fzero
:
>> a = fzero('humps', -0.3, 0.0)
a=
-0.1316
.
2.8.5
. MatLab
quad
quad8
Simpsonova
Wutn-Kouts
humps
.
>> q = quad('humps',0,1)
q =
91
MATLAB/SIMULINK
29.8583
:
x(t ) = sin( 2t )
za t [0,3 ] .
y(t ) = cos(t )
z (t ) = t
:
>> t=0:0.1:3*pi;
>> plot3(sin(2*t),cos(t),t)
10
8
6
4
2
0
1
0.5
1
0.5
-0.5
-0.5
-1
-1
.2.8.4.
:
3
,
hcurve.m.
fajl E:\mat-vezbi\hcurve.m
)
function f = hcurve(t)
f = sqrt(4*cos(2*t).^2 + sin(t).^2 +1);
quad.
>> len = quad('hcurve',0,3*pi)
len =
17.2220
92 MATLAB/SIMULINK
2.9.
:
,
.
.
.
.
,
2.9.1
.
.
.
50x50,
2500
m(
)
m-
.
,
.
m.
m-
MatLabmatdat.m
.
.
fajl E:\mat-vezbi\matdat.m (
0.8880
93
MATLAB/SIMULINK
,
.
ASCII
(
.
.
ASCII
).
load
.
fajl E:\mat-vrzbi\b.dat
0.2113 0.8098 0.4832
0.0824 0.9870 0.6512
0.7599 0.4524 0.2749
0.0087 0.8075 0.8880
>> load b.dat
>> b
b =
0.2113
0.0824
0.7599
0.0087
0.8098
0.9870
0.4524
0.8075
0.4832
0.6512
0.2749
0.8880
MatLab-
fopen, fread
)
.
MatLabMatLabo- .
2.9.2
)
,
.
,
diary
diary
.
.
;
diary
.
94 MATLAB/SIMULINK
ASCII
.
save
-ascii
A = rand(4,3);
save temp.dat A -ascii
type temp.dat
9.5012929e-001 8.9129897e-001 8.2140716e-001
2.3113851e-001 7.6209683e-001 4.4470336e-001
6.0684258e-001 4.5646767e-001 6.1543235e-001
4.8598247e-001 1.8503643e-002 7.9193704e-001
,
.
2.9.3
input
input
.
95
MATLAB/SIMULINK
3.
,
.
-
.
.
,
.
.
3.1.
1
p ( x) = x 3 2 x 5
.
MATLAB- ,
.
>> p = [ 1 0 -2 -5]
p =
1
0
-2
-5
.
:
conv
dekonv
polyval
roots
poly
polyfit
96 MATLAB/SIMULINK
3.1.1.
roots
.
.
,
roots
:
>> r = roots(p)
r=
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
,
.
roots
poly.
.
>> p2 = poly(r)
p2 =
1.0000 -0.0000 -2.0000 -5.0000
roots
poly
(
)
poly
roots
2
p(x)
x=5 :
2
primerot e zemen od knigata "MATLAB i dodatni moduli Control system toolbox i Simulink " od
Latinka ^alasan i Menka Petkovska, Mikro kwiga, Beograd
97
MATLAB/SIMULINK
>> polyval(p,5)
ans =
110
:
>> x = [ 0.1 0.5 1 2 3 4 5];
>> v = polyval(p,x)
v=
-5.1990 -5.8750 -6.0000 -1.0000 16.0000 51.0000 110.0000
3.1.3
conv
deconv.
a ( s ) = s 2 + 2 s + 3 i b( s ) = 4 s 2 + 5s + 6
>> a = [ 1 2 3]; b = [ 4 5 6];
>> c = conv(a,b)
c=
4 13 28 27 18
c
a
b.
0
r
.
q.
3.1.4
polyfit
.
.
98 MATLAB/SIMULINK
p = polyfit(x,y,n)
x
y
, n
43.1
128
290.7
498.4];
p =
-0.1917
>>
>>
>>
>>
31.5821
-60.3262
35.3400
polyfit.
x2 = 1:.5:5;
y2 = polyval(p,x2);
plot(x,y,'o',x2,y2)
grid on
500
450
400
350
300
250
200
150
100
50
0
1
1.5
2.5
3.5
4.5
.3.1.1.
3.1.2.
>> x = [0.1 0.3 0.4 0.44 0.5 0.7 0.8];
>> y = [ 1 1.5 1.6 1.4 1.1 1.1 1.5];
>> c = polyfit(x,y,4)
c =
13.2447
1.3735
>> x1 = 0.1:0.01:0.8;
-20.3555
10.3114
0.1641
99
MATLAB/SIMULINK
>> y1 = polyval(c,x1);
>> plot(x1,y1,x,y,'*')
1.6
1.5
1.4
1.3
1.2
1.1
0.9
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
3.2.
,
polyfit,
(
)
.
.
3
3.2.1
,
4
3
4
100 MATLAB/SIMULINK
x = [ 0 1 3 ]';
fx = [ -5 1 25]';
A = myvander(x)
coef = A\fx
A =
0
1
9
coef =
2
4
-5
0
1
3
1
1
1
coef = A\fx
.
coef = A-1*fx.
:
f ( x) = 2 x 2 + 4 x 5
.
>> x1 = 0:0.2:3.4;
>> y1 = polyval(coef,x1);
>> plot(x1,y1,x,fx,'*')
101
MATLAB/SIMULINK
35
30
25
20
15
10
5
0
-5
0.5
1.5
2.5
3.5
.3.2.1
MatLab,
vander(x).
>> A = vander(x)
A =
0
1
9
0
1
3
1
1
1
myvander.
myvander
.
,
.
3.2.2
L0 (x), L1(x),...., Ln(x),
x,
5
15.
102 MATLAB/SIMULINK
MatLab.
.
,
.
function [C,L] = lagrange(X,Y)
%-----------------------------------------------------------%LAGRANGE Konstrukcija na polinom so metoda na Lagranzova
%
interpolacija
% Nacin na povikuvawe
% [C] = lagrange(X,Y)
% [C,L] = lagrange(X,Y)
% Inputs
% X vector na vrednostite na nezavisnata promenliva
% Y vector na zavisnata promenliva
% Izlez
% C lista na koeficienti za Lagrange polinom
% L matrica koja gi sodrzi poedinecnite Lagrange polnomi
%
%----------------------------------------------------------n1 = length(X);% dolzina na vektorot X, broj na elementi
n = n1-1;
L = zeros(n1,n1);% se generira matrica so n1xn1 nuli
for k=1:n+1, % formirane na koeficientite na Lagrange plinom
V = 1;
% so koristene na poly(r1)za kreirawe na polinom
for j=1:n+1, % so poznati koreni, i conv(P2,P1)
if k ~= j, % za mnozenje na polinomi.
V = conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:) = V;
end
C = Y*L;
mm-
myvander
>> x = [ 0 1 3];
>> y = [ -5 1 25];
>> [coef,L] = lagrange(x,y)
coef =
2.0000
L =
4.0000
-5.0000
lagrange,
.
103
MATLAB/SIMULINK
0.3333
-0.5000
0.1667
-1.3333
1.5000
-0.1667
1.0000
0
0
.
,
.
3
.
L,
:
L2(x)
L0(x),
L1(x)
:
>> x = 0:0.1:3;
>> L0 = L(1,:); L1=L(2,:);L2=L(3,:);
>> y0 = polyval(L0,x);
>> y1 = polyval(L1,x);
>> y2 = polyval(L2,x);
>> plot(x,y0,x,y1,x,y2)
>> grid on
1.2
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
0.5
1.5
.3.2.2
2.5
104 MATLAB/SIMULINK
coef)
.
:
>> x1 = [ 0.5 1.5 2];
>> y1 = polyval(coef,x1)
y1 =
-2.5000
5.5000
3.2.3.
11.0000
-
.
6
105
MATLAB/SIMULINK
C
0- , 1, 2, ....
,
,
k f (x)
k !.
MatLab.
17 :
>> x = [0 1 2]; y=[ -5 1 11];
>> [C,D] = newtint(x,y)
C =
2
-5
-5
1
11
0
6
10
0
0
2
D =
28 :
>> x = [ 0 1 2 3 4]; fx=[ -5 1 9 25 55];
>> [C,D]=newtint(x,fx)
C =
0
-2
-5
-5
1
9
25
55
0
6
8
16
30
0
0
1
4
7
0
0
0
1
1
0
0
0
0
0
D =
1.5
>> a = 1.5;
>> vrd = polyval(C,a)
vrd =
4.3750
7
8
106 MATLAB/SIMULINK
3.3.
,
(
,
.
.
.
3.3.1.
,
,
f ( x0 ) = lim
x 0
f ( x0 h ) f ( x0 + h )
f
= lim
h
0
2*h
x
x0.
,
f,
function [H,D,E,n] = difflim(f,x,toler)
%----------------------------------------------------------%DIFFLIM Numericka aproksimacija na f'(x).
%
Metodata se bazira na presmetuvanje na limes.
% Primer na povikuvnje:
% [H,D,E,n] = difflim('f',x,toler)
% Vlez:
% f name of the function
% x differentiation point
% Izlez:
% H vector na golemina na cekori
% D vector na priblizna vrednost na izvodot
% E vector na greska vo sekoj cekor
% n elementot D(n) "najdobra aproksimacija na f'(x)"
%
9
107
MATLAB/SIMULINK
m-
%1
%2
%3
%4
%5
%6
%7
%8
%9
%10
%11
%12
%13
%14
%15
%16
%17
%18
%19
%20
difflim,
f,
, toler,
.
.
cos(x)
m-
file:f.m
function z = f(x)
z = cos(x);
.
(
,
difflim
.
H
.
E
. Brojot n
D
(
).
108 MATLAB/SIMULINK
.
.
,
.
.
difflim
.
12:
3:
1.
15.
H.
4:
(**)
,
D.
f
feval('f',x).
f
1.8
-0.2
>> x = 0.8;
>> h = 1;
>> f1 = feval('f',x+h)
>> f2 = feval('f',x-h)
>> izv = (f1-f2)/(2*h)
f1 =
-0.2272
f2 =
0.9801
izv =
-0.6036
'f',
feval
5:
6:
.
for
.
.
13:
while
D(n)
E(n).
while
.
109
MATLAB/SIMULINK
20:
n,
D
.
m>>
>>
>>
>>
MatLab
x0 = 0.8;
toler = 1e-7;
[H,D,E,n] = difflim('f',x0,toler);
n,H(n),D(n),E(n)
n =
4
ans =
1.0000e-004
ans =
-0.7174
ans =
1.1836e-007
x=0.8
D(4)=-0.7174,
H(4)=0.0001
E(4)=0.000000118.
3.3.2.
.
.
10
,
x0
).
newtint(x,y)
x (
m.
.
(
MatLab
.
help)
2.3
polyder
polyval
.
m-
function vr = newtdiff(x,y,x0)
[C,D] = newtint(x,y);
10
110 MATLAB/SIMULINK
derc = polyder(C);
vr = polyval(derc,x0);
newtdiff
3.1.
:
>> x = 0:0.2:1.2;
>> y = cos(x);
>> x0 = 0.8;
>> izvod = newtdiff(x,y,x0)
izvod =
-0.7174
11
>>
>>
>>
>>
x=1:0.05:1.3;
y = sqrt(x);
x0 = 1.0;
izvod = newtdiff(x,y,x0)
izvod =
0.5000
3.4.
,
quad
.
quad8
12
3.4.1
m-
11
12
Od predavawata na strana 24
Vidi 3.2 od predavawata vo vtoriot semestar
111
MATLAB/SIMULINK
function v = trapez(x,y)
n = length(x);
m = length(y);
if m ~= n
display(' x i y nemaat ednakov broj na podatoci ')
break
end
v = 0;
for k=1:n-1
v=v+(x(k+1)-x(k))*(y(k+1)+y(k))/2.0;
end
x
y
x(1)
y,
x(n).
13
>> x = 0.4:0.1:1.0;
>> y = exp(x)./x;
>> integral = trapez(x,y)
integral =
1.7950
14
>> x = 0:pi/12:pi/2;
>> y = sin(x);
>> integral = trapez(x,y)
integral =
0.9943
sin(x)
1.
[0,pi/2],
.
.
>>
>>
>>
>>
13
14
x = 0:pi/500:pi/2;
y = sin(x);
format compact
integral = trapez(x,y)
od predavawata na st. 29
od predavaqata na st. 30
112 MATLAB/SIMULINK
integral =
0.99999671012970
1,
5-
500.
3.4.2
15
.
.
function v = simpson(h,y)
%------------------------------% vlezni parametri
% h cekor na integracija ( interval)
% y() vrednosti na funkcijata t.e podatoci vo brojcana forma
%------------------------------n = length(y);
% se ispituva dali ima neparen broj na podatoci
% ako ne da se namali za eden
m = n;
if rem(n,2) == 0
m = n-1;
end
m,n
v = 0.0;
for k=2:m-1
if rem(k,2)== 0
v = v+4.0*y(k);
else
v = v+2.0*y(k);
end
end
v = h*(v + y(1)+y(m))/3;
% vo slucaj na paren broj na tocki dodaj ja
% poslednata povrsina koristejki trapezno pravilo
if rem(n,2) == 0
v = v+h*(y(n)+y(n-1))/2;
end
15
113
MATLAB/SIMULINK
>>
>>
>>
>>
h = pi/500;
x = 0:h:pi/2;
y = sin(x);
integral = simps1(h,y)
integral =
1.0000
3.4.3.
.
.
,
16
.
.
.
m5
gauss5,
114 MATLAB/SIMULINK
fz = fct*feval(f,x);
sum = sum+w*fz;
end
.
>> a = 0;
>> b = pi/2;
>> integral = gauss5('f',a,b)
integral =
1.0000
f
m-
function z = f(x)
z = sin(x);
>> a = 0.4;
>> b = 1.0;
>> integral = gauss5('f',a,b)
integral =
1.7904
f
so:
function z = f(x)
z = exp(x)/x;
>> a = 1;
>> b = 2;
>> integral = gauss5('ff',a,b)
integral =
0.6931
ff
function z = ff(x)
z = 1./x;
m-
115
MATLAB/SIMULINK
quad quad8.
a = 1;
b = 2;
err = 1.e-5;
format long;
integral = quad('ff',a,b,err)
>>
>>
>>
>>
>>
integral =
0.69314722007998
>>
>>
>>
>>
a = 1;
b = 2;
err = 1.e-5;
integral = quad8('ff',a,b,err)
integral =
0.69314718056011
3.5.
,
,
.
.
.
.
MATLAB,
MATLABOT
.
.
3.5.1
2x1 + x2 = 4
x1 - x2 = -1
Ax = b
MATLAB
t.e
2 1 x1 4
1 1 x = 1
116 MATLAB/SIMULINK
>>
>>
>>
>>
>>
A=[2 1; 1 -1];
b = [4 -1]';
x = A\b
c = A*x
err = b-c
x=
1
2
c=
4
-1
err =
0
0
\
b
x.
e:
x = A 1b
A-1
A.
.
>> Ainv = inv(A)
>> x = Ainv*b
Ainv =
0.3333 0.3333
0.3333 -0.6667
x=
1.0000
2.0000
MatLab,
.
.
A (3,:) = [ 1 1]
b(3) = 4
x = A\b
c = A*x
117
MATLAB/SIMULINK
razlika = b-c
err = norm(razlika)
A=
2 1
1 -1
1 1
b=
4
-1
4
x=
1.0714
2.2857
c=
4.4286
-1.2143
3.3571
razlika =
-0.4286
0.2143
0.6429
err =
0.8018
x e
razlika.
x1 =
1.09
2.24
x
>> x1 = [1.09 2.24]'
>> c1 = A*x1
>> raz1 = b - c1
>> err1 = norm(raz1)
>> err1 - err
x1 =
1.0900
2.2400
c1 =
4.4200
-1.1500
3.3300
raz1 =
-0.4200
0.1500
118 MATLAB/SIMULINK
0.6700
err1 =
0.8049
ans =
0.0031
.
:
>> A = [ 10 -7 0; -3 2 6; 5 -1 5]
>> b = [7 4 6]'
>> x = A\b
>> c = A*x
>> err = b-c
A=
10 -7 0
-3 2 6
5 -1 5
b=
7
4
6
x=
0
-1
1
c=
7
4
6
err =
0
0
0
:
>> A = [ 1.0 0.8 0.64;1.0 0.9 0.81; 1.0 1.1 1.21]
>> b = [erf(0.8) erf(0.9) erf(1.1)]'
>> x = A\b
>> c = A*x
>> err = b-c
A=
1.0000
1.0000
0.8000 0.6400
0.9000 0.8100
119
MATLAB/SIMULINK
.
10-15,
err
3.5.1
,
17
.
(30x30).
,
,
.
,
.
.
gaussj
MATLAB- .
for
function X = gaussj(A,B)
17
Gaus-Jordan
,
(8
)
.
120 MATLAB/SIMULINK
%1
%2
%3
%4
%5
%6
%7
%8
%9
%10
%11
121
MATLAB/SIMULINK
0.1110
0.1110
0.2220
>> A = [ 10 -7 0; -3 2 6; 5 -1 5]
>> b = [7 4 6]'
>> x = gaussj(A,b)
>> c = A*x
>> err = b-c
A=
10 -7 0
-3 2 6
5 -1 5
b=
7
4
6
x=
0
-1.0000
1.0000
c=
7.0000
4.0000
6.0000
err =
1.0e-013 *
-0.3109
0.1066
-0.0355
(Gaus - Zajdel)18
3.5.2
,
.
Zejdel18
gseid
.
MatLab-
a Gaus-
122 MATLAB/SIMULINK
>> A = [ 10 1 1; 2 10 1; 2 2 10]
>> b = [12 13 14]'
>> x0 = [ 1.07 0.4 2.3]'
>> toler = 1.e-8
>> maxiter = 20
>> [x,DX,Z] = gseid(A,b,x0,toler,maxiter)
>> c = A*x
>> err = b-c
19
MATLAB/SIMULINK
A=
10 1 1
2 10 1
2 2 10
b=
12
13
14
x0 =
1.0700
0.4000
2.3000
toler =
1.0000e-008
maxiter =
20
x=
1.0000
1.0000
1.0000
DX =
1.0e-008 *
0.2106
0.0150
0.0451
Z=
1.0700 0.4000
0.9300 0.8840
1.0079 0.9947
1.0006 0.9999
1.0000 1.0000
1.0000 1.0000
1.0000 1.0000
1.0000 1.0000
1.0000 1.0000
c=
12.0000
13.0000
14.0000
err =
1.0e-009 *
0.3013
0.4511
0
2.3000
1.0372
0.9995
0.9999
1.0000
1.0000
1.0000
1.0000
1.0000
123
124 MATLAB/SIMULINK
>> A = [ 8 1 1; 1 5 -1; 1 -1 5]
>> b = [26 7 7]'
>> x0 = [ 1.07 0.4 2.3]'
>> toler = 1.e-6
>> maxiter = 20
>> [x,DX,Z] = gseid(A,b,x0,toler,maxiter)
>> c = A*x
>> err = b-c
A=
8 1 1
1 5 -1
1 -1 5
b=
26
7
7
x0 =
1.0700
0.4000
2.3000
toler =
1.0000e-006
maxiter =
20
x=
3.0000
1.0000
1.0000
DX =
1.0e-005 *
0.1308
0.0940
0.0450
Z=
1.0700 0.4000
2.9125 1.2775
2.9562 1.0234
2.9954 1.0036
2.9993 1.0005
2.9999 1.0001
3.0000 1.0000
3.0000 1.0000
3.0000 1.0000
c=
26.0000
7.0000
7.0000
2.3000
1.0730
1.0134
1.0016
1.0002
1.0000
1.0000
1.0000
1.0000
125
MATLAB/SIMULINK
err =
1.0e-005 *
0.1389
-0.0450
0
x0 =
.
126 MATLAB/SIMULINK
2.9860 1.0097
2.9982 1.0013
2.9998 1.0002
3.0000 1.0000
3.0000 1.0000
3.0000 1.0000
3.0000 1.0000
c=
26.0000
7.0000
7.0000
err =
1.0e-006 *
0.5188
-0.1679
0
1.0047
1.0006
1.0001
1.0000
1.0000
1.0000
1.0000
),
.
.
48.
49
.
>> A = [ 65 17 -13 7
23 56 11 -19
-5 3 47 20
16 12 17 18]
>> b = [84 36 18 25]'
>> x0 = [ 1.07 0.4 2.3 0.5]'
>> toler = 1.e-8
>> maxiter = 100
>> [x,DX,Z] = gseid(A,b,x0,toler,maxiter);
>> [iter,m]=size(Z);
>> x,iter
>> c = A*x
>> err = b-c
A=
65 17 -13 7
23 56 11 -19
-5 3 47 20
16 12 17 18
b=
84
36
18
127
MATLAB/SIMULINK
25
x0 =
1.0700
0.4000
2.3000
0.5000
toler =
1.0000e-008
maxiter =
100
x =
1.6181
-0.3788
0.8241
-0.5752
iter =
33
c =
84.0000
36.0000
18.0000
25.0000
err =
1.0e-006 *
0.3173
-0.2172
0.1472
0.0000
3.6.
20
),
.
.
,
least square error LSQ )21.
20
Vo angliskata literatura ovoj vid na aproksimacija se narekuva "fitting". Vo na{iot jazik
soodveten prevod ne postoi zatoa ~esto mo`e da se sretne samiot zbor fiting. Najblisku do
prevodot e "aproksimacija" iako vo angliskata literatura zborot aproksimacija (aproximation)
e poseben zbor. Vo statistikata postapkata se narekuva regresija a krivata regresiona kriva.
21
Vidi predavawa str. 53.
128 MATLAB/SIMULINK
3.6.1
LSQ
.
m-
polyfit.
m.
y = ( y1 , y 2 ,...., y n )
x = ( x1 , x 2 ,..., x n )
p ( s) = a k x k + a k 1 x k 1 + .... + a1 x + a 0
ak, ak-1 ,...,a1,a0
.
S = j =1 ( p ( x j ) y j ) 2
n
y1
y
ak
2
a
y3
k 1
'
'
A A . = A .
.
a1
a 0
y n1
y
n
A
129
MATLAB/SIMULINK
x1k
k
x2
x3k .
A= .
.
k
xn 1
xk
n
x1k 1 .
x
x
k 1
2
k 1
3
.
.
x
x
k 1
n 1
k 1
n
.
.
.
x1
x2
x3
.
.
.
. xn 1
.
xn
A
,
M-
polylsq
.
1
1
.
.
1
1
(n,(k+1))
A'
(k+1)
A.
MATLAB
%1
%2
%3
130 MATLAB/SIMULINK
end
S = A'*A;
b = A'*y;
C = S\b;
Err = norm((y-A*C));
%4
%5
%6
%7
%8
for
A'A
,
2-4)
6-
A.
,
A'.
\
.
.
:
>> x =[0 1 2 3 4 5 6];
>> y =[ 2 3 5 5 8 9 10];
>> [C,Err]=polylsq(x,y,1)
C =
1.3929
1.8214
Err =
1.2956
(Err = 1.2956 )
p( x) = 1.3929x + 1.8214
(
m-
. =2)
polylsq
.
2.
131
MATLAB/SIMULINK
>> y =[ 2 3 5 5 8 9 10];
>> [C3,Err3]=polylsq(x,y,3)
C3 =
-0.0278
0.2619
0.7659
2.0476
Err3 =
1.2247
Err3 = 1.2247
.
?
,
.
.
.
.
.
>>
>>
>>
>>
x1 = 0.0:0.2:6.2;
y1 = polyval(C,x1);
y3 = polyval(C3,x1);
plot(x,y,'o',x1,y1,'-',x1,y3,'--')
11
10
9
8
7
6
5
4
3
2
1
0
.3.6.1.
132 MATLAB/SIMULINK
,
.
(
.
polyfit.
>> [C1,Q1] = polyfit(x,y,1)
>> [C2,Q2] = polyfit(x,y,2)
>> [C3,Q3] = polyfit(x,y,3)
C1 =
1.3929 1.8214
Q1 =
R: [2x2 double]
df: 5
normr: 1.2956
C2 =
0.0119 1.3214 1.8810
Q2 =
R: [3x3 double]
df: 4
normr: 1.2910
C3 =
-0.0278 0.2619 0.7659
Q3 =
R: [4x4 double]
df: 3
normr: 1.2247
2.0476
,
normr.
3.6.2
.
.
f ( x) = a k q k ( x) + a k 1 q k 1 ( x) + .... + a1q1 ( x)
qk(x)
.
.
133
MATLAB/SIMULINK
q k 1 ( x1 )
q k ( x1 )
q (x )
q k 1 ( x 2 )
k 2
q k ( x3 )
q k 1 ( x3 )
A=
.
.
.
.
q k ( x n1 ) q k 1 ( xn 1 )
q (x )
q k 1 ( x n )
k n
q1 ( x1 )
q2 ( x 2 )
q1 ( x 2 )
q 2 ( x3 )
q1 ( x3 )
.
.
.
.
q 2 ( xn 1 ) q1 ( xn 1 )
q2 ( xn )
q1 ( xn )
q 2 ( x1 )
.
.
.
.
.
.
,
ak,
qk.
(non-linear least sqyare NLSQ).
.
.
f ( x) = a1 q1 ( x) kade q1 ( x) = e bx
a1
q1.
.
ln( f ( x)) = ln a1 + bx
:
y = c + bx
m-
polylsq.
.
>> x = 0:0.1:3;
>> a = 5.5;
>> b=-1.2;
>> y = a*exp(b*x);
>> n=length(y);
>> z = rand(1,n)-0.2;
>> y1 = y+z;
>> plot(x,y1,'o')
134 MATLAB/SIMULINK
0.5
1.5
2.5
.
y
-0.2
a*exp(b*x).
>>
>>
>>
>>
>>
>>
>>
0.2.
ylg = log(y1);
[C,Err] = polylsq(x,ylg,1)
alg = C(2)
breg = C(1)
areg = exp(alg)
yteor = areg*exp(breg*x);
plot(x,y1,'o',x,yteor,'-')
C=
-0.8863
1.5706
Err =
2.8748
alg =
1.5706
breg =
-0.8863
areg =
4.8095
y=
135
MATLAB/SIMULINK
0
0
0.5
1.5
2.5
a
4.8095
b e -0.8863.
5.5
-1.2.
136 MATLAB/SIMULINK
3.7.
137
MATLAB/SIMULINK
4.
SIMULINK
4.1.
SIMULINK
SIMULINK
MATLAB
.
SIMULINK,
.,
. Simulink
MATLAB
SIMULINK
,
SIMULINK
Unix, Macintosh
MATLAB
SIMULINK
,
Control System toolbox
4.2.
,
,
. SIMULINK
.
MATLAB
.
Windows;
.
MATLAB
.
SIMULINK
SIMULINK
Command Windows)
>>
Enter
.4.2.1.
SIMULINK
, SIMULINK
.
.4.2.3.
(
.4.2.2).
MATLAB (MATLAB
simulink
.4.2.1)
138 MATLAB/SIMULINK
.4.2.2.
Simulink
.4.2.3. Simulink
139
MATLAB/SIMULINK
4.3.
Simulink,
,
.
.4.2.2)
(
. work)
MATLAB.
File
MATLAB.
mt_p42_01_Primer.mdl.
1)
.4.2.1)
>>
>> mt_p42_01_Primer
,
Enter
4.3.1).
.
2)
File
File,
Open
-
mt_p42_01_Primer. mdl (
3)
.4.3.2
.4.3.2.).
Ctrl+O
MATLAB
Ctrl+O.
- mt_p42_01_Primer.mdl
.4.3.1.
Simulink mt_p42_01_Primer
140 MATLAB/SIMULINK
.4.3.2.
Simulink
(
.4.3.1)
4.4.
Simulink:
,
(lines).
(blocks)
,
.
.
4.4.1.
.4.4.1.
6.5.
.
4.2.,
Simulink.
( .4.4.1. ) .
Simulink
.4.4.1. ).
e(
Continuous
141
MATLAB/SIMULINK
.4.4.1.
Simulink
6.5)
:
(Continuous)
,
(Diskontinuities)
,
(Discrete)
,
(Look-Up Tables)
),
(Math Operations)
.),
(
(Signal Routing),
(Sinks)
(Sources)
,
,
(User Defined Functions)
.
.
.
.
.4.4.2.
(
).
142 MATLAB/SIMULINK
. 4.4.2.
4.4.2.
.
.
,
.4.4.3.
. 4.4.3.
:
.
.
.
(SISO Single-Input, Single Output Systems),
.
(MIMO Multi-Input, MultiOutput Systems),
.
.
.
4.4.3.
Transfer function
Scope.
mt_p42_02_Primer (Sl.4.4.4)
Step
u=S(t)
: Step,
(source block)
)
.
143
MATLAB/SIMULINK
.
y=y(t)
(sink block).
Scope
Scope
.
.4.4.4.
Simulink,
.
.4.4.4.
4.4.4.
.
,
Transfer Fcn
.4.4.4.
.
.
,
.
,
Denominator
s^2+2s+1,
Close, posle
: [1 2 1]
.4.4.6.
.4.4.5.
Transfer Fcn
144 MATLAB/SIMULINK
.4.4.6.
Transfer Fcn
"Step"
.
.4.4.7.
"Step"
Default
,
t=1 sec,
t=1).
"step"
1. (
.
.
"Scope" .
.4.4.8.
145
MATLAB/SIMULINK
.4.4.8.
"Scope"
,
"Scope"
..
"Scope"
4.5.
,
: mt_p42_03_Primer.mdl.
Simulink
.
.4.4.9.
.4.4.9.
146 MATLAB/SIMULINK
,
Scope.
Simulation.
.4.4.10.
.4.4.10.
Start
.
.4.4.11.
.4.4.11.
.
.
.4.4.12.
147
MATLAB/SIMULINK
.4.4.12.
Ctrl-T.
.4.4.12.
t=
1.
"step".
.
"Transfer Fcn"
: [1 20 400]
,
Ctrl-T,
,
(
.4.4.13 ).
)
.4.4.13. )
, )
.
,
.
.
148 MATLAB/SIMULINK
Simulink
10
-
Simulation
Simulation Parameters .
.4.4.14.
)
.4.4.14. Dialog-box Simulation Parameters )
, )
,
.
(Simulation time: Start time Stop time).
Start time
0.0
t=1.0).
10.0
2.0
0.8 (
Stop time
.
.
)
,
.4.4.15.
.4.4.15.
.4.4.14 )
149
MATLAB/SIMULINK
4.6.
.4.6.1.
(block libraries).
)
.
.
.
4.6.1.
:
1)
Simulink (
Ctrl-N,
4.2)
4.6.2. )
.
New
File
)).
150 MATLAB/SIMULINK
)
.4.6.2. )
)
.4.6.2. )
Simulink
:
Continuous (
), Discontinuities, Discrete, Look-Up Tables,
Math Operations (
), , Signal Routing, Sinks (
),
Sources (
), User-Defined Functions.
.
.4.6.2. )
Continuous
(Derivative, Integrator, State Space, Transfer FCN, Transport Delay, Variable Transport
Delay, Zero-Pole).
.
2)
Sources
(
.4.6.3. ).
Step,
.
Step
.
.4.6.3. ).
.
3)
Math Operations (
(Sum)
),
(Gain). O
.4.6.4. )
151
MATLAB/SIMULINK
)
.4.6.3. )
Sources (
), )
)
.4.6.4. )
Math Operations
), )
Continuous (
4)
Continuous (
(
.4.6.4. ).
.4.4.1).
.
5)
.
Sinks (
(
)
Scope).
.
.4.6.5.
152 MATLAB/SIMULINK
.4.6.5
.
(
)
.
.
Transfer Function
1.
1.
.
4.6.2.
.
-
Sum.
List of signs
+-.
.
-
Gain.
.
Transfer Fcn.
2.5
[1 2],
[1 0].
-
.
Transfer Fcn1.
[1 2 4].
,
,
.4.6.6.
[1],
.
153
MATLAB/SIMULINK
.4.6.6.
-
.
.
.
Transfer Fcn
PI Regulator.
Transfer Fcn1
Objekt.
.
.4.6.7.
.4.6.7.
4.6.3.
.
.
-
Step.
154 MATLAB/SIMULINK
.
.
,
(
),
,
Step.
,
.4.6.8.
.4.6.8.
.
.
,
.
. 4.6.9.
.4.6.9.
.
155
MATLAB/SIMULINK
.
.
,
.
Objekt Scope,
Ctrl
(
.
)
.4.6.10.
.4.6.10.
.
.
.4.6.11.
.4.6.11.
156 MATLAB/SIMULINK
,
.4.6.11.
,
.
,
,
.
,
.
.
.
.
(
)
(
.4.6.12.
.4.6.12.
-
.
,
.
.
.
: r
, y
.
, e
.
.4.6.13
, u
157
MATLAB/SIMULINK
.4.6.13.
-
File
Save As
.
mt_p46_02_primer.mdl.
(
.4.6.14).
.4.6.14.
mt_p46_02_primer.mdl
.4.6.14
.
158 MATLAB/SIMULINK
4.6.4.
,
.
Simulation
Start
Scope
(
.4.6.15.
.4.6.15.
4.6.5.
MATLAB
,
,
Simulink
.
.
K.
:
>> K=2.5
a
Simulink
Gain
,
,
Gain
Gain.
.
159
MATLAB/SIMULINK
.4.6.16.
.4.6.17.
Scope.
.4.6.15
.
.4.6.17).
Gain
.
.4.6.18.
160 MATLAB/SIMULINK
.4.6.18.
=2.5
.
:
>>
=5
.
,
4.6.19.
.4.6.19.
=5
,
.
161
MATLAB/SIMULINK
5.
,
,
.
.
.
.
5.1.
5.1.1.
,
. 5.1.1.
kx
m
F (t )
c&x
F (t )
. 5.1.1.
,
. 5.1.1
d 2x
dx
+ c + kx = F (t )
2
dt
dt
(5.1.1.)
d 2 x c dx k
1
+
+ x = F (t )
2
m dt m
m
dt
(5.1.2)
162 MATLAB/SIMULINK
F(t)
kx
dx
c
= cx& dt
,
,c
(5.1.2)
,
:
&x& =
c
k
1
x& x + F (t )
m
m
m
(5.1.3)
.5.1.1
x
dx / dt = x& .
x1 = x
x2 = x&
(5.1.4)
(5.1.3)
,
x&1 = x2
x& 2 =
(5.1.5)
1
[ F (t ) cx2 kx1 ]
m
(t=0) ,
F(t)=25N .
,
:
N
]
m/s
,
,
),
(ode23
.
fc_mehsist.m:
%
function dx = fc_mehsyst(t,x); % Gi presmetuva izvodite na varijablite na sostojba
%
% Parametri na sistemot
F = 25;
% Nadvoresna sila - Step vlez [N]
m =1;
% Masa [kg]
c = 5;
% Koeficient an prigusniot element [N/m/s]
k = 25;
% Koeficient na pruzinata [N/m]
%
% Presmetka na desnite strani na diferencijalnite ravenki
dx = [x(2) ; 1/m*( F - c*x(2) - k*x(1))];
MATLAB/SIMULINK
: mt_p51_01_fc_mehsist.m
. 5.1.2.
163
164 MATLAB/SIMULINK
5.1.2.
. 5.1.3.
G = mg[kg ]
[m].
C[
[rad ]
N
].
m/ s
,
VT = x& = L&
(
.5.1.3)
FT = G sin CL&
&
FN
x& = VT = L&
m&x& = mL&& = FT
G sin
C&x
G cos
G = mg
.5.1.3.
:
mL&& = FT
:
165
MATLAB/SIMULINK
.
: x1 = (
)
x2 = & (
),
x&1 = x2
x& 2 =
G
C
sin x1
x2
mL
m
MATLAB.
M-file
),
fc_nisalo.m
M-file
.
M-File:
%
function dx = fc_nisalo(t,x);
(
mt_p51_02_fc_nisalo.m.
% Presmetuvanje na izvodite
% na varijablite na sostojba
% Parametri na nisaloto
%
G = 2;
% Tezina na nisaloto[N]
L = 0.6;
% Dolzina na stapot [m]
C = 0.02;
% Koeficient na prigusuvanje [N/m/s]
g0 = 9.81;
% Zabrzuvanje na zemjinata teza [m/s^2]
m = G/g0;
% Masa na nisaloto [kg]
%
% Presmetka na desnite strani na dif. ravenki
%
dx = [x(2); (-C/m)*x(2)-G/(m*L)*sin(x(1))]; % dx = d/dt(x)
%
% GLAVNA PROGRAMA
% SUL_PrV2_2_fc_nisalo.m
%
clg
%
t0 = 0;
% pocetno vreme
tf = 5;
% krajno vreme
x0 = [1, 0];
% pocetni uslovi
tol = 0.0001;
% tocnost
trace = 0;
% ako ne e nula sekoj cekor se pecati
%
% Integracija na dif. ravenki
[t,x] = ode23('fc_nisalo',t0,tf,x0,tol,trace);
%
% Crtanje na varijablite:
%
subplot(211),plot(t,x), grid
166 MATLAB/SIMULINK
. 5.1.5.
tf.
.
.
. 5.1.4.
. 5.1.3. (tf=5 s)
MATLAB/SIMULINK
. 5.1.5.
. 5.1.3. (tf=20 s)
167
168 MATLAB/SIMULINK
6.
MATLAB/SIMULINK
169
7.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10. Hadi Saadat: Computational Aids in Control Systems Using Matlab, McGraw-Hill,
Inc. New York, 1993.
11. Hadi Saadat: Power System Analysis, Second edition, McGraw-Hll Primis, New
York, 2002.
12. Delores M. Etter: Engineering Problem Solving with Matlab, Second Edition,
Prentice Hall, Inc, New Jersey, 1993.
13. Norman S. Nise: Control Systems Engineering, Third Edition, John Wiley and
Sons, Inc, New York, 2000.
14. Richard C. Dorf, Robert H. Bishop: Modern Control Systems, Ninth Edition,
Prentice Hall Inc. 2001.
15. Robert H. Bishop: Modern Control Systems Analisys and Design Using MATLAB,
Addison Weley Publishing Company, New York, 1993.
16. Robert H. Bishop: Modern Control Systems Analisys and Design Using MATLAB
and SIMULINK, Addison Weley Longman, Inc. Menlo Park, California, 1997.
17. SIMULINK Dynamic System Simulation for MATLAB Using SIMULINK
Version 3, The Math Works, Inc. 1999. (http://www.mathworks.com )
18. Control Tutorials for Matlab, Carnegie Melon, University of Michigan,
http://www.engin.umich.edu/group/ctm/
19.
170 MATLAB/SIMULINK
MATLAB/SIMULINK
8.
1: HELP
MatLab- ,
help,
.
help
HELP topics:
matlab\general
matlab\ops
matlab\lang
matlab\elmat
matlab\elfun
matlab\specfun
matlab\matfun
matlab\datafun
matlab\polyfun
matlab\funfun
matlab\sparfun
matlab\graph2d
matlab\graph3d
matlab\specgraph
matlab\graphics
matlab\uitools
matlab\strfun
matlab\iofun
matlab\timefun
matlab\datatypes
matlab\winfun
matlab\demos
171
172 MATLAB/SIMULINK
helpwin
helpdesk
demo
ver
whatsnew
Readme
MATLAB/SIMULINK
vms
web
computer
help elmat
Elementary matrices and matrix manipulation.
Elementary matrices.
zeros
- Zeros array.
ones
- Ones array.
eye
- Identity matrix.
repmat
- Replicate and tile array.
rand
- Uniformly distributed random numbers.
randn
- Normally distributed random numbers.
linspace
- Linearly spaced vector.
logspace
- Logarithmically spaced vector.
meshgrid
- X and Y arrays for 3-D plots.
:
- Regularly spaced vector and index into matrix.
Basic array information.
size
- Size of matrix.
length
- Length of vector.
ndims
- Number of dimensions.
disp
- Display matrix or text.
isempty
- True for empty matrix.
isequal
- True if arrays are identical.
isnumeric
- True for numeric arrays.
islogical
- True for logical array.
logical
- Convert numeric values to logical.
Matrix manipulation.
reshape
- Change size.
diag
- Diagonal matrices and diagonals of matrix.
tril
- Extract lower triangular part.
triu
- Extract upper triangular part.
fliplr
- Flip matrix in left/right direction.
flipud
- Flip matrix in up/down direction.
flipdim
- Flip matrix along specified dimension.
rot90
- Rotate matrix 90 degrees.
:
- Regularly spaced vector and index into matrix.
find
- Find indices of nonzero elements.
end
- Last index.
sub2ind
- Linear index from multiple subscripts.
ind2sub
- Multiple subscripts from linear index.
Special variables and constants.
173
174 MATLAB/SIMULINK
ans
eps
realmax
realmin
pi
i, j
inf
NaN
isnan
isinf
isfinite
flops
why
Specialized matrices.
compan
- Companion matrix.
gallery
- Higham test matrices.
hadamard
- Hadamard matrix.
hankel
- Hankel matrix.
hilb
- Hilbert matrix.
invhilb
- Inverse Hilbert matrix.
magic
- Magic square.
pascal
- Pascal matrix.
rosser
- Classic symmetric eigenvalue test problem.
toeplitz
- Toeplitz matrix.
vander
- Vandermonde matrix.
wilkinson
- Wilkinson's eigenvalue test matrix.
help isnumeric
ISNUMERIC True for numeric arrays.
ISNUMERIC(A) returns 1 if A is a numeric array and 0 otherwise.
For example, sparse arrays, and double precision arrays are
numeric while strings, cell arrays, and structure arrays are not.
See also ISCELL, ISSTRUCT, ISOBJECT, ISSPARSE.
help find
FIND Find indices of nonzero elements.
I = FIND(X) returns the indices of the vector X that are
non-zero. For example, I = FIND(A>100), returns the indices
of A where A is greater than 100. See RELOP.
[I,J] = FIND(X) returns the row and column indices of
the nonzero entries in the matrix X. This is often used
with sparse matrices.
[I,J,V] = FIND(X) also returns a vector containing the
nonzero entries in X. Note that find(X) and find(X~=0)
175
MATLAB/SIMULINK
will produce the same I and J, but the latter will produce
a V with all 1's.
See also SPARSE, IND2SUB.
help
help
.
MatLab- .