You could look at Maxima's ratsubst command for ideas about what could be
done.
ratsubst(y, exp(x), exp(5*x)) returns y^5.
RJF
On Friday, August 14, 2015 at 11:58:20 AM UTC-7, Aaron Meurer wrote:
>
> subs is limited on how smart it is. I think it only works for numerical
> coefficients.
>
> Also note that exp(a*x) != exp(x)**a in general (take x = 2*pi*I and a =
> 1/2). It should be true if a is an integer, though (but subs doesn't handle
> it if you set a = Symbol('a', integer=True)).
>
> If you know what form of expression you want to replace, you can use the
> replace() method with Wilds, like
>
> In [26]: b = Wild('b', exclude=[x])
>
> In [27]: print(exp(a*x).replace(exp(b*x), sin(x)**b))
> sin(x)**a
>
> Aaron Meurer
>
>
> On Fri, Aug 14, 2015 at 12:48 PM, Adrián Ashley <[email protected]
> <javascript:>> wrote:
>
>> Hi,
>>
>> Thanks for the workaround, but
>>
>> subs doesn't work here:
>>
>> >>> sin(exp(a*x)).subs({exp(x): x})
>> >>> sin(exp(a*x))
>>
>>
>>
>> Best,
>> Adrian
>>
>> On Saturday, August 15, 2015 at 12:11:31 AM UTC+5:30, Aaron Meurer wrote:
>>>
>>> xreplace only does exact structural replacement (the "x" stands for
>>> "exact"). To get mathematical replacement, use subs:
>>>
>>> >>> print(exp(5*x).subs(exp(x), sin(x)))
>>> sin(x)**5
>>>
>>> Aaron Meurer
>>>
>>> On Fri, Aug 14, 2015 at 5:17 AM, AMiT Kumar <[email protected]> wrote:
>>>
>>>> I am also Interested in getting the solution for this.
>>>>
>>>> *AMiT Kumar*
>>>>
>>>>
>>>> On Friday, August 14, 2015 at 12:08:25 PM UTC+5:30, Gaurav Dhingra
>>>> wrote:
>>>>>
>>>>> Do you want something like replacing some function f1 (say
>>>>> `exponential function` you mentioned `{exp(x): x}` ) with some other f2
>>>>> (say linear function, you mentioned `{exp(x): x}` ) in your expression ?
>>>>>
>>>>> On Friday, August 14, 2015 at 12:03:08 PM UTC+5:30, Adrián Ashley
>>>>> wrote:
>>>>>>
>>>>>> Correction previous example:
>>>>>>
>>>>>> In [9]: sin(exp(a*x)).some_replace_func({exp(x): x})
>>>>>> Out[9]: sin(x**a)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Friday, August 14, 2015 at 11:55:55 AM UTC+5:30, Adrián Ashley
>>>>>> wrote:
>>>>>>>
>>>>>>> Hi Sartaj,
>>>>>>>
>>>>>>> I think you didn't understood my point. I am looking for
>>>>>>> mathematical substitution, not exact
>>>>>>> substitution.
>>>>>>>
>>>>>>> exp(5*x).xreplace({exp(5*x): sin(5*x)}) is just a mere example of
>>>>>>> usage of xreplace. I am not
>>>>>>> looking for exact replacement. the exponent can be anything
>>>>>>>
>>>>>>> For example:
>>>>>>>
>>>>>>> >>> sin(exp(x)).some_replace_func({exp: x})
>>>>>>>
>>>>>>> >>> sin(x)
>>>>>>>
>>>>>>> >>> exp(5*x).some_replace_func({exp(x): sin(x)})
>>>>>>> >>> exp(5*x)
>>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Best,
>>>>>>>
>>>>>>> Adrian
>>>>>>>
>>>>>>> On Friday, August 14, 2015 at 1:48:44 AM UTC+5:30, Sartaj Singh
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Try this,
>>>>>>>>
>>>>>>>> >>> exp(5*x).xreplace({exp(5*x): sin(5*x)})
>>>>>>>> sin(5*x)
>>>>>>>>
>>>>>>>> On 14 August 2015 at 00:24, Adrián Ashley <[email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>> How can I substitute/replace something mathematically from an
>>>>>>>>> expression:
>>>>>>>>>
>>>>>>>>> For example:
>>>>>>>>>
>>>>>>>>> >>> exp(5*x).xreplace({exp(x): sin(x)})
>>>>>>>>> >>> exp(5*x) # I would expect sin(x)**5 here
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> In better way to do the above thing?
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Best,
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Adrian
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "sympy" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to [email protected].
>>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>>> Visit this group at http://groups.google.com/group/sympy.
>>>>>>>>> To view this discussion on the web visit
>>>>>>>>> https://groups.google.com/d/msgid/sympy/4be0109e-a665-4c89-8774-0300163250f0%40googlegroups.com
>>>>>>>>>
>>>>>>>>> <https://groups.google.com/d/msgid/sympy/4be0109e-a665-4c89-8774-0300163250f0%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Regards
>>>>>>>> *Sartaj Singh*
>>>>>>>>
>>>>>>>> *Mathematics and Computing*,
>>>>>>>> Indian Institute of Technology,
>>>>>>>> Varanasi - 221 005 INDIA
>>>>>>>>
>>>>>>>> E-mail: [email protected], *[email protected]*
>>>>>>>>
>>>>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "sympy" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/sympy.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/sympy/f4f3b7a4-00ec-4d0c-85bd-86e6b4731c64%40googlegroups.com
>>>>
>>>> <https://groups.google.com/d/msgid/sympy/f4f3b7a4-00ec-4d0c-85bd-86e6b4731c64%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] <javascript:>
>> .
>> Visit this group at http://groups.google.com/group/sympy.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/sympy/1a705f97-779d-4b7b-b5e2-ea14ee4ca967%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/sympy/1a705f97-779d-4b7b-b5e2-ea14ee4ca967%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sympy/6549fea2-0b0b-4376-b00b-ac2c1126320c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.