根据特定子表达式重写符号表达式

Rewrite a symbolic expression in terms of a specific subexpression

我需要根据特定的子表达式重写符号表达式。

考虑以下场景:

有办法实现吗?

编辑:

1 / (1 + a/b)1 / (1 + c)的步骤可以通过调用

来实现
subs(1 / (1 + a/b),a/b,c)

所以一个更好的问题是:

有没有办法告诉 MATLAB 将 'simplify' b / (a + b) 变成 1 / (1 + a/b)

只是调用 simplify(b / (a + b) 没有区别。

不能自动保证简化为您想要的形式,根据我的经验,不太可能直接通过 simplify-ing 实现,因为我注意到简化规则更喜欢有理多项式函数。然而, 如果你知道合适的减速比,你可以替代和简化

>> syms a b c
>> f = b / (a + b);
>> simplify(subs(f,a,c*b))
ans =
1/(c + 1)

>> simplify(subs(f,b,a/c))
ans =
1/(c + 1)

然后在没有简化的情况下重新代入,如果需要的话:

>> subs(simplify(subs(f,a,c*b)),c,a/b)
ans =
1/(a/b + 1)

>> subs(simplify(subs(f,b,a/c)),c,a/b)
ans =
1/(a/b + 1)