What exactly is the desired output? I guess “simplifying” is not uniquely defined. If you want to have a polynomial in rₙ in the “usual” form, simplify has a few keyword arguments.
search: simplify simplify_fractions
Simplify an expression (x) by applying rewriter until there are no changes. expand=true applies expand (/api/#expand) in the beginning
of each fixpoint iteration.
By default, simplify will assume denominators are not zero and allow cancellation in fractions. Pass simplify_fractions=false to
By using expand=true in your example, we can get the (I assume) desired output
Absolutely, it took me a while to realize and get used to just hitting ? and search the built-in docs. As a bonus, it really makes one appreciate the effort many package authors put into their docstrings.
Ah, one more think I just remembered: There is also a tutorial specifically about defining your own “rewriters” – you can put them as a kwarg into simplify. If you have a very specific final form of the symbolic expression in mind, it might be useful to define such custom simplification rules: