(complex-valued) conformal function plot

MuPAD® notebooks will be removed in a future release. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.


plot::Conformal(f, z = z1 .. z2, <a = amin .. amax>, options)


plot::Conformal(f(z), z = z_1..z_2 ) is a plot of the conformal function f over the complex interval z_1..z_2.

plot::Conformal creates plots of (conformal) complex-valued functions of one complex variable. They are displayed by showing the image of a rectangular grid over an interval.

By default, the attribute LineColorType = Flat is set. All curves are displayed with the color given by the attribute LineColor (or Color for short).

When specifying the attribute LineColorType = Dichromatic, a color blend from LineColor to LineColor2 is used (“height coloring”).

When specifying the attribute LineColorType = Functional without specifying a LineColorFunction, all curves parametrized by the real part of the pre-image points are displayed with the flat color LineColor, whereas all curves parametrized by the imaginary part of the pre-image points are displayed with the flat color LineColor2.

A user defined LineColorFunction is a procedure (z, x, y, flag) -> RGB-color that will be called with complex floating-point arguments z from the range of pre-images of the conformal function f, the real floating point values x = Re(f(z)), y = Im(f(z)), and the integer value flag which has the values 1 or 2. The flag value 1 determines the color of the curves parametrized by the real part of z, the flag value 2 determines the color of the curves parametrized by the imaginary part of z. The color function must return an RGB color, i.e., a list of 3 real floating point values between 0.0 and 1.0. For example,

LineColorFunction = proc(z, x, y, flag)
    if flag = 1 then
displays all curves parametrized by Re(z) in blue, while the orthogonal curves, parametrized by Im(z), are displayed in red.

See the examples in the documentation of RGB for another way of displaying complex functions.


AttributePurposeDefault Value
AdaptiveMeshadaptive sampling0
AffectViewingBoxinfluence of objects on the ViewingBox of a sceneTRUE
AntiAliasedantialiased lines and points?TRUE
Colorthe main colorRGB::Blue
Framesthe number of frames in an animation50
Functionfunction expression or procedure 
Legendmakes a legend entry 
LegendTextshort explanatory text for legend 
LegendEntryadd this object to the legend?TRUE
LineColorcolor of linesRGB::Blue
LineWidthwidth of lines0.35
LineColor2color of linesRGB::DeepPink
LineStylesolid, dashed or dotted lines?Solid
LinesVisiblevisibility of linesTRUE
LineColorTypeline coloring typesFlat
LineColorFunctionfunctional line coloring 
LineColorDirectionthe direction of color transitions on lines[0, 1]
LineColorDirectionXx-component of the direction of color transitions on lines0
LineColorDirectionYy-component of the direction of color transitions on lines1
Meshnumber of sample points[11, 11]
Namethe name of a plot object (for browser and legend) 
ParameterEndend value of the animation parameter 
ParameterNamename of the animation parameter 
ParameterBegininitial value of the animation parameter 
ParameterRangerange of the animation parameter 
PointSizethe size of points1.5
PointsVisiblevisibility of mesh pointsFALSE
Submeshdensity of submesh (additional sample points)[0, 0]
TimeEndend time of the animation10.0
TimeBeginstart time of the animation0.0
TimeRangethe real time span of an animation0.0 .. 10.0
Titleobject title 
TitleFontfont of object titles[" sans-serif ", 11]
TitlePositionposition of object titles 
TitleAlignmenthorizontal alignment of titles w.r.t. their coordinatesCenter
TitlePositionXposition of object titles, x component 
TitlePositionYposition of object titles, y component 
VisibleAfterobject visible after this time value 
VisibleBeforeobject visible until this time value 
VisibleFromToobject visible during this time range 
VisibleAfterEndobject visible after its animation time ended?TRUE
VisibleBeforeBeginobject visible before its animation time starts?TRUE
XMeshnumber of sample points for parameter “x”11
XSubmeshdensity of additional sample points for parameter “x”0
YMeshnumber of sample points for parameter “y”11
YSubmeshdensity of additional sample points for parameter “y”0
ZMaxfinal value of parameter “z” 
ZMininitial value of parameter “z” 
ZNamename of parameter “z” 
ZRangerange of parameter “z” 


Example 1

By plotting the identity function, we are presented the pre-image used by plot::Conformal:

plot(plot::Conformal(z, z = 0..1+I))

The important property of conformal functions, as far as plots are concerned, is that orthogonal lines are mapped onto curves meeting orthogonally:

plot(plot::Conformal(z^2, z = 0..1+I))

This property allows to visually detect overlapping regions (in some cases); in the following example this is the case in the left semi-plane:

plot(plot::Conformal(z^(3/2), z = -1-I..1+I))

Example 2

The default mesh may in some cases be too coarse:

plot(plot::Conformal(sin(z^2), z = 0..1+I))

There are at least three ways of improving this plot. Firstly, we can set Mesh to a higher value:

plot(plot::Conformal(sin(z^2), z = 0..1+I, Mesh = [50, 50]))

Another option would be to increase Submesh to get smoother, not more, lines:

plot(plot::Conformal(sin(z^2), z = 0..1+I, Submesh = [2, 2]))

Finally, we can also ask for an adaptive refinement of the submesh by setting AdaptiveMesh to some positive value:

plot(plot::Conformal(sin(z^2), z = 0..1+I, AdaptiveMesh = 2))

Example 3

Here is the image of the complex rectangle 0 ≤ Re(z) ≤ x, 0 ≤ (z) ≤ 1 under the map zbesselJ(0, z). We choose x as the second positive root of Im(besselJ(0, x + I)):

numeric::solve(Im(besselJ(0, x + I)), x = i .. i+1) $ i = 0..7

plot(plot::Conformal(besselJ(0, z), z = 0 .. 6.9934 + I, 
                     Mesh = [31, 10]))



An expression in z and the animation parameter, if present. Expected to be conformal in z.

f is equivalent to the attribute Function.


The independent variable: An identifier or indexed identifier.

z is equivalent to the attribute ZName.

z1 .. z2

The (complex) range over which f should be plotted: z1 and z2 should be complex-valued expressions, possibly in the animation parameter.

z1 .. z2 is equivalent to the attribute ZRange.


Animation parameter, specified as a = amin..amax, where amin is the initial parameter value, and amax is the final parameter value.

See Also

MuPAD Functions

MuPAD Graphical Primitives