Ondrej Certik wrote:
> On Thu, Jun 5, 2008 at 4:32 PM, Robert Cimrman <[EMAIL PROTECTED]> wrote:
>> Ondrej Certik wrote:
>>> I just discovered we probably need to think about this:
>>>
>>> In [1]: a = Matrix((1, x), (2, y))
>>>
>>> In [2]: from numpy import array
>>>
>>> In [3]: a
>>> Out[3]:
>>> ⎡1 x⎤
>>> ⎣2 y⎦
>>>
>>> In [4]: Matrix(sin(array(a)))
>>> Out[4]:
>>> ⎡sin(1) sin(x)⎤
>>> ⎣sin(2) sin(y)⎦
>>>
>>> In [5]: sin(a)
>>> [...]
>>>
>>> AttributeError: 'Matrix' object has no attribute 'is_Number'
>>>
>>>
>>> What should [5] return? The same as [4] or the sin of a Matrix, which
>>> is defined as sin(A) = Q*sin(D)*Q^T    if A = Q*D*Q^T   and D is
>>> diagonal, so sin(D) is just the D with sin applied to the diagonal
>>> terms.
>> This stuff generates neverending discussions on numpy lists. Numpy
>> currently solves this by having array (n-dimensional container) and
>> matrix (special 2d array w.r.t. multiplication and some functions). As
> 
> Well, not for sin:
> 
> In [8]: from numpy import matrix, array, sin
> 
> In [11]: a = matrix([[1,2],[3,0]])
> 
> In [12]: sin(a)
> Out[12]:
> matrix([[ 0.84147098,  0.90929743],
>         [ 0.14112001,  0.        ]])
> 
> In [13]: sin(array(a))
> Out[13]:
> array([[ 0.84147098,  0.90929743],
>        [ 0.14112001,  0.        ]])
> 
> 
> 
> So that's not how I would like this to be. It should either work for
> all functions or for no functions.

I see. I do not use numpy matrices anyway, just arrays, as they are not 
really the linear algebra matrices, only arrays with some peculiar 
modifications - they have no extra value that arrays have not. SymPy 
Matrix could differ in this respect, as otherwise the Matrix is just a 
misnomed Array. But my voting power is zero here :)

>> Matrix in SymPy is a linear algebra matrix, it should IMHO behave as
>> such, i.e. sin(A) = Q*sin(D)*Q^T. Then maybe an Array would be usefull,
>> something like sympy version of list of lists [of lists...].
> 
> Yes, I think so too. Plus we could create some pure python arrray
> implementation, fully compatible with numpy.

But internally, SymPy should stick to one, otherwise checking all the 
argument combinations would be a nightmare, no?

r.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sympy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to