355 Reputation

10 Badges

5 years, 218 days

MaplePrimes Activity

These are questions asked by sand15


I have a matrix (named DC on the piece of code below) all the elements of which are complex numbers a+b*I with a and b floating point numbers.
I want to obtain the real part of DC.

Obviously, if you do something like :
DC := Matrix(2,2, [1.0+1.0*I, 1.0-1.0*I, -1.0+1.0*I, -1.0-1.0*I];

the result corresponds to the desired matrix


In fact this matrix DC comes from some computations  described in the piece of code below

# Purpose :
# Given N points in a plane (here  in [0,1]X[0,1]), compute the matrix DX of distances between these points
# Example : if Pi and Pj are two such points, DX[i,j]=DX[j,i] denotes the Euclidian distance between Pi and Pj
# As I did not be able to find any single function in MAPLE that would construct DX , I proceed that way :
#   1/ let X the (N,2) matrix that contains the coordinates of the N points
#   2/ I represent these  N points as N complex numbers (vector C)
#   3/ I construct the (N,N) matrix MC = <C | C …..| C>
#   4/ I put MC = C – Transpose(C) :
#   5/ I take the norm DX of each elements of DC : DX := abs~(DC)
#       At this point, DX should contain the desired distances
#       But, due to floating point arithmetics, each element of DX writes a+0.*I where a is some floating point number)
#   6/ Last stage : execute Re~(DX)


N := 4:
X := Matrix(N,2, convert(Sample(Uniform(0,1), 2*N), list)):  #just an example

C   := X[..,1] +~ X[..,2] *~I;
MC := Multiply(C, Vector[row](N, 1));
DC := MC - Transpose(MC);
DX := abs~(DC);

 My observations : 

1/ Maple 2015, Windows XP, 64 bytes
Re~(DX) returns DX and does not remove the imaginary (0.*I) part
But  Matrix(N, N, Re~(convert(DC, list))) does (which is a satisfactory, even if not clever, stopgap)

Why (it is just a question to help me to understand correctly how MAPLE proceeds) Re~(DC) does not (seem) to work here ?

2/ Maple 2015.2, Mac OS X El Capitan
DX := abs~(DC) gives me this strange result :
If (for instance) DC[i, j] = -1 – 2*I, DX[i, j] = +1 + 2*I
According to the compatibility problems between Maple 2015.1 and “El Capitan” (fixed from February), could it remain a few other problems ?

Last but not lesat : Did I do any syntax error ?

 I look forward to your responses

I saw yesterday evening (at home) a very elegant answer to my question "Intersection of real intervals" .
Unfortunately I can't retrieve it this morning (I'm in the office)

It was something like  coulitbe('_x' ...) ... but I don't remember it entirely
I think it came from Carl Love or maybe Mac Dude

 Could you please send me it again ?



Let A and B two real closed intervals.
I define b(x) as B+x for any real x ; more precisely, if B=[B1, B2], b(x) = [B1+x, B2+x]

I want to build a function f(x) such that :

  1. if  A and b(x) do not overlap then f(x) = 0
  2. otherwise f(x) is some expression of the covering length

For example : if A=[0, 2] and B=[-2,-1], then

  1. f(x) = 0 if  -1+x < 0 or -2+x > 2
  2. otherwise f(x) = L   where L is the measure of the intersection of A and b(x)

I coded a few variants using piecewise or Heaviside functions. 
In some sense I have already answered my own question ... but no one is neither elegant nor concise.

I wonder if there exist a Maple function that returns the measure of the intersection of two real intervals (when they overlap) and 0 otherwise ?


First 16 17 18 Page 18 of 18