This doesn't work for me at all on CoCalc; it gets stuck in an infinite
loop because of the matrix A. If I move the definition of A into the body
of the loop, it seems to work. Like so:
@interact
def linear_transformation(theta=slider(0, 2*pi, .1), r=slider(0.1, 2, .1,
default=1)):
A=matrix([[1,-1],[-1,1/2]])
v=vector([r*cos(theta), r*sin(theta)])
w = A*v
circles = sum([circle((0,0), radius=i, color='black') for i in [1..2]])
pretty_print(html("$%s %s=%s$"%tuple(map(latex, [A, v.column().n(4),
w.column().n(4)]))))
show(v.plot(color='red')+w.plot(color='blue')+circles,aspect_ratio=1)
I think the problem, at least in CoCalc, is that @interact expects every
argument to the function to be an interactive device. That may well be the
problem in sagemath 8.1 too.
On Friday, September 8, 2017 at 9:00:27 AM UTC-5, HG wrote:
>
> https://wiki.sagemath.org/interact/linear_algebra
> @interact
> def linear_transformation(A=matrix([[1,-1],[-1,1/2]]),theta=slider(0,
> 2*pi, .1), r=slider(0.1, 2, .1, default=1)):
> v=vector([r*cos(theta), r*sin(theta)])
> w = A*v
> circles = sum([circle((0,0), radius=i, color='black') for i in [1..2]])
> pretty_print(html("$%s %s=%s$"%tuple(map(latex, [A, v.column().n(4),
> w.column().n(4)]))))
> show(v.plot(color='red')+w.plot(color='blue')+circles,aspect_ratio=1)
>
> I got this error in sagemath 8.1(beta4)
>
> Any help ?
>
> Traceback (most recent call
> last)/home/pi/sage/local/lib/python2.7/site-packages/ipywidgets/widgets/interaction.pyc
> in update(self, *args) 215 value =
> widget.get_interact_value() 216
> self.kwargs[widget._kwarg] = value--> 217 self.result =
> self.f(**self.kwargs) 218 if self.auto_display and
> self.result is not None: 219 display(self.result)
> <ipython-input-3-082d256f4933> in linear_transformation(A, theta, r) 4
> w = A*v 5 circles = sum([circle((Integer(0),Integer(0)), radius=i,
> color='black') for i in
> (ellipsis_range(Integer(1),Ellipsis,Integer(2)))])----> 6
> pretty_print(html("$%s %s=%s$"%tuple(map(latex, [A, v.column().n(Integer(4)),
> w.column().n(Integer(4))])))) 7
> show(v.plot(color='red')+w.plot(color='blue')+circles,aspect_ratio=Integer(1))
> /home/pi/sage/src/sage/structure/element.pyx in
> sage.structure.element.Element.__getattr__
> (/home/pi/sage/src/build/cythonized/sage/structure/element.c:4286)() 477
> AttributeError: 'LeftZeroSemigroup_with_category.element_class'
> object has no attribute 'blah_blah' 478 """--> 479 return
> self.getattr_from_category(name) 480 481 cdef
> getattr_from_category(self, name):
> /home/pi/sage/src/sage/structure/element.pyx in
> sage.structure.element.Element.getattr_from_category
> (/home/pi/sage/src/build/cythonized/sage/structure/element.c:4395)() 490
> else: 491 cls = P._abstract_element_class--> 492
> return getattr_from_other_class(self, cls, name) 493 494 def
> __dir__(self):
> /home/pi/sage/src/sage/cpython/getattr.pyx in
> sage.cpython.getattr.getattr_from_other_class
> (/home/pi/sage/src/build/cythonized/sage/cpython/getattr.c:1822)() 252
> dummy_error_message.cls = type(self) 253
> dummy_error_message.name = name--> 254 raise dummy_attribute_error
> 255 attribute = <object>attr 256 # Check for a descriptor (__get__
> in Python)
> AttributeError: 'sage.rings.real_mpfr.RealNumber' object has no attribute
> 'column'
>
>
>
>
>
--
You received this message because you are subscribed to the Google Groups
"sage-support" 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 https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.