# `plot`::`Conformal`

(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.

## Syntax

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

## Description

`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) begin if flag = 1 then return(RGB::Blue) else return(RGB::Red) end_if; end_proc ```
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.

## Attributes

AttributePurposeDefault Value
`AdaptiveMesh`adaptive sampling`0`
`AffectViewingBox`influence of objects on the `ViewingBox` of a scene`TRUE`
`AntiAliased`antialiased lines and points?`TRUE`
`Color`the main color`RGB::Blue`
`Frames`the number of frames in an animation`50`
`Function`function expression or procedure
`Legend`makes a legend entry
`LegendText`short explanatory text for legend
`LegendEntry`add this object to the legend?`TRUE`
`LineColor`color of lines`RGB::Blue`
`LineWidth`width of lines`0.35`
`LineColor2`color of lines`RGB::DeepPink`
`LineStyle`solid, dashed or dotted lines?`Solid`
`LinesVisible`visibility of lines`TRUE`
`LineColorType`line coloring types`Flat`
`LineColorFunction`functional line coloring
`LineColorDirection`the direction of color transitions on lines[`0`, `1`]
`LineColorDirectionX`x-component of the direction of color transitions on lines`0`
`LineColorDirectionY`y-component of the direction of color transitions on lines`1`
`Mesh`number of sample points[`11`, `11`]
`Name`the name of a plot object (for browser and legend)
`ParameterEnd`end value of the animation parameter
`ParameterName`name of the animation parameter
`ParameterBegin`initial value of the animation parameter
`ParameterRange`range of the animation parameter
`PointSize`the size of points`1.5`
`PointsVisible`visibility of mesh points`FALSE`
`Submesh`density of submesh (additional sample points)[`0`, `0`]
`TimeEnd`end time of the animation`10.0`
`TimeBegin`start time of the animation`0.0`
`TimeRange`the real time span of an animation`0.0` .. `10.0`
`Title`object title
`TitleFont`font of object titles[`" sans-serif "`, `11`]
`TitlePosition`position of object titles
`TitleAlignment`horizontal alignment of titles w.r.t. their coordinates`Center`
`TitlePositionX`position of object titles, x component
`TitlePositionY`position of object titles, y component
`Visible`visibility`TRUE`
`VisibleAfter`object visible after this time value
`VisibleBefore`object visible until this time value
`VisibleFromTo`object visible during this time range
`VisibleAfterEnd`object visible after its animation time ended?`TRUE`
`VisibleBeforeBegin`object visible before its animation time starts?`TRUE`
`XMesh`number of sample points for parameter “x”`11`
`XSubmesh`density of additional sample points for parameter “x”`0`
`YMesh`number of sample points for parameter “y”`11`
`YSubmesh`density of additional sample points for parameter “y”`0`
`ZMax`final value of parameter “z”
`ZMin`initial value of parameter “z”
`ZName`name of parameter “z”
`ZRange`range of parameter “z”

## Examples

### 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 `z````besselJ(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]))``` ## Parameters

 `f` An expression in `z` and the animation parameter, if present. Expected to be conformal in `z`. `f` is equivalent to the attribute `Function`. `z` 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`. `a` Animation parameter, specified as `a```` = amin..amax```, where `amin` is the initial parameter value, and `amax` is the final parameter value.