MathScript 2
1.1. MathScript 2
1.2. MathScript . 3
1.3. .. 4
1.4. . 6
1.5. 7
2. MathScript . 7
2.1. ..... 7
2.1.1. ... 7
2.1.2. . 8
2.1.3. .... 9
.. 9
... 10
2.2. 18
2.3. .. 21
2.4. . 23
2.5. 26
1. MathScript
1.1. MathScript
LabVIEW 8.2 MathScript
, 500 ,
. MathScript
m-, , MATLAB.
LabVIEW m-,
Web-.
MathScript , LabVIEW.
MathScript (MathScript Window) (. 1),
MathScript (ToolsMathScript Window)
(Output Window), (Command Window), (Status)
: (Variables), (Script) (History).
, , , MathScript
. <Shift-Enter>.
(Command History), .
. 1. MathScript
MathScript ,
.
, MATLAB,
.
MathScript (MathScript Node) ,
- LabVIEW. 2 MathScript
MathScript Fundamentals, NI Example Finder.
. 2. MathScript
MathScript ,
, (Scripts & Formulas),
.
1.2. MathScript
MathScript :
advanced
approximation
audio
basic
bitwise
boolean
commands
comparison
constants
daq
dsp
geometry
libraries
linalgebra
matrix
matrixops
membership
ode
optimization
plots
polynomials
programming
sets
statistics
string
support
time
timing
trigonometric
vector
(dsp),
, , :
filter design
filter implementation
linear systems
resampling
spectral analysis
transforms
waveform generation
windows
(programming):
CaseSwitch
switch
case
[case
]
...
[otherwise
]
end
switch mode
case 'start'
a = 0;
case 'end'
a = 1;
otherwise
a = a+1;
end
For Loop
for
end
for i = 1:10
a = sin(2*pi*i/10)
end
If-Else
if
[elseif
]
...
[else
]
end
if b == 1
c=3
else
c=4
end
Range
start:[step:]end
b = 2:2:20
b 2 20.
, MathScript
, 1
While Loop
while
end
while i < 10
a = cos(2*pi*i/10)
i = i + 1;
end
1.3.
MathScript .
. , ,
. :
short 5 , 314.15927;
long 15 ,
314.159265358979326;
short e 5 , 3.14159E+2.
long e 15 ,
3.141592653589793E+2.
(), .
MathScript Preferences,
(FilePreferences).
format, support. .
MathScript .
. ,
, .
support ().
int64
64-
int32
32-
int16
16-
int8
8-
uint64
64-
uint32
32-
uint16
16-
uint8
8-
double
single
, , .
(single 4 ) (double 8 ) .
MathScript :
abs(x)
angle(x)
cart2pol(x,y,z)
()
cart2sph(x,y,z)
ceil(x)
conj(x)
cplxpair(x)
cumprod(x)
cumsum(x)
exp(x)
expm(x)
factor(x)
factorial(x)
N!
fix(x)
floor(x)
gcd(x,y)
imag(x)
lcm(x,y)
log(x)
logm(x)
log10(x)
10
log2(x)
max(x)
min(x)
mod(x,y)
nextpow2(x)
planerot(x)
pol2cart(x,y,z)
()
pow2(x)
prod(x)
real(x)
reallog(x)
realpow(x,y)
realsqrt(x)
rem(x,y)
round(x)
sign(x)
sort(x)
sortrows(x)
sph2cart(x,y,z)
sqrt(x)
sqrtm(x)
sum(x)
MathScript (trigonometric),
sin(x), cos(x)
tan(x), cot(x)
, , , ( x
)
sec(x), csc(x)
asin(x), acos(x)
(
)
atan(x), acot(x)
asec(x), acsc(x)
sinh(x), cosh(x)
tanh(x), coth(x)
sech(x), csch(x)
asinh(x), acosh(x)
atanh(x), acoth(x)
asech(x), acsch(x)
sinc(x)
sin(x)/x
atan2(x,y)
,
( )
1.4.
MathScript , .
, , .
, .
.
ASCII. .
, ,
. MathScript
. , , a=sin(3*pi/2), a , a=result, a
.
; ,
. ; .
,
ans.
ans pi , i,j ( 1 ), inf
NaN (0/0, / ..).
.
*, ,
.
MathScript , ,
. , ,
. , ,
, .
, ,
(). :
, ,
. .
.
.
.
. ,
- , ,
, . -
.
, .
[name] = Xn:dX:Xk,
name ,
, Xn, Xk
, dX ,
.
MathScript , 2
.
1.5.
MathScript .
:
function outputs=function_name(inputs)
%documentation
script
function.
outputs .
, .
function_name .
inputs , .
documentation , LabVIEW
(help).
%.
script .
.
function foo
function a = foo
function [a b] = foo
function foo()
function a = foo()
function [a b] = foo()
function foo(g)
function a = foo(g)
function [a b] = foo(g)
function foo(g, h)
function a = foo(g, h)
function [a b] = foo(g, h)
MathScript , , ,
.
, . . LabVIEW
. , foo bar, bar
foo.
. nargin
, , nargin.
,
. nargout
, .
, .
,
MathScript Preferences.
(FilePreferences). ,
.m .
2. MathScript
2.1.
.
2.1.1.
, MathScript, (Matrix).
, n m [1].
:
a11
a
A 21
...
a
n1
a12
a 22
...
an2
... a 1m
... a 2 m
= a ij .
... ...
... a nm
i a ij , j
. mn, , . n=1
-, m=1 -. n=1 m=1 .
. ,
a 11 , a 22 , a nn , , a 1n ,
a 2 n 1 , a n 1 .
, . ,
. ,
. , ,
. , .
, , .
2.1.2.
, .
- ,
. -
;. .
:
>>A=[1.1 2.5 3; 4.6 5 6]
A=
1.1
2.5
3
4.6
5
6
(matrix)
(linalgebra). ,
, .
eye
false
hadamard
hankel
hilb
invhilb
magic
ones
pascal
peaks
perms
primes
repmat
rosser
toeplitz
true
vander
wilkinson
zeros
. horzcat vertcat
.
horzcat
. horzcat(a, b, ...) [a, b, ...].
.
c = horzcat(a, b, ...)
a b .
c a b.
>>A = [1, 2; 3, 4]
B = [5, 6; 7, 8]
C = horzcat(A, B)
A=
1
3
2
4
B=
5
7
6
8
C=
1
3
2
4
5
7
6
8
vertcat horzcat, .
cat , .
cat
.
c = cat(d, a, b, ...)
d , LabVIEW , :
1. a b, : cat(1, a, b, ...) = [a; b; ...].
cat(1, a, b, ...) vertcat(a, b, ...). a b .
2. a b : cat(2, a, b, ...) = [a, b, ...].
cat(2, a, b, ...) horzcat(a, b, ...). a b .
c
>>A = [1, 2; 3, 4]
B = [5, 6; 7, 8]
C = cat(2, A, B)
A=
1
3
2
4
B=
5
7
6
8
C=
blkdiag.
blkdiag
c : c = [a, 0, , 0; 0, b, 0, ].
c = blkdiag(a, b, .)
a
b
>>A = [1, 2; 3, 4]
B = [5, 6; 7, 8]
C = blkdiag(A, B)
A=
1
3
2
4
B=
5
7
6
8
C=
1
3
0
0
2
4
0
0
0
0
5
7
0
0
6
8
2.1.3.
,
. ,
, .
, .
tril
c = tril(a)
c = tril(a, b)
a .
b a. b .
c a. b 0, c a b- . c
, a
triu tril, .
reshape
d = reshape(a, b, c)
a . a b*c.
b d. b .
c d. c .
d b c. d a,
>>A = [1, 2, 3; 4, 5, 6]
D = reshape(A, 3, 2)
A=
1
4
2
5
3
6
D=
1
4
2
5
3
6
transpose ctranspose .
transpose
.
c = transpose(a)
a .
c a. c , a
>>A = [1-i, 3+4i; 5-7i, -i]
C = transpose(A)
A=
1 - 1i
5 - 7i
3 + 4i
0 - 1i
C=
1 - 1i
3 + 4i
5 - 7i
0 - 1i
Ctranspose
- . ctranspose(a) a'
c = ctranspose(a)
a .
c - a. c , a
>>A = [1-i, 3+4i; 5-7i, -i]
C = ctranspose(A)
A=
1 - 1i
5 - 7i
3 + 4i
0 - 1i
C=
1 + 1i
3 - 4i
5 + 7i
0 + 1i
.
flipdim
c = flipdim(a, b)
a .
b , a.
b :
1.
2.
c a . c ,
>>A = [1, 2, 3, 4; 5, 6, 7, 8]
C = flipdim(A, 1)
A=
1
5
2
6
3
7
4
8
C=
5
1
6
2
7
3
8
4
fliplr , flipud .
rot90
, 90
c = rot90(a)
c = rot90(a, b)
a .
b 90 a. b
1.
c a, , b*90 . c
, a
>>A = [1, 2, 3; 4, 5, 6]
C = rot90(A)
A=
1
4
2
5
3
6
C=
3
2
1
6
5
4
circshift
c = circshift(a, b)
a .
b , . b , a
, , , .
b , a b . b .
c a
>>A = [1, 2; 3, 4; 6, 7]
B = [1, 1]
C = circshift(A, B)
A=
1
3
6
2
4
7
B=
C=
7
2
4
6
1
3
,
, (matrixops), ,
.
.
()
+
(plus())
(minus())
.
, ,
.*
(times())
.\
(ldivide())
./
(rdivide())
.^
10
(power())
(mtimes())
B. C A * B [ a ij ] * [ bik ] [ c ik ] , c ik
ij b jk
j 1
\
(mldivide())
/
(mrdivide()
)
X=A\B
A*X=B
X=A/B
X*A =B
A=
1 + 3i
-2.3 + 0i
5.6 + 0i
8 - 1i
B=
C=
-154.8 - 82.4i
-122.18 - 29.9i
297.47 + 72.8i
269.04 - 203.88i
expm
c = expm(a)
a .
c a. c
expm1, expm2 expm3 ,
. National Instruments expm.
logm
c = logm(a)
a .
c a. c
>>E = diag([2.7183, 0.3679])
C = logm(E)
E = 2.7183 0
0
0.3679
C=
1 - 8.5562e-029i
3.6228e-015 + 1.4108e-014i
3.412e-015 + 1.3625e-014i
-0.99994 - 1.9474e-029i
, ,
, , , ,
. , ,
:
det
c = det(a)
a .
c a. c
>>A = [3, 2, -1; 1, 6, 3; 2, -4, 0]
C = det(A)
A=
3
1
2
2
6
-4
-1
3
0
C=
64
size
c = size(a)
d = size(a, dim)
[m, n] = size(a)
11
a .
dim , . dim ,
:
1. , LabVIEW .
2. , LabVIEW .
c a. c .
d dim a. d .
m n a .
>>A = [1, 4; 53, 16; 0, -81];
C = size(A)
C=
find
[i, j] = find(a)
[i, j, c] = find(a)
a .
i a. i -.
j a. j -.
c a. c -.
>>A = [1, 2, 3; 0, 0, 0; 0, 2, 3]
[I, J] = find(A)
A=
1
0
2
0
3
0
I=
1
1
3
1
3
J=
1
2
2
3
3
:
ndims ,
nnz ,
nonzeros ,
numel
.
norm
k = norm(a)
k = norm(a, type)
a .
type . type , :
1 1-norm, ;
2 ( ) 2-norm, ;
inf inf-norm, ;
'fro' ,
diag ( a
a)
, diag ( aT a )
aT a , aT a. , 'fro'.
k (type)
>>A = [1, 2, 3; 4, 5, 6; 7, 8, 9]
C = norm(A, 'fro')
A=
1
4
7
2
5
8
3
6
9
C=
16.882
normest
k = normest(a)
k = normest(a, tol)
[k, ite] = normest(a)
[k, ite] = normest(a, tol)
a .
tol . tol .
k a. k .
ite . ite
>>A = [1, 2, 3; 4, 5, 6; 7, 8, 9]
K1 = norm(A, 2)
K2 = normest(A)
A=
1
4
7
2
5
8
3
6
9
K1 =
K2 =
16.848
16.848
cond
,
c = cond(a)
12
c = cond(a, b)
a .
b a. b norm.
c , ( ) b.
c = ||A||p||A1||p, ||A||p .
p , p
.
2-norm
A.
>>A = [1+2i, 4i; -3-6i, -5i]
C = cond(A)
A=
1 + 2i
-3 - 6i
0 + 4i
0 - 5i
C=
5.6364
condest
1-norm
c = condest(a)
[c, d] = condest(a)
a .
c 1-norm a.
d -. d , a
>>A = [1, 2, 3; 0, 1, 1; 4, 3, 1]
= condest(A)
A=
1
0
4
2
1
3
3
1
1
23
rcond
, 1-norm
c = rcond(a)
a .
a, 1-norm. a
, c . c
>>A = [1, 2, 3; 0, 1, 1; 4, 3, 1]
D = rcond(A)
A=
1
0
4
2
1
3
3
1
1
D=
0.043478
rank
. LabVIEW ,
n = rank(a, tol)
a .
tol a. tol . tol , LabVIEW ,
: tol = max(size(a))*norm(a)*eps.
n a. n
>>B = [1, 2, 3; 4, 5, 6];
A = B'*B
rank(A)
A=
17
22
27
22
29
36
27
36
45
ans =
subspace
c = subspace(a, b)
a .
b , a.
c a b. c
a b
>>A = [1, 2, 3]'
B = [1, 1, -1]'
C = subspace(A, B)
A=
1
2
3
B=
1
1
-1
C = 1.5708
condeig
,
e = condeig(a)
[c, d, e] = condeig(a)
a .
13
c a. c , a.
d a. d .
e a
>>A = [1+2i, 4i; -3-6i, -5i]
E = condeig(A)
A=
1 + 2i
-3 - 6i
0 + 4i
0 - 5i
E=
1.4007
1.4007
eig
. eig(a)
ax = lambda*x. eig(a, b) ax = lambda*bx
ev = eig(a)
ev = eig(a, b)
[evec, evdiag] = eig(a)
[evec, evdiag] = eig(a, b)
a , .
b , a. b LabVIEW qz.
ev a a b. ev .
evec , a
a b.
evdiag , a ev
>>% Eigenvalues
A = [2, -1; 11, 4]
C = eig(A)
A=
2
11
% Compute generalized
eigenvalues and check results
B = [3, 2; -9, -1]
[EVEC, EVDIAG] = eig(A, B)
B=
3
-9
-1
4
C=
2
-1
3 + 3.1623i
3 - 3.1623i
-0.26448 - 0.23786i
0.95926 - 0.040743i
-0.7 + 0.88129i 0 + 0i
0 + 0i
-0.7 - 0.88129i
balance
.
LabVIEW balance(a) : b = t\a*t
[t, b] = balance(a)
a .
b a, , .
t
>>A = [1000, 1000; 0.001, 1];
[T, B] = balance(A)
T=
512
0
0
1
B=
1000
0.512
1.9531
1
, :
chol
c = chol(a)
a .
c a.
c c'*c = a. c , a
>>A = [23, -22, -14; -22, 144, -14; -14, -14, 35]
C = chol(A)
D = C'*C
A=
23
-22
-14
-22
144
-14
-14
-14
35
D=
23
-22
-14
-22
144
-14
-14
-14
35
cholupdate
1 . LabVIEW
, chol.
[R1, p] = cholupdate(R, x, op)
R . LabVIEW R
1 . R
.
x -. x
, R.
op 1 . op , :
'+' ( ) 1 , R'R+xx'.
'-' 1 , R'R-xx'.
R1 . R1
.
p calculation op is '-'. p 0 R1
R'R-xx'. p 0 cholupdate R1 R'R. p
1 cholupdate R'R-xx' . p 2
14
cholupdate R , .. R'R
. p 32-
>>R = rand(2)
X = rand(2, 1)
[R1, P] = cholupdate(R, X, '-')
R = 0.75444
0.50498
0.45195
0.52939
X = 0.041373
0.27944
R1 = 0.7533
0
0.43728
0.46391
P=
lu
,
l = lu(a)
[l, u] = lu(a)
[l, u, p] = lu(a)
a .
l . , [l, u, p] = lu(a), l
1 , l*u = p*a. , [l, u] = lu(a), l p'*m, m
1 . , l = lu(a), l
u . l , a.
u , l*u = p*a. u
, a.
p , l*u = p*a.
, LU- p'*a .
,
>>A = [-6, 17; 3, 8]
[L, U] = lu(A)
B = L*U
A=
-6
3
17
8
L=
1
-0.5
0
1
U=
-6
0
17
16.5
B=
-6
3
17
8
qr
QR- .
QR- a q r, pm
pv, , q*r = a*pm q*r = a(pv). LabVIEW a ,
r
r = qr(a)
[q, r] = qr(a)
[q, r] = qr(a, 0)
[q, r, pm] = qr(a)
[q, r, pv] = qr(a, 0)
a .
0 , LabVIEW QR- , , q m--min(m, n)
r min(m, n)--n, a m--n.
q QR- a.
r QR- a.
pm QR- a. pm 32- .
pv QR- a. pv - 32- .
QR- - .
>>A = rand(2)
[Q, R, P] = qr(A)
A=
0.94839
0.26431
0.85322
0.33491
Q=
-0.96329
-0.26847
-0.26847
0.96329
R = -0.98453
0
-0.91181
0.093557
P=
1
0
0
1
qz
: ax = lambda*bx.
qz q z, q'*a*z = Ha q'*b*z = Tb, Ha Tb
. (Ha, Tb) , (a, b). alpha beta
. , 0/0 1/0.
[q, z, alpha, beta, evec] = qz(a, b)
a .
eig.
b , a. b , qz(a, b)
: b^-1ax = lambda*x.
.
q , a.
z , a.
alpha . alpha , b
. bx = lambda*ax .
beta .
evec , a,
(a, b). : a*evec = b*evec*diagonal(alpha./beta).
>>A = [1, 4, -2.2; 31, 4.7, 6; 5.2, 3, -3]
B = [1, 2, 3; 4, 5, 6; 7, 8, 9]
[Q, Z, ALPHA, BETA, EVEC] = qz(A, B)
A=1
4 -2.2
31 4.7 6
5.2 3 -3
B=
1
4
7
2
5
8
3
6
9
Q=
-0.12309
-0.49237
-0.86164
-0.059291
0.87034
-0.48887
0.99062
-0.0090883
-0.13632
15
Z=
1
0
0
0
0
0.89443
-0.44721
0.44721
0.89443
ALPHA = -4.4022
-2.9885
23.858
BETA =
0.81683
10.499
EVEC = 0.32066
-0.28876
-1
-0.27985 -0.5
-0.66024
1
1
-0.5
schur
. A A = CDCH,
D , CH C
d = schur(a)
d = schur(a, option)
[c, d] = schur(a)
[c, d] = schur(a, option)
a .
option . option , :
'complex' a.
'real' a. LabVIEW
- d 1 1 2 2.
d ,
1 1 2 2. a , d
.
c , a. a , c
>>A = [1, 2, 3; 4, 5, 6; 7, 8, 9]
[C, D] = schur(A)
A=1
4
7
2
5
8
3
6
9
C=
-0.23197
-0.52532
-0.81867
-0.88291
-0.23952
0.40387
0.40825
-0.8165
0.40825
D = 16.117
0
0
4.899
-1.1168
0
1.6063e-015
-5.5408e-016
-8.8739e-016
svd
,
- .
, ,
, 2-norm 2-norm, . svd
u v, u*s*conj(v')
sv = svd(a)
[u, s, v] = svd(a)
a m--n .
sv a. sv min(m, n).
u m--min(m, n).
s min(m, n)
.
v n--min(m, n)
>>A = [1, 2, 3, 4; 5, 6, 7, 8; 9, 0, 1, 2; 3, 4, 5, 6]
C = svd(A)
A=
1
5
9
3
2
6
0
4
3
7
1
5
4
8
2
6
C=
17.836
7.5561
0.89042
1.2864e-016
rref
,
[r, jb] = rref(a)
[r, jb] = rref(a, tol)
a .
tol . tol . 1e-16*m*n*infnorm,
m a, n a, infnorm a inf-norm. tol 0, LabVIEW
.
r a.
jb , r(1:len, jb) r--r, len = length(jb), a(:, jb)
a.
>>[R, JB] = rref([1, 2; 4, 1])
R=
1
0
0
1
JB =
hess
.
, 0
[h, t] = hess(a)
a .
h a . h , a. a
, h .
t . t , a.
h : a = t*h*t' t*t' = t'*t = eye(size(a))
16
A=
2
-1
-4
T=
C=
66.332
-34.813
64.765
2
4.1231
0
-5.8209
1.7059
1.8235
5.5783
-5.1765
10.294
-4
9
-7
7
0
3
H=
-34.813
39.927
-21.557
64.765
-21.557
-11.528
D=
1
0
0 -0.24254
0 -0.97014
69
-30.559
46.809
0
-0.97014
0.24254
-30.559
46.706
-50.176
46.809
-50.176
109.29
pinv
. A+ m--n A A+
-:
A A+ A = A;
A+ A A+ = A+;
A A+ ;
A+ A
c = pinv(a)
c = pinv(a, tol)
a .
tol . , tol, a. tol
. -1.
tol , LabVIEW , :
tol = max(m, n)*||A||*eps, A , m, n A,
||A|| 2-norm A, eps ,
1+eps>1. eps : eps = 2^(-52) = 2,22e-16.
c a. c
>>A = [1, 0, 1; 0, 0, 4]
C = pinv(A)
A=
1
0
0
0
1
4
C=
1
0
-2.6827e-017
-0.25
0
0.25
diag
. diag(a, 0) diag(a)
c = diag(a)
c = diag(a, b)
a .
b a. b .
c . c . a , diag(a)
-, a diag(a, b) -, b- a. a
n, diag(a, b) n+abs(b) b- , a
>>A = [1, 0, 0; 0, 2, 0; 0, 0, 3]
C = diag(A)
A=
1
0
0
0
2
0
0
0
3
C=
1
2
3
null
- . - A x,
, Ax = 0
c = null(a)
c = null(a, 'r')
a .
'r' .
a. c
>>A = [1, 2, 3; 4, 5, 6]
C = null(A)
A=
1
4
2
5
3
6
C=
0.40825
-0.8165
0.40825
C=
-0.38632
-0.92237
orth
c = orth(a)
a .
a. c
>>A = [1, 2, 3; 4, 5, 6]
C = orth(A)
A=
1
4
2
5
3
6
-0.92237
0.38632
polyvalm
17
c = polyvalm(a, b)
a . a .
b , a. b .
a : c = a[1]*b^n+ ... +a[n]*b+a[n+1]*I, n
a. c
>>A = [1, 1, 1]
B = [1, 2; 3, 4]
C = polyvalm(A, B)
A= 1
B=
1
3
2
4
C=
9
18
12
27
compan
c = compan(a)
a , . a
, . , n
(n-1) (n-1).
c a. c a
>>A = [1, 2, 3, 4]
C = compan(A)
A= 1
C=
-2
1
0
-3
0
1
-4
0
0
2.2.
n- :
F ( t , x , x , x ,... x ( n ) ) 0 .
x ( t ) .
n- :
x' f ( t , x , x ,... x ),
1 2
n
'1 1
x 2 f2 ( t , x1 , x 2 ,... x n ),
...
x' f ( t , x , x ,... x ).
1 2
n
n n
x1 ( t )
x2 ( t )
x ( t )
, .
...
x n ( t )
.
MathScript [2]:
ode113
ode15s
ode45
ode23
- 2-3-
ode23s
2-
ode23tb
- 2-3-
ode45
- 4-5
18
ode=(fun,times,y0 [options]),
fun - ;
times ,
y0 .
ode45.
ode45
- 45 y
[t, y] = ode45(fun, times, y0)
fun , . :
function dy = fun(t, y).
times [0 20],
, y, 1:20.
, LabVIEW , y.
, LabVIEW y, . times
, .
y0 y . y0 .
t , y. t .
y
, .
.
du
a1u cos( u * t ) , u(0)=0.1. a1 =0.5.
1.
dt
1.1. : function y = model1(t, x)
y = 0.5*x+cos(x*t);
. 2.1.
2. n- u ( n ) anu ( n 1 ) ... a2u a1u b1v MathScript
n 1
. ,
u (n-1) .
x1 u , x 2 u , ... x n u ( n 1 )
x' x 2
1
x' x 3
2
...
'
x n b1v a1 x1 a2 x 2 .... an x n .
ux
1
19
u a2u a1u 0
. 2.2.
. 2.3.
,
. 2.4 ,
u a2u a1u sin( 2 * t ) .
ode45 ode23 (. 2.5).
. 2.4.
. 2.5.
ode45 ode23
3. ode15s ode23s .
n- dx / dt Bx ,
:
1. B :
(Re( k ) 0 , k 0 ,1,..., n 1 ) ;
2.
max Re( k )
min Re( k ) 0 k n 1
:
dX
dt
100
10.5
40
95
156
10
65
152
3.1. 1:
107
4
55.5
102
, , .
102
1
8
2
X ; X(0 )
.
41
1.5
1
99
20
-5.5309e+001 + 0.0000e+000i
-4.3467e+000 + 2.8169e+000i
-4.3467e+000 - 2.8169e+000i
-4.9769e-001 + 0.0000e+000i
3.2. 2: s=111,1
.
3.3. : function y=model3(t,x)
B=[100 156 107 102; -10.5 -10 -4 -8; -40 -65 -55.5 -41; -95 -152 -102 -99]
y=B*x;
: [A, B] = ode15s(model3, [0 5], [1; 2; 1.5; 1])
3.4.
2.6.
. 2.6.
2.3.
n- a ( x ) a 1 x n a 2 x n 1 ... a n x a n 1 MathScript
, a [ a ( 1 ) a ( 2 ) a ( n ) a ( n 1 )] ,
. .
, .
poly
,
. .
p = poly(z)
z . z ,
.
p , z. z , p
z. p
>>Z = [1, 2, 3, 4];
P = poly(Z)
P = 1.00000e+000
-1.00000e+001
3.50000e+001
-5.00000e+001 2.40000e+001
roots
.
c = roots(a)
a , ,
. a .
a. c
A = [5, 4, 3, 2, 1]
C = roots(A)
C=
1.3783e-001 + 6.7815e-001i
1.3783e-001 - 6.7815e-001i
-5.3783e-001 + 3.5828e-001i
-5.3783e-001 - 3.5828e-001i
polyval
. polyvalm .
c = polyval(a, b)
a . a .
b , a. b .
a : c = a[1]*b.^n+ ... +a[n]*b+a[n+1]*I, n
21
a, I , . c ,
>>A = [1, 1, 1];
B = [1, 2; 3, 4];
C = polyval(A, B)
C = 3.00000e+000
1.30000e+001
7.00000e+000
2.10000e+001
C=
9.00000e+000
1.80000e+001
1.20000e+001
2.70000e+00
polyint
.
c = polyint(a)
c = polyint(a, b)
a .
b . b , LabVIEW
.
c
C = 2.50000e-001
6.66667e-001
1.50000e+000
4.00000e+000
0.00000e+000
residue
- -
.
LabVIEW a b :
bs/as = (r1/(s-p1)) + (r2/(s-p2)) + ... + (rn/(s-pn)) + ks
s n -
, .. pj = ... = pj+m-1 , j m , -
: (rj/(s-pj)) + (rj+1/(s-pj))2 + ... + (rj+m-1/(s-pj))m.
[b, a] = residue(r, p, k)
[r2, p2, k2] = residue(b2, a2)
r - .
p - .
k a b .
b2 .
a2 .
b .
a .
r2 - .
p2 - .
k2 a2 b2
>>B = [1, 2, 3, 4];
A = [1, 1];
[R, P, K] = residue(B, A)
R = 2.00000e+000
P = -1.00000e+000
K = 1.00000e+000
1.00000e+000
2.00000e+000
polyeig
n: (a0+lambda*a1+...+lambda^n*an)*x = 0.
. .
[x, eig] = polyeig(a0, a1, ... , an)
a0 .
a1, , an , a0.
x , .
eig
>>A0 = [1, 2; 3, 4];
A1 = [2, 1; 1, 0];
A2 = [-1, -1; 0, 2];
[X, EIG] = polyeig(A0, A1, A2)
X=
-9.5233e-001 + 6.6173e-002i
2.9709e-001 - 2.0643e-002i
-2.2335e-002 - 7.4473e-001i
4.1322e-001 + 5.2357e-001i
2.5345e-001 + 7.0064e-001i
1.9141e-001 - 6.3893e-001i
-7.8808e-001 - 4.4776e-002i
6.1295e-001 + 3.4826e-002i
polyfit
,
.
[p, s] = polyfit(x, y, n)
[p, s, mu] = polyfit(x, y, n)
x - .
y , y-
22
n , x y. n
x.
p . p
.
s .
mu x. LabVIEW x
. mu . mu ,
conv
.
min( p , m )
Cp
Ak B p 1 k , m A, n B. A B
k max( 1 , p 1 n )
, , .
c = conv(c1)
c = conv(c1, c2)
c1 c2 . c2 , LabVIEW c1 c1.
c c1 c2. c1 c2 , c -
, c1. c1 c2 , , LabVIEW
- .
c1 c2 , LabVIEW c1 c2 , c
, c1 c2
>>C1 = [1; 2; 3];
C2 = [3; 4];
C = conv(C1, C2)
C=
3.00000e+000
1.00000e+001
1.70000e+001
1.20000e+001
deconv
, , ,
.
[c, d] = deconv(a, b)
a b .
c a b.
d a b. LabVIEW
: a = conv(b, c)+d. c d LabVIEW a b
>>A = [3, 10, 17, 12];
B=[3 4];
[C, D] = deconv(A, B)
C = 1.00000e+000
D = 0.00000e+000
2.00000e+000
0.00000e+000
3.00000e+000
0.00000e+000
0.00000e+000
2.4.
MathScript
( , , ),
, .
.
mean
c = mean(a)
c = mean(a, b)
a .
b a, , a .
b , .
1 ( ) ;
2 .
c a. a , c a. a
, c - -
a. c
median mean
std
. .
y = std(x)
y = std(x, w)
23
x .
w . w :
1. w , , x. w 0. LabVIEW
w , w 1.
2. w , , 1. . LabVIEW
.
3. w , , 0, . .
LabVIEW .
y x. y
var ( )
std.
, -
corrcoef
r = corrcoef(x)
r = corrcoef(x, y)
[r, p, rlo, rup] = corrcoef(x, 'alpha', a, 'rows', s)
[r, p, rlo, rup] = corrcoef(x, y, 'alpha', a, 'rows', s))
x . r = corrcoef(x), x
. [r, p, rlo, rup] = corrcoef(x, 'alpha', a, 'rows', s), x . x
. x , x . x
, x ,
.
y , . x, x
. y x .
'alpha' LabVIEW, a.
a 1-a [0, 1].
0,05.
'rows' LabVIEW, s.
s NaN x. s , :
'all' ( ) .
'complete' NaN .
'pairwise' NaN i- j- x (i, j)- r.
r .
p p .
rlo rup
cov
. c = cov(x, y) c = cov(x, y, 1) cov([x(:), y(:)])
c = cov(x)
c = cov(x, option)
c = cov(x, y)
c = cov(x, y, option)
x . x
. x . x
, LabVIEW .
y , x.
option x n n-1, n x, x , x, x
. option , :
0 ( ) x n-1.
1 x n.
c . c = cov(x, y) c = cov(x, y, 1), c 2--2
xcorr
-
c = xcorr(a)
c = xcorr(a, l)
c = xcorr(a, option)
c = xcorr(a, l, option)
c = xcorr(a, b)
c = xcorr(a, b, l)
c = xcorr(a, b, option)
c = xcorr(a, b, l, option)
[c, d] = xcorr(a)
[c, d] = xcorr(a, l)
[c, d] = xcorr(a, option)
[c, d] = xcorr(a, l, option)
[c, d] = xcorr(a, b)
24
[c, d] = xcorr(a, b, l)
[c, d] = xcorr(a, b, option)
[c, d] = xcorr(a, b, l, option)
a .
b .
l -. a n, c = xcorr(a, l) 2*l+1. LabVIEW
l l n.
option , - a b. option
, .
'biased' .
'coeff' , 1, 0.
'none' ( ) .
'unbiased' .
c - a b. a , c = xcorr(a) -
a. c .
d -. l, d [-l, -l+1, ..., 0, ..., l-1, l]. d
hist
, . , LabVIEW
hist(x)
hist(x, c)
hist(x, m)
n = hist(x, c)
[n, ctr] = hist(x)
[n, ctr] = hist(x, m)
x .
c , x. c
.
m , x. m
. m 10.
n , . n .
ctr , c . ctr
histc
,
n = histc(x, edges)
[n, bin] = histc(x, edges)
x . x , histc
.
edges . edges
.
n , edges. n . n(i)
x, [edges(i), edges(i+1)]. -inf +inf
edges. n(m) x, edges(m), m edges.
bin , x. bin(k) = j , x(k)
[edges(j), edges(j+1)] j<m-1, x(k) = edges(m) j = m. bin(k) = -1, x(k)
. bin , x
rand
[0, 1]. c = rand
. c = rand(a, b) c = rand([a, b]).
c = rand
c = rand(a)
c = rand(a, b)
c = rand([a, b])
a c.
b c. a b .
c [0, 1] a--b.
b , c , a
randn rand , .
random
. random(type, a, b, c) .
random(type, a, b, c, m) random(type, a, b, c, n) m--m n--n, . random(type, a, b, c,
m, n) random(type, a, b, c, [m, n]) m--n.
25
r = random(type, a, b, c)
r = random(type, a, b, c, m)
r = random(type, a, b, c, n)
r = random(type, a, b, c, m, n)
r = random(type, a, b, c, [m, n])
type . type , :
'beta'
'bino'
'chi2'
'exp'
'f'
'gam'
'geo'
'hyge'
'logn'
'nbin'
'ncf'
'nct'
'ncx2'
'norm'
'poiss'
'rayl'
't'
'unid'
'unif'
'weib'
-
-
F-
-
F-
T-
-
T-
2
2
1
1
2
2
1
3
2
2
3
2
2
2
2
1
1
1
2
2
a, b c . m--n.
m r.
n r. m n .
r type m--n
randperm
.
c = randperm(a)
a .
c 1 a. -
detrend
y = detrend(x, option, break)
x , . x . x , LabVIEW
, .
option x. option , :
'constant' .
'linear' , break.
break x . 'constant' break
. 'linear' break .
y x
nchoosek
c = nchoosek(a, b)
a b .
c a b. c
2.5.
fminbnd
xmin = fminbnd(fun, a, b)
[xmin, fval] = fminbnd(fun, a, b)
26
fun , .
.
a b , , , . a b
.
xmin a b, fun .
fval fun , xmin. xmin fval
fminsearch
Downhill Simplex n- .
xmin = fminsearch(fun, xstart)
[xmin, fval] = fminsearch(fun, xstart)
fun , .
, xstart, .
xstart , fun. xstart
.
xmin , fun .
fval fun , xmin. xmin fval
fminunc
Quasi-Newton n- .
xmin = fminunc(fun, xstart)
[xmin, fval] = fminunc(fun, xstart
fminsearch
linprog
- , : c'*x. LabVIEW
xmin = linprog(c, aineq, bineq)
xmin = linprog(c, aineq, bineq, aeq, beq)
xmin = linprog(c, aineq, bineq, aeq, beq, min, max)
[xmin, fval] = linprog(c, aineq, bineq)
[xmin, fval] = linprog(c, aineq, bineq, aeq, beq)
[xmin, fval] = linprog(c, aineq, bineq, aeq, beq, min, max)
[xmin, fval, lambda] = linprog(c, aineq, bineq)
[xmin, fval, lambda] = linprog(c, aineq, bineq, aeq, beq)
[xmin, fval, lambda] = linprog(c, aineq, bineq, aeq, beq, min, max)
c , . c
.
aineq :
aineq*xmin <= bineq. aineq []. aineq .
bineq : aineq*xmin
<= bineq. bineq [] aineq []. bineq .
aeq : aeq*xmin =
beq. aeq can be []. aeq .
beq : aeq*xmin =
beq. beq [] aeq []. beq .
min max : min <= x <=
max. min max [].
xmin , fun .
fval fun , xmin. xmin fval
.
lambda . lambda
quadprog
, : 0.5*x'*q*x+c'*x. LabVIEW
xmin = quadprog(q, c, aineq, bineq)
xmin = quadprog(q, c, aineq, bineq, aeq, beq)
xmin = quadprog(q, c, aineq, bineq, aeq, beq, min, max)
[xmin, fval] = quadprog(q, c, aineq, bineq)
[xmin, fval] = quadprog(q, c, aineq, bineq, aeq, beq)
[xmin, fval] = quadprog(q, c, aineq, bineq, aeq, beq, min, max)
[xmin, fval, lambda] = quadprog(q, c, aineq, bineq)
[xmin, fval, lambda] = quadprog(q, c, aineq, bineq, aeq, beq)
27
[xmin, fval, lambda] = quadprog(q, c, aineq, bineq, aeq, beq, min, max)
q , . q
.
linprog
fmincon
. LabVIEW
xmin = fmincon(fun, x0, aineq, bineq)
xmin = fmincon(fun, x0, aineq, bineq, aeq, beq)
xmin = fmincon(fun, x0, aineq, bineq, aeq, beq, min, max)
xmin = fmincon(fun, x0, aineq, bineq, aeq, beq, min, max, nonlinearfun)
[xmin, fval] = fmincon(fun, x0, aineq, bineq)
[xmin, fval] = fmincon(fun, x0, aineq, bineq, aeq, beq)
[xmin, fval] = fmincon(fun, x0, aineq, bineq, aeq, beq, min, max)
[xmin, fval] = fmincon(fun, x0, aineq, bineq, aeq, beq, min, max, nonlinearfun)
[xmin, fval, lambda] = fmincon(fun, x0, aineq, bineq)
[xmin, fval, lambda] = fmincon(fun, x0, aineq, bineq, aeq, beq)
[xmin, fval, lambda] = fmincon(fun, x0, aineq, bineq, aeq, beq, min, max)
[xmin, fval, lambda] = fmincon(fun, x0, aineq, bineq, aeq, beq, min, max, nonlinearfun)
fun , . fmincon
.
x0 , fun. x0
.
nonlinearfun , , , .
, nonlinineq nonlineq. LabVIEW ,
nonlinineq <= 0 nonlineq = 0. nonlinearfun .
linprog
1.
.. MATLAB. .: -,
2005. 496 . .
2.
28