I have a complicated expression which I want to simplify following a rule. For example, if I want to make the following replacement:
A[t] - B*A[t - d1] = Y[t]
for any values of t
and d1
, for example,
A[t - 4] - B*A[t - 4 - d1] = Y[t-4]
Using the wildcard underscore notation, I've been able to get a simple version to work,
A[t-4] - B*A[-d1 + t-6] /. A[t_] - B*A[d_] ->Y[t]
which correctly returns Y[t-4]
. However, if everything is premultiplied, then I cannot get the right result:
(x1*A[t - 4] - x1*B*A[-d1 + t - 4]) /. {A[t_] - B*A[d_] -> Y[t]}
which should give x1*Y[t-4]
. I understand that if I look at the FullForm
that Mathematica recognizes it as something different, but I need a way around that. I don't think I can easily collect terms as my expressions are something like:
(x1*A[t - 4] - x1*B*A[-d1 + t - 4]) + (x1*x2*A[t] - x1*x2*B*A[-d1 + t])
and I need a rule which changes that to x1*Y[t-4] + x1*x2*Y[t]
. I was thinking about using another wildcard before the terms, but this doesn't appear to be working:
(x1*A[t - 4] - x1*B*A[-d1 + t - 4]) /. {x_*A[t_] - x*B*A[d_] -> x*Y[t]}
Any help or a simple way to make these replacements would be much appreciated!