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: 请问您是指输出是分式或者指数或者矩阵的时候,计算结果只显示成一行很长的代码吗?可以用pretty()显示成多行的形式,在实时脚本中会显示成一般的手写的形式。 或者您还可以改用mathematica,mathematica中的tradition form也可以显示成常见的手写的形式。 您还可以看看我上传的一个符号运算的文件,在这个链接中,https://download.csdn.net/download/copy_editor/57216864,不过csdn对0积分下载的文件好像需要做任务之后才能下载。 如果以上还没能解决您的问题,欢迎私聊。