|  1 |    initial version    |  
Let's define
idk = v_ges_rhs.subs({
                d_e : RIF(.999,1.001),
                x : -.25,
                d_m : RIF(.05,.15),
                e_m : e_0 * RIF(80.5,81.5),
                e_s : e_0 * RIF(3,4)
               })
 This is a symbolic expression containing RIF numbers and the only symbolic variable is d_k.
At any point in the interval we can evaluate it to a symbolic expression which is just a RIF number, e.g.
sage: idk.subs({d_k : 0.2})
-1.?e10
 Unfortunately we cannot call .upper() on this directly, because there is still a symbolic wrapper around it:
sage: type(idk.subs({d_k : 0.2}))
<type 'sage.symbolic.expression.Expression'>
 To remove the wrapper, we use a RingConverter from SR to RIF:
sage: from sage.symbolic.expression_conversions import RingConverter
sage: R = RingConverter(RIF)
sage: R(idk.subs({d_k : 0.2}))
-1.?e10
sage: type(R(idk.subs({d_k : 0.2})))
<type 'sage.rings.real_mpfi.RealIntervalFieldElement'>
sage: R(idk.subs({d_k : 0.2})).upper()
-6.57758536841850e9
 We can define functions which do this at a given point
f = lambda x: idk.subs({d_k: x})
from sage.symbolic.expression_conversions import RingConverter
R = RingConverter(RIF)
f_lower = lambda x: R(SR(idk.subs({d_k : x}))).lower()
f_upper = lambda x: R(SR(idk.subs({d_k : x}))).upper()
 and plot them:
plot([f, f_lower, f_upper],(x,0.2,0.99), color=['blue', 'red', 'green'])
 
    |  2 |    No.2 Revision    |  
Let's define
idk = v_ges_rhs.subs({
                d_e : RIF(.999,1.001),
                x : -.25,
                d_m : RIF(.05,.15),
                e_m : e_0 * RIF(80.5,81.5),
                e_s : e_0 * RIF(3,4)
               })
 This is a symbolic expression containing RIF numbers and the only symbolic variable is d_k.
At any point in the interval we can evaluate it to a symbolic expression which is just a RIF number, e.g.
sage: idk.subs({d_k : 0.2})
-1.?e10
 Unfortunately we cannot call .upper() on this directly, because there is still a symbolic wrapper around it:
sage: type(idk.subs({d_k : 0.2}))
<type 'sage.symbolic.expression.Expression'>
 To remove the wrapper, we use a RingConverter from conversion to SR RIF:
sage: from sage.symbolic.expression_conversions import RingConverter
sage: R = RingConverter(RIF)
sage: R(idk.subs({d_k RIF(idk.subs({d_k : 0.2}))
-1.?e10
sage: type(R(idk.subs({d_k : 0.2})))
<type 'sage.rings.real_mpfi.RealIntervalFieldElement'>
sage: R(idk.subs({d_k RIF(idk.subs({d_k : 0.2})).upper()
-6.57758536841850e9
sage: RIF(idk.subs({d_k : 0.2})).lower()
-8.63461563768822e9
 We can define functions which do this at a given point
f = lambda x: idk.subs({d_k: x})
from sage.symbolic.expression_conversions import RingConverter
R = RingConverter(RIF)
f_lower = lambda x: R(SR(idk.subs({d_k : x}))).lower()
RIF(idk.subs({d_k : x})).lower()
f_upper = lambda x: R(SR(idk.subs({d_k : x}))).upper()
RIF(idk.subs({d_k : x})).upper()
 and plot them:
plot([f, f_lower, f_upper],(x,0.2,0.99), color=['blue', 'red', 'green'])
 
 
                
                Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.