This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

fimplicit

Plot implicit symbolic equation or function

Syntax

fimplicit(f)
fimplicit(f,[min max])
fimplicit(f,[xmin xmax ymin ymax])
fimplicit(___,LineSpec)
fimplicit(___,Name,Value)
fimplicit(ax,___)
fi = fimplicit(___)

Description

example

fimplicit(f) plots the implicit symbolic equation or function f over the default interval [-5 5] for x and y.

fimplicit(f,[min max]) plots f over the interval min < x < max and min < y < max.

example

fimplicit(f,[xmin xmax ymin ymax]) plots f over the interval xmin < x < xmax and ymin < y < ymax. fimplicit uses symvar to order the variables and assign intervals.

example

fimplicit(___,LineSpec) uses LineSpec to set the line style, marker symbol, and line color.

example

fimplicit(___,Name,Value) specifies line properties using one or more Name,Value pair arguments. Use this option with any of the input argument combinations in the previous syntaxes. Name,Value pair settings apply to all the lines plotted. To set options for individual lines, use the objects returned by fimplicit.

fimplicit(ax,___) plots into the axes specified by ax instead of the current axes gca.

example

fi = fimplicit(___) returns an implicit function line object. Use the object to query and modify properties of a specific line. For details, see ImplicitFunctionLine Properties.

Examples

collapse all

Plot the hyperbola by using fimplicit. The fimplicit function uses the default interval of for and .

syms x y
fimplicit(x^2 - y^2 == 1)

Plot the hyperbola described by the function by first declaring the symbolic function f(x,y) using syms. The fimplicit function uses the default interval of for and .

syms f(x,y)
f(x,y) = x^2 - y^2 - 1;
fimplicit(f)

Plot half of the circle by using the intervals and . Specify the plotting interval as the second argument of fimplicit.

syms x y
circle = x^2 + y^2 == 3;
fimplicit(circle, [-4 0 -2 2])

You can plot multiple equations either by passing the inputs as a vector or by using hold on to successively plot on the same figure. If you specify LineSpec and Name-Value arguments, they apply to all lines. To set options for individual plots, use the function handles returned by fimplicit.

Divide a figure into two subplots by using subplot. On the first subplot, plot and using vector input. On the second subplot, plot the same inputs by using hold on.

syms x y
circle1 = x^2 + y^2 == 1;
circle2 = x^2 + y^2 == 3;

subplot(2,1,1)
fimplicit([circle1 circle2])
title('Multiple Equations Using Vector Input')

subplot(2,1,2)
fimplicit(circle1)
hold on
fimplicit(circle2)
title('Multiple Equations Using hold on Command')

hold off

Plot three concentric circles of increasing diameter. For the first line, use a linewidth of 2. For the second, specify a dashed red line style with circle markers. For the third, specify a cyan, dash-dot line style with asterisk markers. Display the legend.

syms x y
circle = x^2 + y^2;
fimplicit(circle == 1, 'Linewidth', 2)
hold on
fimplicit(circle == 2, '--or')
fimplicit(circle == 3, '-.*c')
legend('show','Location','best')
hold off

Plot . Specify an output to make fimplicit return the plot object.

syms x y
eqn = y*sin(x) + x*cos(y) == 1;
fi = fimplicit(eqn)

fi = 
  ImplicitFunctionLine with properties:

     Function: [1x1 sym]
        Color: [0 0.4470 0.7410]
    LineStyle: '-'
    LineWidth: 0.5000

  Show all properties

Change the plotted equation to by using dot notation to set properties. Similarly, change the line color to red and line style to a dash-dot line. The horizontal and vertical lines in the output are artifacts that should be ignored.

fi.Function = x/cos(y) + y/sin(x) == 0;
fi.Color = 'r';
fi.LineStyle = '-.';

Plot over the interval and . Add a title and axis labels. Create the x-axis ticks by spanning the x-axis limits at intervals of pi/2. Display these ticks by using the XTick property. Create x-axis labels by using arrayfun to apply texlabel to S. Display these labels by using the XTickLabel property. Repeat these steps for the y-axis.

To use LaTeX in plots, see latex.

syms x y
eqn = x*cos(y) + y*sin(x) == 1;
fimplicit(eqn, [-2*pi 2*pi])
grid on
title('x cos(y) + y sin(x) for -2\pi < x < 2\pi and -2\pi < y < 2\pi')
xlabel('x')
ylabel('y')
ax = gca;

S = sym(ax.XLim(1):pi/2:ax.XLim(2));
ax.XTick = double(S);
ax.XTickLabel = arrayfun(@texlabel, S, 'UniformOutput', false);

S = sym(ax.YLim(1):pi/2:ax.YLim(2));
ax.YTick = double(S);
ax.YTickLabel = arrayfun(@texlabel, S, 'UniformOutput', false);

When you zoom into a plot, fimplicit re-evaluates the plot automatically. This re-evaluation on zoom can reveal hidden detail at smaller scales.

Divide a figure into two by using subplot. Plot in both the first and second subplots. Zoom into the second subplot by using zoom. The zoomed subplot shows detail that is not visible in the first subplot.

syms x y
eqn = x*cos(y) + y*sin(1/x) == 0;

subplot(2,1,1)
fimplicit(eqn)

subplot(2,1,2)
fimplicit(eqn)
zoom(2)

Input Arguments

collapse all

Implicit equation or function to plot, specified as a symbolic equation, expression, or function. If the right-hand side is not specified, then it is assumed to be 0.

Plotting range for x and y, specified as a vector of two numbers. The default range is [-5 5].

Plotting range for x and y, specified as a vector of four numbers. The default range is [-5 5 -5 5].

Axes object. If you do not specify an axes object, then fimplicit uses the current axes gca.

Line specification, specified as a character vector or string with a line style, marker, and color. The elements can appear in any order, and you can omit one or more options. To show only markers with no connecting lines, specify a marker and omit the line style.

Example: 'r--o' specifies a red color, a dashed line, and circle markers

Line Style SpecifierDescription
-Solid line (default)
--Dashed line
:Dotted line
-.Dash-dot line
Marker SpecifierDescription
oCircle
+Plus sign
*Asterisk
.Point
xCross
sSquare
dDiamond
^Upward-pointing triangle
vDownward-pointing triangle
>Right-pointing triangle
<Left-pointing triangle
pPentagram
hHexagram
Color SpecifierDescription

y

yellow

m

magenta

c

cyan

r

red

g

green

b

blue

w

white

k

black

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: 'Marker','o','MarkerFaceColor','red'

The function line properties listed here are only a subset. For a complete list, see ImplicitFunctionLine Properties.

Number of evaluation points per direction, specified as a number. The default is 151.

Line color, specified as an RGB triplet or one of the color options listed in the table.

For a custom color, specify an RGB triplet. An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1]; for example, [0.4 0.6 0.7]. Alternatively, you can specify some common colors by name. This table lists the long and short color name options and the equivalent RGB triplet values.

OptionDescriptionEquivalent RGB Triplet
'red' or 'r'Red[1 0 0]
'green' or 'g'Green[0 1 0]
'blue' or 'b'Blue[0 0 1]
'yellow' or 'y'Yellow[1 1 0]
'magenta' or 'm'Magenta[1 0 1]
'cyan' or 'c'Cyan[0 1 1]
'white' or 'w'White[1 1 1]
'black' or 'k'Black[0 0 0]

Example: 'blue'

Example: [0 0 1]

Line style, specified as one of the options listed in this table.

Line StyleDescriptionResulting Line
'-'Solid line

'--'Dashed line

':'Dotted line

'-.'Dash-dotted line

'none'No lineNo line

Line width, specified as a positive value in points. If the line has markers, then the line width also affects the marker edges.

Example: 0.75

Marker symbol, specified as one of the values in this table. By default, a line does not have markers. Add markers at selected points along the line by specifying a marker.

ValueDescription
'o'Circle
'+'Plus sign
'*'Asterisk
'.'Point
'x'Cross
'square' or 's'Square
'diamond' or 'd'Diamond
'^'Upward-pointing triangle
'v'Downward-pointing triangle
'>'Right-pointing triangle
'<'Left-pointing triangle
'pentagram' or 'p'Five-pointed star (pentagram)
'hexagram' or 'h'Six-pointed star (hexagram)
'none'No markers

Marker outline color, specified as 'auto', an RGB triplet, or one of the color options listed in the table. The default value of 'auto' uses the same color as the Color property.

For a custom color, specify an RGB triplet. An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1]; for example, [0.4 0.6 0.7]. Alternatively, you can specify some common colors by name. This table lists the long and short color name options and the equivalent RGB triplet values.

OptionDescriptionEquivalent RGB Triplet
'red' or 'r'Red[1 0 0]
'green' or 'g'Green[0 1 0]
'blue' or 'b'Blue[0 0 1]
'yellow' or 'y'Yellow[1 1 0]
'magenta' or 'm'Magenta[1 0 1]
'cyan' or 'c'Cyan[0 1 1]
'white' or 'w'White[1 1 1]
'black' or 'k'Black[0 0 0]
'none'No colorNot applicable

Example: [0.5 0.5 0.5]

Example: 'blue'

Marker fill color, specified as 'auto', an RGB triplet, or one of the color options listed in the table. The 'auto' value uses the same color as the MarkerEdgeColor property.

For a custom color, specify an RGB triplet. An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1]; for example, [0.4 0.6 0.7]. Alternatively, you can specify some common colors by name. This table lists the long and short color name options and the equivalent RGB triplet values.

OptionDescriptionEquivalent RGB Triplet
'red' or 'r'Red[1 0 0]
'green' or 'g'Green[0 1 0]
'blue' or 'b'Blue[0 0 1]
'yellow' or 'y'Yellow[1 1 0]
'magenta' or 'm'Magenta[1 0 1]
'cyan' or 'c'Cyan[0 1 1]
'white' or 'w'White[1 1 1]
'black' or 'k'Black[0 0 0]
'none'No colorNot applicable

Example: [0.3 0.2 0.1]

Example: 'green'

Marker size, specified as a positive value in points.

Example: 10

Output Arguments

collapse all

One or more implicit function line objects, returned as a scalar or a vector. You can use these objects to query and modify properties of a specific line. For a list of properties, see ImplicitFunctionLine Properties.

Introduced in R2016b