MATLAB常见的化简函数如下:
pretty(f) 将符号表达式化简成与高等数学课本上显示符号表达式形式类似
collect(f) 合并符号表达式的同类项
horner(f) 将一般的符号表达式转换成嵌套形式的符号表达式
factor(f) 对符号表达式进行因式分解
expand(f) 对符号表达式进行展开
simplify(f) 对符号表达式进行化简,它利用各种类型的代数恒等式,包括求和、
积分、三角函数、指数函数以及 Bessel 函数等来化简符号表达式
下面进行实现,环境为MATLAB2020b 实时编辑器
代码为求取 使用理想PR控制器控制的逆变器的传递函数
实时编辑器不使用分号结尾可以方便的查看运行结果
syms L_k r C_f positive real
syms s
G_L = 1/(s*L_k+r)
syms T_s positive real
G_PWM = 1/(1.5*T_s*s+1)
syms k_p k_r omega_r positive real
G_PR = k_p+2*k_r*s/(s^2+omega_r^2)
G_ref = G_PR*G_PWM*G_C*G_L/(G_PR*G_PWM*G_C*G_L+G_C*G_L+1)
G_dis = G_C/(G_PR*G_PWM*G_C*G_L+G_C*G_L+1)
simplify(G_ref,1000) %化简为乘积的形式
pretty(G_ref) %此情况下与 simplify结果相同,但结果不如 simplify 易读
collect(G_ref) %合并符号表达式的同类项,由于没有指定自变量,猜测取最高阶数的符号为自变量
%horner(G_ref) %输入应为多项式,此处不适用,注释掉
factor(G_ref) %对符号表达式进行因式分解,得到的结果适合手动进行拉普拉斯逆变换或傅里叶逆变换。
expand(G_ref) %对符号表达式进行展开,猜测 展开成分子阶数增大的形式
simplify(G_dis,1000)
仅展示化简部分的结果:

除了上述的化简函数,函数subexper在化简过程中也起着不可忽视的作用。
限于小白的见识,只了解这些符号函数的化简方式,请各位大佬补充,指正。
MATLAB常见的化简函数如下:pretty(f) 将符号表达式化简成与高等数学课本上显示符号表达式形式类似collect(f) 合并符号表达式的同类项horner(f) 将一般的符号表达式转换成嵌套形式的符号表达式factor(f) 对符号表达式进行因式分解expand(f) 对符号表达式进行展开simplify(f) 对符号表达式进行化简,它利用各种类型的代数恒等式,包括求和、积分、三角函数、指数函数以及 Bessel 函数等来化简符号表达式下面
simplify和simple是Matlab符号数学工具箱提供的两个du简化函数,区别如下:
simplify的调zhi用格式为:simplify(S);对表达式S进行化简。
simple是通过对dao表达式尝试多种不同的方法(包括simplify)进行化简,以寻求符号表达式S的最简形式。
调用方式为:
[r,how]=simple(S);r为返回的简化形式,how为化简过程中使用的一种方法。how有以下几种形式:
(1)simplify 函数对表达式进行化简;
(2)radsimp函数对含根式的表达式进行
符号对象的计算结果是一个更加精确的表达式。数值计算的结果往往是值。
7.1.1 符号对象的建立
符号对象名=sym(A),A可以是数值常量、矩阵或数值表达式**(不加单引号),符号对象可视为符号常量**;A可为变量名**(加单引号),这时符号对象为符号变量**。
syms A1 A2 A3...:一次定义多个符号对象。
>> sin(sym(pi/3))
ans =
3^(1/2)/2
eval(s):求符号对象s的值。
7.1.2 符号对象的运算
符号运算中运算变量的确定:
如果没明确指定:
i,j外,字母顺序上离x仅得小写字母。
一样近取ASC
MINI版matlab,无须安装,解压即用。MINI版matlab.exe启动时不检查C盘序列号. 在启动时不加载java窗口框架,去掉了不常用的toolbox和用不到的dll. 所以这个版本是个最小依赖度的Matlab,没有simulink,也没有medit.但保留了plot和figure的zoom功能. 如果自己还有啥需要用的toolbox函数,就的自己往目录里加了。两个文件,共6M多,解压后大概20M多点。
由于不加载java窗口框架,没有simulink,也没有medit,大大减少了内存的消耗,但也带来了一些不便。
下面简单介绍MINI版matlab的使用。
没有medit,这时.m文件只能用记事本编辑,存到work目录下。
如work目录已有的test.m
可在命令窗口执行test命令调用已有的test函数。
可自己添加函数和工具箱,setpath不能用,如果要新添路径需要到\toolbox\local\pathdef.m中手动添加。
如果matlab.exe不能正常启动,请双击bin目录下的matlab.exe或matlab.bat。
MINI版在只需使用简单功能时可节省内存,提高速度。
如需解决复杂的问题,建议使用全功能版。
小提示:在使用全功能版时在开始-->运行输入matlab.exe -nojvm启动程序,将不加载java窗口框架,可以减少内存的消耗,加快速度。
在Matlab中,可以使用符号变量进行符号运算。符号变量可以表示数学表达式、函数和等式。但是,符号运算的结果通常是符号表达式或符号函数,无法简化为数值。要保存这些结果以便以后使用,可以使用几种方法:
1. 将符号变量保存到MAT文件中。可以将符号变量保存到MAT文件中,以便以后在同一或不同的会话中使用。使用MATLAB命令save和load可以将符号变量保存到MAT文件并从MAT文件中加载。
2. 使用符号函数代替符号变量。有时,符号运算的结果可以通过符号函数代替符号变量来表示。在这种情况下,可以使用函数句柄来表示符号函数。函数句柄是指向函数的指针,可以传递和调用。
3. 将符号表达式转换为函数句柄。如果符号表达式为函数,可以将其转换为函数句柄以便以后使用。可以使用MATLAB命令matlabFunction将符号表达式转换为函数句柄。
4. 将符号表达式转换为数值。有时,可以通过将符号表达式转换为数值来保存符号运算的结果。可以使用MATLAB命令double将符号表达式转换为双精度数值表示。这适用于只需计算符号表达式一次,并且计算量小的情况。
copy_editor: