如何在MATLAB符号表达式中将l*sin(B)+d*sin(B)合并为(l+d)*sin(B)
MATLAB符号表达式合并同类项解决方案
方法一:指定公共因子使用
collect函数
默认调用collect时,MATLAB会默认针对多项式变量整理,不会自动识别sin(B)作为公共因子,只需明确指定要收集的因子即可:syms d l B x = d*sin(B) + l*sin(B); x_simplified = collect(x, sin(B))执行后将输出
(d + l)*sin(B),完全符合需求。方法二:使用
factor函数因式分解factor函数可对符号表达式进行因式分解,自动提取公共项:syms d l B x = d*sin(B) + l*sin(B); x_simplified = factor(x)该方法同样能得到
(d + l)*sin(B)的结果。关于
combine无效的说明combine函数的定位是合并三角函数、指数函数等同类函数的形式(比如将sin(A)+sin(B)转化为和差化积形式),并非用于提取多项式公共因子,因此不适用当前场景。
内容的提问来源于stack exchange,提问作者BlankSeed
相关产品推荐
相关产品推荐

