(6.1) 符号常量和符号变量
clc;clear;
a = sqrt(5) %创建double型常量根号5
class_a = class(a) %'double'
b = sym(sqrt(5)) %创建符号型常量根号5
class_b = class(b) %'sym'
c = double(b); %将符号型常量转换成double型常量
clc;clear;
%创建符号型变量a、b、c、x
a = sym('a');
b = sym('b');
c = sym('c');
x = sym('x');
f = a * x^2 + b * x + c
%第二种方法
syms a b c x;
g = a * x^2 + b * x + c
(6.2) 符号函数和符号方程
clc;clear;
syms x y;
f = sin(x + y) - exp(x + y) %建立符号函数
e = sin(x + y) == exp(x + y) %建立符号方程
clc;clear;
syms x y;
f(x) = sin(x);
g(y) = cos(y);
h(x,y) = f(x) + g(y);
h_0_0 = h(0,0); %1
(6.3) 符号向量和符号矩阵
clc;clear;
syms x y
a = [sin(x + y) == cos(x + y),exp(x + y) == exp(x - y)]
A = [sin(x + y),cos(x + y);exp(x + y),exp(x - y)]
>>
a =
[ sin(x + y) == cos(x + y), exp(x + y) == exp(x - y)]
A =
[ sin(x + y), cos(x + y)]
[ exp(x + y), exp(x - y)]
(6.4) 符号表达式的基本操作
%符号变量的查找
clc;clear;
syms m n x y;
f = m + n + x + y
symvar(f) %查找符号表达式中所有的符号变量
symvar(f,2) %查找符号表达式中2个与x最接近的符号变量
>>
f =
m + n + x + y
ans =
[ m, n, x, y]
ans =
[ x, y]
%符号变量的替代
clc;clear;
syms x y;
f = x^2 + y^2;
g1 = subs(f,y,3) %用3替代y
g2 = subs(f,3) %用3默认替代x
g3 = subs(f,{x,y},{1,2}) %用1和2分别替代x和y
>>
g1 = x^2 + 9
g2 = y^2 + 9
g3 = 5
%式子展开
clc;clear;
syms x y;
%多项式展开
f1 = (x - y)^2 + (x + y)^3
g1 = expand(f1)
%三角函数展开
f2 = sin(x - 3 * y)
g2 = expand(f2)
%指数函数展开
f3 = exp(2 * x^2 + 4 * y)
g3 = expand(f3)
>>
f1 =
(x - y)^2 + (x + y)^3
g1 =
x^3 + 3*x^2*y + x^2 + 3*x*y^2 - 2*x*y + y^3 + y^2
f2 =
sin(x - 3*y)
g2 =
cos(x)*sin(y) - 3*cos(y)*sin(x) + 4*cos(y)^3*sin(x) - 4*cos(x)*cos(y)^2*sin(y)
f3 =
exp(2*x^2 + 4*y)
g3 =
exp(4*y)*exp(2*x^2)
%式子化简
clc;clear;
syms x y;
f1 = (2 * x^4 - 2 * x) / (2 * x^2 + 4 * x + 2)
sf1 = simplify(f1)
f2 = 2 * cos(x)^2 - 3 * sin(x)^2 - 2
sf2 = simplify(f2)
>>
f1 =
-(- 2*x^4 + 2*x)/(2*x^2 + 4*x + 2)
sf1 =
-(- x^4 + x)/(x + 1)^2
f2 =
2*cos(x)^2 - 3*sin(x)^2 - 2
sf2 =
-5*sin(x)^2
%式子因式分解
clc;clear;
syms x y;
f = x^2 - y^2
g = factor(x^2 - y^2)
y1 = factor(1234567890)
y2 = factor(sym('1234567890'))
>>
f =
x^2 - y^2
g =
[ x - y, x + y]
y1 =
2 3 3 5 3607 3803
y2 =
[ 2, 3, 3, 5, 3607, 3803]
%式子合并同类项
clc;clear;
syms x y;
f = x^2 * y + y * x + 3 * y^2 * x^3 - 2 * x^2 - 2 * x
y1 = collect(x^2 * y + y * x + 3 * y^2 * x^3 - 2 * x^2 - 2 * x) %默认对x合并同类项
y2 = collect(x^2 * y + y * x + 3 * y^2 * x^3 - 2 * x^2 - 2 * x,'y') %对y合并同类项
>>
f =
3*x^3*y^2 + x^2*y - 2*x^2 + x*y - 2*x
y1 =
3*y^2*x^3 + (y - 2)*x^2 + (y - 2)*x
y2 =
3*x^3*y^2 + (x^2 + x)*y - 2*x^2 - 2*x
%式子转化为嵌套形式
clc;clear;
syms x y;
f = x^4 + 6 * x^3 + 4 * x^2 - 4
g = horner(f)
>>
f = x^4 + 6*x^3 + 4*x^2 - 4
g = x^2*(x*(x + 6) + 4) - 4
%获取式子分子和分母
clc;clear;
syms x y;
f = (x / y + 3 * y / x)
[n,d] = numden(f)
>>
f =
x/y + (3*y)/x
n =
x^2 + 3*y^2
d =
x*y
%反函数
clc;clear;
syms x y;
f = sin(x) + cos(y) + 5
g1 = finverse(f) %默认以x为自变量求反函数
g2 = finverse(f,y) %以y为自变量求反函数
>>
f =
cos(y) + sin(x) + 5
g1 =
-asin(cos(y) - x + 5)
g2 =
acos(y - sin(x) - 5)
%复合函数
clc;clear;
syms x y z t u
fx = x + t
gx = y + u
fgx = compose(fx,gx,x)
>>
fx =
t + x
gx =
u + y
fgx =
t + u + x
%极限
clc;clear;
syms x h;
f = (cos(x + h) - cos(x)) / h
y = limit(f,h,0) %求h趋于0的极限
>>
f =
(cos(h + x) - cos(x))/h
y =
-sin(x)
%导数
clc;clear;
syms x y;
f = sin(x - y)
df_dx_1 = diff(f) %默认对x求一阶导
df_dy_2 = diff(f,y,2) %对y求二阶导
df_dx_dy = diff(f,x,y) %先对x求导再对y求导
z = sym('z');
g = [sin(x + y + z),cos(x + y + z)]
%对多元函数组求雅可比矩阵
Jacobi_g = jacobian(g,[x,y,z])
>>
f =
sin(x - y)
df_dx_1 =
cos(x - y)
df_dy_2 =
-sin(x - y)
df_dx_dy =
sin(x - y)
g =
[ sin(x + y + z), cos(x + y + z)]
Jacobi_g =
[ cos(x + y + z), cos(x + y + z), cos(x + y + z)]
[-sin(x + y + z), -sin(x + y + z), -sin(x + y + z)]
%积分
clc;clear;
syms x y;
indefinite_Integral = int(sin(x - y),'x') %对x求不定积分
definite_Integral = int(sin(x - y),'y',0,pi) %对y求[0,pi]上的定积分
>>
indefinite_Integral =
-cos(x - y)
definite_Integral =
-2*cos(x)
%级数
clc;clear;
syms x k;
y1 = symsum(sin(x)+cos(k),x,1,5) %对x求1~5项的和
y2 = symsum(1/k^2,1,Inf) %对k求1到正无穷项的和
f2 = taylor(exp(x),x,0,'order',8) %对x在0处按泰勒展开8项
>>
y1 =
sin(1) + sin(2) + sin(3) + sin(4) + sin(5) + 5*cos(k)
y2 =
pi^2/6
f2 =
x^7/5040 + x^6/720 + x^5/120 + x^4/24 + x^3/6 + x^2/2 + x + 1
%代数方程求解
clc;clear;
syms a b c x;
y1 = solve(a * x^2 + b * x + c == 0)
y = sym('y');
e = y*sin(x)==5
g1 = solve(e) %默认解x
g2 = solve(e,y) %解y
>>
y1 =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
e =
y*sin(x) == 5
g1 =
asin(5/y)
pi - asin(5/y)
g2 =
5/sin(x)
%代数方程组求解
clc;clear;
syms x y;
e1 = x^2 + 4 * x + y^2 + 5 * y-6 == 0
e2 = x^2 + 2 * x + y^2 - 4 == 0
g = solve(e1,e2,x,y) %解x、y
g.x
g.y
>>
e1 =
x^2 + 4*x + y^2 + 5*y - 6 == 0
e2 =
x^2 + 2*x + y^2 - 4 == 0
g =
包含以下字段的 struct:
x: [2×1 sym]
y: [2×1 sym]
ans =
(5*129^(1/2))/29 - 21/29
- (5*129^(1/2))/29 - 21/29
ans =
20/29 - (2*129^(1/2))/29
(2*129^(1/2))/29 + 20/29
%微分方程求解
clc;clear;
syms a y;
de1 = 'Dy==a*y' %也可以写成Dy=a*y
y_t = dsolve(de1) %默认解y(t)
y_x = dsolve(de1,'y(0)=1','x') %解y(x),初值条件为y(0)=1
de2 = 'D2y == y'
y_s = dsolve(de2,'y(0)=1','y(1)=1','s')
>>
de1 =
'Dy==a*y'
y_t =
C5*exp(a*t)
y_x =
exp(a*x)
de2 =
'D2y == y'
y_s =
exp(s)/(exp(1) + 1) + (exp(-s)*exp(1))/(exp(1) + 1)
%微分方程组求解
clc;clear;
[x1,y1] = dsolve('Dx=y','Dy=-x','t')
[x2,y2] = dsolve('Dx=y','Dy=-x','x(0)=3','y(0)=4','t')
>>
x1 =
C30*cos(t) + C29*sin(t)
y1 =
C29*cos(t) - C30*sin(t)
x2 =
5*cos(t - atan(4/3))
y2 =
5*cos(t + atan(3/4))
《 M A T L A B S Y N T A X 》 系 列 博 客 创 作 参 考 资 料 来 源 《MATLAB\ SYNTAX》系列博客创作参考资料来源 《MATLAB SYNTAX》系列博客创作参考资料来源
- 《自动控制原理实验教程》.巨林仓.西安交通大学出版社.
- 《MATLAB工程与科学绘图》.周博.薛世峰.清华大学出版社.
- 《MATLAB R2018a完全自学一本通》.刘浩.韩晶.电子工业出版社.
- 《科学计算与MATLAB语言》.刘卫国.蔡旭晖.吕格莉.何小贤.中国大学MOOC.
- 《MATLAB软件与基础数学实验》.李换琴.朱旭.王勇茂.籍万新.西安交通大学出版社.
- 《Matlab教程 - 图像处理》@正月点灯笼.https://www.bilibili.com.
- 《MATLAB从入门到秃头》@古德谓尔.https://www.bilibili.com.
博 客 创 作 : A i d e n L e e 博客创作:Aiden\ Lee 博客创作:Aiden Lee
特别声明:文章仅供学习参考,转载请注明出处,严禁盗用!