1
votes

In Matlab I can write:

real(cos(kron(acos(-1.25),[0:4])))

and get:

 1.0000   -1.2506    2.1282   -4.0725    8.0583

How to do the same in Julia. acos does not work with numbers less than -1.0. Even if I write:

r   = max(-1.25,-1)
v   = collect(0:4).';    
cc  =kron(acos(r),v)

I get only this:

   1.0  -1.0  1.0  -1.0  1.0

It seems that I need to make cos/acos work with complex numbers.

1
Just curious, what's the purpose of r = max(-1.25,-1)? - rickhg12hs
This is part of a larger code to numerically compute some model. Should I limit the values of r to -1? - pp11

1 Answers

4
votes

Is this what you are looking for?

julia> real(cos.(kron(acos(complex(-1.25)),(0:4)')))
1×5 RowVector{Float64,Array{Float64,1}}:
 1.0  -1.25  2.125  -4.0625  8.03125

or

julia> real(cos.(kron(acos(complex(-1.25)),0:4)))
5-element Array{Float64,1}:
  1.0    
 -1.25   
  2.125  
 -4.0625 
  8.03125

Looks like Julia's acos requires a complex argument for a complex output.