Matlab自学笔记六十:符号表达式的缩写和简化
1.说明
较长的符号表达式可能含有多个相同的子表达式,可以把这样的子表达式替换并缩写,也可以进行相应的同项合并进行化简,但缩写和简化的结果不一定能达到期望,一般来说,对于很长的符号表达式,基本没有可读性,尝试缩写或化简一下是必要的,但如果简化效果不理想,也应该理性接受,原因未必是Matlab简化能力不够,可能是由于表达式太复杂,无法进一步简化;
2.认识函数
pretty使用内部算法来选择要缩写的子表达式,可以嵌套缩写;
subexpr函数只做一个子表达式的缩写,它不支持嵌套缩写,它默认使用变量sigma来缩写子表达式;
simplify对长表达式进行化简,效果往往不错,可以尝试使用;
3.程序示例
syms x
s=(sqrt(5)+x)/2
pretty(s)
运行结果:
s =
x/2 + 5^(1/2)/2
ss=(s^2+s+1)*(s^2+s-1)/((s^2-s-1)*(s^2-s+1)^2)
pretty(ss) %嵌套缩写,将表达式中重复出现的子表达式缩写并拎出说明,子表达式符号无法更改
[s1,t]=subexpr(ss,'t') %嵌套缩写,返回表达式名称可指定,且是单行表达
f=(1-x^2)/(1-x)
simplify(f) %化简结果x+1
运行结果:
s1 =
-((t^2 + t - 1)*(t^2 + t + 1))/((- t^2 + t + 1)*(t^2 - t + 1)^2)
t =
x/2 + 5^(1/2)/2
f =
(x^2 - 1)/(x - 1)
ans =
x + 1
更多视频相关内容
24.2 KNN算法之邻点搜索方法:KD树,概念、原理和搜索流程KDTreeSearcher
36.1 Matlab GUI 界面设计初学者光速入门
14.6 Matlab微分方程数值解法 经典ode45 龙格库塔 数学建模
14.1 Matlab解微分方程
22.3/Matlab/fmincon/带约束多元函数最小值/解优化问题数学建模
66.15/Matlab有点飘:未定义函数或变量/函数或变量无法识别
11.1/Matlab解方程/solve基本用法/不会的举手
37.1 一节光速入门Matlab AppDesigner界面设计编程
31.11/Matlab函数绘图/隐函数绘图/分段函数作图数学建模
45.1 一个实例入门Matlab深度学习|卷积神经网络
43.1 一个实例搞定Matlab神经网络编程解决拟合预测问题数学建模
End