C # - 189 Bytes
double f(double x, double y){double r,t,m,c;r=Math.Sqrt(x*x+y*y);t=Math.Atan2(y,x);m=Math.Pow(r,-x)*Math.Exp(y*t-t);c=Math.Cos((1-y)*Math.Log(r)-t*x);return m*(2*c*c<1?Math.Sqrt(1-c*c):c);}
Dapat dibaca:
double f(double x, double y){
double r, t, m, c;
r = Math.Sqrt(x * x + y * y);
t = Math.Atan2(y, x);
m = Math.Pow(r, -x) * Math.Exp(y * t - t);
c = Math.Cos((1 - y) * Math.Log(r) - t * x);
return m * (2 * c * c < 1 ? Math.Sqrt(1 - c * c) : c); }
Penjelasan: Memutuskan untuk tidak menggunakan perpustakaan yang kompleks.
zzi - z= x + i y= r ei t= ( r ei t)( - x + i ( 1 - y) )= r- xri ( 1 - y)e- x i tet ( y- 1 )= r- xet ( y- 1 )ei ( ( 1 - y) ln( r ) - x t ) (seperti rsaya= ei ln( r ))
Biarkan ini sama dengan m esaya a dimana
m = r- xet ( y- 1 )
a = ( 1 - y) ln( r ) - x t
Kemudian R ( zi - z) = m cosSebuah dan Saya ( zi - z) = m dosaSebuah
Nilai absolut maksimum dapat ditentukan oleh cosSebuah dan dosaSebuah istilah, dengan ini sama di 12√ (karenanya tes 2 c2< 1).
Seperti disebutkan, menaikkan ke eksponen kompleks tergantung pada pemilihan cabang tertentu (mis z= 1 bisa jadi esaya π atau e3 i π - Mengangkat ini ke saya memberikan bagian nyata dari e- π atau e- 3 π masing - masing), namun, saya baru saja menggunakan konvensi t ∈ [ 0 , 2 π) sesuai pertanyaan.