MATLABSymbolic Math Toolbox
:
2019 6 4
1. ... p.42. ... p.63. ... p.164. ... p.395. ... p.426. ... p.467. ... p.528. ... p.549. ... p.5610. ... p.60
2
Symbolic Math Toolbox
• MATLAB•
•
•–
3
sym
4
•
•• sym( )
•
x=sym(‘x’); x
y=sym(‘y’); y
syms a b; a,b
a = sym(1/3);b = sym(1/7);
a 1/3, b 1/7
5
•
+ a+b;sym(1/3) + sym(1/7); 10/21
- a-b;sym(1/3) – sym(1/7); 4/21
* a*b;sym(1/3) * sym(1/7); 1/21
/ a / b;sym(7) / sym(3); 7/36
x=sym(‘x’);c = sin(x)/x^2;
xb
a; b; c; a b c
a * b; !×#
clear all;
7
^ sym(1/3)^sym(3) 1/27
sqrt sqrt(sym(2)) 2^(1/2)
sym( ,’d’)10 )
sym(1/3,’d’); 2.333333333
ii
sym(2 + 3*i);sym(i)^2;
2+3i-1
8
a=sym(pi);b=sym(pi,’r’);
π
b=sym(pi,’d’);
b=sym(pi/5) + sym(pi/3)
clear
9
•sin( )
Ang = 60; 60
sin(Ang); NGsin(Ang*pi/180);
cos(pi/4);
tan(pi/6);
10
asin(1/2); arcsin(1/2)acos(1/2); arccos(1/2)
atan(sqrt(3)); arctan( 3)
11
sin(sym(pi));cos(sym(pi/2));
atan(sym(sqrt(3)));syms x y
simplify(sin(x)^2+cos(x)^2);eq = expand(cos(x+y));
combine(eq, ’sincos’);
12
• exp
exp(x) e x
exp(2); !"
13
• log log(x) log x log2(x) 2log10(x):
log(2); log 2log2(3); log% 3
log10(1020); log'( 102014
syms x y z; x, y, z exp(1); exp(sym(1));
exp(sym(2))*exp(sym(3));exp(x)+exp(y);
!"!#×!%!& + !(
log(x);log2(sym(8));log10(sym(x));
2
S = log(sym(2)) + log(sym(3));combine(S, ‘log’)
clear 15
(1)
x = 1:10; 1 10
y1 = 0:0.2:1y2 = 1:-0.2:0
n=10; x1=-5; x2=5;y3 = linspace(x1,x2,n);
x1 x2 n
y4 = linspace(x1, x2); n 100
clear
16
(2)
n=5; z1 = zeros(1, n);
n
z2 = ones(1, n); 1z3=rand(1,n);t=[1 4 3 8 2];
t(2); t 2t(2:4); t 2 4clear
17
• a,b,c,d 1 4a
•• q
(1)
syms a b c dp=[a b c d];
p=[a, b, c, d]
18
• c1…c4 14 c
•• d
(2)
c=sym(‘c’, [1 4]); c=[c1, c2, c3, c4]
19
syms ee ff gg hh; e=[ee ff gg hh];
1 4 e
et=e.’;et=transpose(e);
e
c + e
c – e
c * et ( )
* csym(2) * c
20
n=3; nA=zeros(n);B=ones(n); 1C=rand(n);
D=[1 2 3; 4 5 6; 7 8 9];
A(2,3) 2 3A(:, 1) 1A(3, :) 3clear 21
• A•• B
(1)
syms d e f; A=[d e f; f d e];
A = [d, e, f][f, d, e]
A(2,3) ans = e
22
• 3 4C
• Ci_j
•• D
(2)
C=sym(‘C’, [3 4]); C = [ C1_1, C1_2, C1_3, C1_4][ C2_1, C2_2, C2_3, C2_4][ C3_1, C3_2, C3_3, C3_4]
C(2,3) ans = C2_3
23
syms j,k,m; E=[j k m; m j k; k m j];
3 3 E
A + E
A – E
A * E
* Asym(2) * A
inv(A)clear
24
h = inline('3*x^3 + 2*x^2 +1');h(3)
h(x)h(3)
syms f(x)f(x) = x^4-2*x^3+4*x^2-5*x+6;
f(x)
f(-5) f(-5)
syms g(s, t)g(s, t) = s + 2*t
2 g(s,t)
g(1,2) g(1,2)
clear25
•
[n,d] = numden(sym(4/5));
syms x y[n,d] = numden(x/y + y/x) syms a b[n,d] = numden([a/b, 1/b; 1/a, 1/(a*b)]
quorem(sym(7), sym(3));
26
syms xeq1 = (x^3+x+1)/(x^2 + x + 1);
[eq2, eq3] = numden(eq1);[q, r] = quorem(eq2, eq3, x);
clear
27
• i i
real z) z
imag(z) z
abs(z)
28
i^2; -1
eq1 = 4 – 5i;eq2 = sym(4- 5i);
real(eq1); real(eq2);imag(eq1); imag(eq2);
abs(eq1); abs(eq2);
clear
29
• max min
• abs
A=[3 5 12 6 29 3];M1=max A)
A
M2=min(A) Aabs(-5.0)
30
B=[sym(1/3) sym(2/7) sym(11/9)];M1=max(B)M2=min(B)
C = [2 8 4; 7 3 9]M3=max(C)
M4=max(C, [], 2)
clear
31
factorial(n) n factorial(5)
syms nf = n^2+1;
fFac = factorial(f)round(a) a round(sym(2/3))
mod(a, b) a m mod(23, 3)
gcd(a,b) a b gcd(123, 45)
lcm(a,b) a b lcm(6, 8)
32
•
factor n)( )
nthprime(n) n
isprime(n) n10
nextprime(n)prevprime(n)
33
factor(sym(112/81));
syms x yF=factor(y^6 - x^6)
nthprime(200) 200isprime(37);
nextprime(100); 100
prevprime(100); 100
34
round(n) round(sym(1/3));
ceil(n) ceil(sym(1/3));
floor(n) floor(sym(1/3));
fix(n) fix(sym(1/3));fix(sym(-1/3));
35
• sort
A=[1 3 21 6 12 9 4];sort(A);
syms a b c dB=[b c a d];
sort(B)sort(A, ‘descend’)sort(B, ‘descend’)
36
• sum
syms a b cA= [a b b c];
S=sum(A)A= [a b c; b c a; a c b];
S=sum(A)S=sum(A,2)
37
• prod
38
syms a b cA= [a b b c];S=prod(A)
A= [a b c; b c a; a c b];S=prod(A)
S=prod(A,2)
• expand• factor
= expand( );factor( );
39
•
syms xp = (x-2) * (x-4);
q=expand(p)(x-2)(x-4)
factor(q); q
r = (x+1)/(x+2);expand(r)
40
simplify( ) syms xeq1 = 1/(1+1/(1+1/(1+x)));
simplify(eq1);sign( ) a = sym(-5); b = sym(1/3);
sign(a)sign(b)
coeffs ) eq2 = 6*x^3 - 5*x^2 + 2*x -3*x + 4;
c=coeffs(eq2)coeffs ,
)eq3 = 6*x^3 - 5*y^2 + 1;
cx=coeffs(eq3,x)cy=coeffs(eq3,y)
41
• subs
syms xy = x^2;x=2; y x 2 y=4
x=2;subs(y) subs x
42
syms a bsubs(a+b, a, 4);
a 4
subs(a*b^2, a+b, 5) a+b 5
clear
43
• subs(s, old, new) s oldnew
• Solve
syms xsolve(x^3 - 6*x^2 == 6 - 11*x)
x^3 - 6*x^2 = 6 - 11*x
solve(x^3 - 6*x^2 + 11*x - 6) x^3 - 6*x^2 + 11*x – 6 = 0= 0
syms x y solve(6*x^2 - 6*x^2*y + x*y^2
- x*y + y^3 - y^2 == 0, y)
6*x^2 - 6*x^2*y + x*y^2 - x*y + y^3 - y^2 = 0y
syms x y z[x, y, z] = solve(z == 4*x, x == y,
z == x^2 + y^2)
z = 4*x, x = y, z = x^2 + y^2x, y, z
44
syms x y zeq1 = 2*x + y + z ==2;eq2 = -x + y – z == 3;
eq3 = x + 2*y + 3*z == -10;[x y z] = solve([eq1, eq2, eq3) (1) solve
syms y1 y2y1=x+3;y2=3*x;
solve(y1 == y2)
y1 y2
clear45
• plot
plot(x, y)• x1≦x≦x2)
ezplot(‘ (x)’, [x1 x2])•
hold on (hold off )•
→Save as
(1)
46
(2)
x=linspace(0, 2*pi, 100);plot(x, sin(x));
y = sin(x) (0≦x≦2π)
y = cos(x) (0≦x≦2π)
ezplot(’sin(x)’, [0, 3]); y = sin(x) (0≦x≦3)
hold onezplot(’sin(x)’, [0, 6.28]);ezplot(’cos(x)’, [0, 6.28]);hold off 47
2
syms xfplot([sin(x),cos(x)], [-2*pi, 2*pi]);
sin(x) cos(x)
ezplotjpg
48
3 (1)
t=linspace(0, 10, 40); (1) t
[x, y] = meshgrid(t, t); (2) t meshgrid xy
z = sin(x) + cos(y/2); (3)
mesh(x, y, z); (4) mesh 3
49
3 (2)
ezplot3(‘sin(t)’, ‘cos(t)’, ‘t’)50
• ezplot3 3
ezplot3(x, y, z, [min, max])• min≦ t ≦max x= x(t), y = y(t), z = z(t)
0≦ t ≦2π )
3
syms tx = (1-t)*sin(100*t);y = (1-t)*cos(100*t);z = sqrt(1 – x^2 – y^2);ezplot3(x, y, z, [0 1])
51
• diffdiff( , )
(1)
52
syms f(x)f(x) = sin(x^2);df = diff(f, x)
f(x) = sin(x^2)
df2 = df(2); x = 2
double(df2) (double)
• diff( , )
• diff( , , n) n
(2)
53
syms x tdiff(sin(x*t^2), t)
t
syms sd = diff(t^6, 4)
!" 45 6
syms x ydiff(x*cos(x*y), y, 2)
y 2
• int
int( , )
int( , , [ ])
(1)
54
(2)
syms xf = x^2;int(f, x);clear
f x
syms xf = x*log(1+x);int(f, x, [0 1]);clear
f 0 1
syms x tint(2*x, x, [sin(t) 1])
sin(t) 1
55
• limit
limit( , , , ) ( ) ( )( )
Inf’right’ ’left’
(1)
56
(2)
syms xf = sin(x)/x;limit(f, x, 0);
lim$→&'()($)$
syms xf2 = (2*x^2+x-3)/(x^2-2*x+1);limit(f2, x, Inf);
lim$→, -$./$01
$.0-$/2
limit(1/x, x, 0, right);
limit(1/x, x, 0, left);
clear
57
• taylor
taylor( , , ) =
50
taylor( , , ‘Order’, )
58
(2)
syms xf = sin(x)/x;t1=taylor(f, x)
sin(x)
t2=taylor(f, x, ‘Order’, 8); 8
fplot([t1 t2 f])xlim([-4 4])grid on
59
• diff
diff(y, x) == y !"!# = y
• dsolve( , )
•
60
syms a y(t)eqn = diff(y,t) == a*y;
!"!# = %&
dsolve(eqn); C2cond = y(0) == 5; Y(0) = 5 Ysol = dsolve(eqn, cond)
61