https://www.chebfun.org/examples/complex/ConformalSquare.html
http://www.oranlooney.com/post/complex-r/
http://sepwww.stanford.edu/data/media/public/docs/sep117/jeff1/paper_html/node2.html#jeff1_fig:map1
Mutually orthogonal parabolas is a conformal map.
x=-10:10
y=-10:10
coord=expand.grid(x,y)
plot(coord)
z <- complex(real=coord[,1], imaginary=coord[,2])
fz <- z^2
plot(fz)
https://matthewmcgonagle.github.io/blog/2017/11/09/ConformalGeometry
https://math.stackexchange.com/questions/1354885/isothermic-surface
https://encyclopediaofmath.org/wiki/Isothermal_coordinates
https://encyclopediaofmath.org/wiki/Conformal_geometry
An isothermic map diagonalizes fundamental coefficients of the first order \(E = G = \lambda(u, v)\), \(F = 0\). \[\left| {\begin{array} *{E= \lambda(u, v)}&{F=0}\\ {F=0}&{G= \lambda(u, v)} \end{array}} \right|\] The First Fundamental Quadratic Form is \[ds^2=Edu^2+2Fdudv+Gdv^2\]
For example catenoid \(\bar r(u,v)=\{\cos(v)\cosh(u),\sin(v)\cosh(u),u\}\), and \(E = G = \cosh(u)^2\), \(F = 0\), \(ds^2=\cosh(u)^2(du^2+dv^2)\).
require(Deriv)
## Loading required package: Deriv
## Warning: package 'Deriv' was built under R version 4.0.5
rbar=c("cos(v)*cosh(u)","sin(v)*cosh(u)","u")
#degree 1 and 2 partial on rbar
drdu=sapply(rbar,function(m) Deriv(m,"u"))
drdv=sapply(rbar,function(m) Deriv(m,"v"))
dot_prod<-function(a,b){
#paste0("(",c("1","2","3"),")")
a=paste0("(",a,")")
b=paste0("(",b,")")
res=Simplify(paste(paste(a,b,sep="*"),collapse="+") )
return(paste0("(",res,")"))
}
dot_prod(drdu,drdu) #==cosh(u)^2
## [1] "((cos(v)^2 + sin(v)^2) * sinh(u)^2 + 1)"
dot_prod(drdu,drdv)
## [1] "(0)"
dot_prod(drdv,drdv)
## [1] "((cos(v)^2 + sin(v)^2) * cosh(u)^2)"
E="cosh(u)^2"
F= 0
G="cosh(u)^2"
Isothermic system/isothermal coordinate is to use one-parameter (u or v) family of curves together with orthogonal trajectories forms an coordinate system on the surface.
https://math.stackexchange.com/questions/15730/area-preserving-transformations
https://math.stackexchange.com/questions/3920639/is-convolution-area-preserving?noredirect=1
https://mathoverflow.net/questions/338238/area-preserving-map-of-punctured-disk-to-itself
https://wumbo.net/concept/complex-numbers/
This is an example called punctured disk or Pythagorean conjugate. In a plane, given a coordinate vector \(v=\{x,y\}\) and a radius \(r\), we want to find another coordinate vector \(v'=\{f_x(v),f_y(v)\}\) which satisfies Pythagorean theorem, i.e. \[||v||^2+||v'||^2=r^2\] The vector \(v'\) is vector \(v\) rotated by 90 degree and multiplying a length factor. \[v'=\{f_x(v),f_y(v)\}=\frac{\sqrt{r^2-x^2-y^2}}{\sqrt{x^2+y^2}}\left\{-y,x\right\}\] We have \(v=\{x=1,y=2\}\), \(v'=\{f_x=-1.7888544,f_y=0.8944272\}\) and \(r=3\), so that \(||v||^2+||v'||^2=3^2\).
x=1
y=2
r=3
c(x,y)
## [1] 1 2
fx=sqrt(r^2-x^2-y^2)/sqrt(x^2+y^2)*(-y)
fy=sqrt(r^2-x^2-y^2)/sqrt(x^2+y^2)*(x)
c(fx,fy)
## [1] -1.7888544 0.8944272
sum(c(x,y)^2)+sum(c(fx,fy)^2)#==3^2
## [1] 9
A numeric check Jacobian determinant equals -1.
#jacobian
require(Deriv)
fx="sqrt(r^2-x^2-y^2)/sqrt(x^2+y^2)*(-y)"
fy="sqrt(r^2-x^2-y^2)/sqrt(x^2+y^2)*(x)"
dfxdx=Deriv(fx,"x")
dfxdy=Deriv(fx,"y")
dfydx=Deriv(fy,"x")
dfydy=Deriv(fy,"y")
x=1
y=2
r=3
#cross product
eval(parse(text=dfxdx))*eval(parse(text=dfydy))-eval(parse(text=dfxdy))*eval(parse(text=dfydx))
## [1] -1
Fundamental coefficients of the first order satisfy \(EG - F^2 = 1\).
dfxdx=Deriv(fx,"x")
dfydx=Deriv(fy,"x")
dfxdy=Deriv(fx,"y")
dfydy=Deriv(fy,"y")
rx=c(eval(parse(text=dfxdx)),eval(parse(text=dfydx)))
ry=c(eval(parse(text=dfxdy)),eval(parse(text=dfydy)))
E=rx%*%rx
F=rx%*%ry
G=ry%*%ry
E*G-F^2
## [,1]
## [1,] 1
Let \(v=x+yi\) be a complex number. Rotation is done by multiplying \(i\), and the Pythagorean conjugate v’ is \[v'=vi\frac{\sqrt{r^2-Mod(z)^2}}{Mod(z)}\]
v = complex(real = x, imaginary = y)
i = complex(real = 0, imaginary = 1)
#Multiplying a complex number by i rotates the number 90 degrees counter-clockwise in the complex plane.
fv=v*i*sqrt(r^2-Mod(v)^2)/Mod(v)
fv
## [1] -1.788854+0.894427i
Mod(v)^2+Mod(fv)^2
## [1] 9