涉及 exp() 的因子符号表达式
Factor symbolic expression involving exp()
我有一个符号函数 exp(a+b),想分解出 A=exp(a) 以产生 exp(a+b) = A*exp(b),但我想不通如何在 MATLAB 中执行此操作。以下是我的尝试:
syms a b A
X = exp(a+b);
Y = subs(X,exp(a),A) % = A*exp(b)
但是,Y = exp(a+b)。由于某种原因,MATLAB 无法确定:
exp(a+b) = exp(a) * exp(b) = A*exp(b).
非常感谢任何帮助。
首先,expand
表达式使指数分开然后进行代入。默认情况下,当第一次写出表达式时(在 运行 通过任何函数之前),MATLAB 会尝试简化您的表达式,因此 exp(a)*exp(b)
可以使用 exp(a+b)
更好地表达.这就是为什么你的替换没有效果。但是,如果您明确想要用底数替换指数包含的表达式的一部分,请先展开函数,然后再进行替换:
>> syms a b A;
>> X = exp(a+b);
>> Xexpand = expand(X)
Xexpand =
exp(a)*exp(b)
>> Y = subs(Xexpand, exp(a), A)
Y =
A*exp(b)
我有一个符号函数 exp(a+b),想分解出 A=exp(a) 以产生 exp(a+b) = A*exp(b),但我想不通如何在 MATLAB 中执行此操作。以下是我的尝试:
syms a b A
X = exp(a+b);
Y = subs(X,exp(a),A) % = A*exp(b)
但是,Y = exp(a+b)。由于某种原因,MATLAB 无法确定: exp(a+b) = exp(a) * exp(b) = A*exp(b).
非常感谢任何帮助。
首先,expand
表达式使指数分开然后进行代入。默认情况下,当第一次写出表达式时(在 运行 通过任何函数之前),MATLAB 会尝试简化您的表达式,因此 exp(a)*exp(b)
可以使用 exp(a+b)
更好地表达.这就是为什么你的替换没有效果。但是,如果您明确想要用底数替换指数包含的表达式的一部分,请先展开函数,然后再进行替换:
>> syms a b A;
>> X = exp(a+b);
>> Xexpand = expand(X)
Xexpand =
exp(a)*exp(b)
>> Y = subs(Xexpand, exp(a), A)
Y =
A*exp(b)