I want to plot this function defined on complex numbers: if floor(Re(z))%2==0, f(z)=z else f(z)=sin(z)
I tried to code this:
import cplot
import math
import numpy as np
def f(z):
if math.floor(np.real(z)[0])%2==0:
res =z
else:
res=np.sin(z)
return res
plt = cplot.plot(f, (-10, +10, 3000), (-10, 10, 3000),5)
plt.show()
But it didn't work, the program completely ignores the existence of the sin function and I don't know why.
I thought this was because of my usage of math. and np. so I tested a simpler function:
if Re(z)>=0, f(z) =z, else f(z)= sin(z)
import cplot
import numpy as np
def f(z):
if np.real(z)[0]>=0:
res =z
else:
res=np.sin(z)
return res
plt = cplot.plot(f, (-10, +10, 3000), (-10, 10, 3000),5)
plt.show()
This time the existence of z was completely ignored.
I thought maybe the problem came from the [0] in np.real(z)[0] but removing it would yield an error
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
I used them and the result is still the same, it completely ignores z in my second code, also the problem seems to be in the > sign; if I change it to < it completely ignores the sin.
f?