12.3 The Class ellipWeier
159
0
-2
1
2
-1
1
real(z)
2
0
imag(z)
0
1
3
-1
2
-2
4
5
-3
-2
-1
0
1
2
3
-2
2
1
-1
1
real(z)
2
imag(z)
0
0
1
-1
3
2
-2
4
5
-3
-2
-1
0
1
2
3
Fig. 12.1 Weierstraß elliptic function ℘ (z) on the left-hand side and σ (z) on the right-hand side
for a lemniscatic lattice with ω 1 = 1.960445 and ω 3 = i · ω 1 . The height is given by the absolute
value, and the phase angle is color coded
surface(X,Y,abs(res),angle(res)) % visualization
zlim([0, 5])
%
figure
for n = 1:numel(z)
% sigma(z) function
res(n)=ellipWeier(’sigma’,omega1,omega3,z(n)).value;
end
res = reshape(res,size(z));
% visualization
surface(X,Y,abs(res),angle(res))
zlim([0,5]
(c) To check the accuracy, we could compute e i : e 1 + e 2 + e 3 = 0.
>> obj=ellipWeier(’eall’,omega1,omega3,0.5 + i * 0.75);
>> sum(obj.value)
ans =
5.551115123125783e-17
The same hold for the function η i :
>> obj = ellipWeier(’etaall’, omega1, omega3);
>> sum(obj.value)
ans =
0.000000000000000e+00 - 8.881784197001252e-16i
The sum of the auxiliary functions ℘ (z) − e i should be equal to 3 · ℘ (z):
>> z = 0.5 + 0.75 * i
>> objwp = ellipWeier(’wp’, omega1, omega3, z);
>> res = ellipWeier(’wpeall’, omega1, omega3, z).value;
>> 3 * objwp.value - sum(res)
ans =
2.220446049250313e-15 + 5.440092820663267e-15i
159
0
-2
1
2
-1
1
real(z)
2
0
imag(z)
0
1
3
-1
2
-2
4
5
-3
-2
-1
0
1
2
3
-2
2
1
-1
1
real(z)
2
imag(z)
0
0
1
-1
3
2
-2
4
5
-3
-2
-1
0
1
2
3
Fig. 12.1 Weierstraß elliptic function ℘ (z) on the left-hand side and σ (z) on the right-hand side
for a lemniscatic lattice with ω 1 = 1.960445 and ω 3 = i · ω 1 . The height is given by the absolute
value, and the phase angle is color coded
surface(X,Y,abs(res),angle(res)) % visualization
zlim([0, 5])
%
figure
for n = 1:numel(z)
% sigma(z) function
res(n)=ellipWeier(’sigma’,omega1,omega3,z(n)).value;
end
res = reshape(res,size(z));
% visualization
surface(X,Y,abs(res),angle(res))
zlim([0,5]
(c) To check the accuracy, we could compute e i : e 1 + e 2 + e 3 = 0.
>> obj=ellipWeier(’eall’,omega1,omega3,0.5 + i * 0.75);
>> sum(obj.value)
ans =
5.551115123125783e-17
The same hold for the function η i :
>> obj = ellipWeier(’etaall’, omega1, omega3);
>> sum(obj.value)
ans =
0.000000000000000e+00 - 8.881784197001252e-16i
The sum of the auxiliary functions ℘ (z) − e i should be equal to 3 · ℘ (z):
>> z = 0.5 + 0.75 * i
>> objwp = ellipWeier(’wp’, omega1, omega3, z);
>> res = ellipWeier(’wpeall’, omega1, omega3, z).value;
>> 3 * objwp.value - sum(res)
ans =
2.220446049250313e-15 + 5.440092820663267e-15i
