fimplicit3

Постройте 3-D неявное уравнение или функцию

Описание

пример

fimplicit3(f) строит 3-D неявное уравнение или функциональный f(x,y,z) на интервале по умолчанию [-5 5] для xY, и z.

пример

fimplicit3(f,[min max]) графики f(x,y,z) на интервале [min max] для xY, и z.

пример

fimplicit3(f,[xmin xmax ymin ymax zmin zmax]) графики f(x,y,z) на интервале [xmin xmax] для x, [ymin ymax] для y, и [zmin zmax] для z. fimplicit3 функциональное использование symvar заказать интервалы присвоения и переменные.

пример

fimplicit3(___,LineSpec) использование LineSpec установить стиль линии, символ маркера и цвет поверхности.

пример

fimplicit3(___,Name,Value) задает свойства линии с помощью одного или нескольких Name,Value парные аргументы. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах.

fimplicit3(ax,___) графики в осях с объектом ax вместо объекта текущей системы координат gca.

пример

fi = fimplicit3(___) возвращает объект подложки неявной функции. Используйте объект запросить и изменить свойства определенной поверхности. Для получения дополнительной информации смотрите ImplicitFunctionSurface Properties.

Примеры

свернуть все

Постройте гиперболоид x2+y2-z2=0 при помощи fimplicit3. fimplicit3 графики функций на интервале по умолчанию [-5,5] для x, y, и z.

syms x y z
fimplicit3(x^2 + y^2 - z^2)

Figure contains an axes object. The axes object contains an object of type implicitfunctionsurface.

Постройте гиперболоид, заданный функцией f(x,y,z)=x2+y2-z2. fimplicit3 графики функций на интервале по умолчанию [-5,5] для x, y, и z.

syms f(x,y,z)
f(x,y,z) = x^2 + y^2 - z^2;
fimplicit3(f)

Figure contains an axes object. The axes object contains an object of type implicitfunctionsurface.

Задайте интервал графического вывода путем определения второго аргумента к fimplicit3. Постройте верхнюю половину гиперболоида x2+y2-z2=0 путем определения интервала 0<z<5для x и y, используйте интервал по умолчанию [-5,5].

syms x y z
f = x^2 + y^2 - z^2;
interval = [-5 5 -5 5 0 5];
fimplicit3(f, interval)

Figure contains an axes object. The axes object contains an object of type implicitfunctionsurface.

Постройте неявное уравнение xsin(y)+zcos(x)=0 на интервале (-2π,2π) для всех осей.

Создайте метки деления оси X путем охвата пределов оси X с промежутками в pi/2. Преобразуйте пределы по осям точным множителям pi/2 при помощи round и получите символьные значения деления в S. Отобразите эти метки деления при помощи XTick свойство. Создайте метки оси X при помощи arrayfun применять texlabel к S. Отобразите эти метки при помощи XTickLabel свойство. Повторите эти шаги для оси Y.

Чтобы использовать LaTeX в графиках, смотрите latex.

syms x y z
eqn = x*sin(y) + z*cos(x);
fimplicit3(eqn,[-2*pi 2*pi])
title('xsin(y) + zcos(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));
S = sym(round(vpa(S/pi*2))*pi/2);
ax.XTick = double(S);
ax.XTickLabel = arrayfun(@texlabel,S,'UniformOutput',false);

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

Figure contains an axes object. The axes object with title x s i n ( y ) blank + blank z c o s ( x ) blank f o r blank - 2 pi blank &lt; blank x blank &lt; blank 2 pi blank a n d blank - 2 pi blank &lt; blank y blank &lt; blank 2 pi contains an object of type implicitfunctionsurface.

Постройте неявную поверхность x2+y2-z2=0 с различными стилями линии для различных значений zдля -5<z<-2, используйте пунктирную линию с зелеными точечными маркерами. Для -2<z<2, используйте LineWidth из 1 и зеленый цвет поверхности. Для 2<z<5, выключите линии установкой EdgeColor к none.

syms x y z
f = x^2 + y^2 - z^2; 
fimplicit3(f,[-5 5 -5 5 -5 -2],'--.','MarkerEdgeColor','g')
hold on
fimplicit3(f,[-5 5 -5 5 -2 2],'LineWidth',1,'FaceColor','g')
fimplicit3(f,[-5 5 -5 5 2 5],'EdgeColor','none')

Figure contains an axes object. The axes object contains 3 objects of type implicitfunctionsurface.

Постройте неявную поверхность 1/x2-1/y2+1/z2=0. Задайте выход, чтобы сделать fimplicit3 возвратите объект графика.

syms x y z
f = 1/x^2 - 1/y^2 + 1/z^2;
fi = fimplicit3(f)

Figure contains an axes object. The axes object contains an object of type implicitfunctionsurface.

fi = 
  ImplicitFunctionSurface with properties:

     Function: 1/x^2 - 1/y^2 + 1/z^2
    EdgeColor: [0 0 0]
    LineStyle: '-'
    FaceColor: 'interp'

  Show all properties

Покажите только положительную ось X путем установки XRange свойство fi к [0 5]. Удалите линии путем установки EdgeColor свойство к 'none'. Визуализируйте невидимые поверхности путем создания графика прозрачным путем установки FaceAlpha свойство к 0.8.

fi.XRange = [0 5];
fi.EdgeColor = 'none';
fi.FaceAlpha = 0.8;

Figure contains an axes object. The axes object contains an object of type implicitfunctionsurface.

Управляйте разрешением неявной объемной поверхностной диаграммы при помощи 'MeshDensity' опция. Увеличение 'MeshDensity' может сделать более сглаженные, более точные графики при уменьшении 'MeshDensity' может увеличить скорость графического вывода.

Разделите фигуру на два при помощи subplot. В первом подграфике постройте неявную поверхность sin(1/(xyz)). Поверхность имеет большие разрывы. Устраните эту проблему путем увеличения 'MeshDensity' к 40 во втором подграфике. fimplicit3 заполняет разрывы, показывающие это путем увеличения 'MeshDensity' вы увеличили разрешение графика.

syms x y z
f = sin(1/(x*y*z));

subplot(2,1,1)
fimplicit3(f)
title('Default MeshDensity = 35')

subplot(2,1,2)
fimplicit3(f,'MeshDensity',40)
title('Increased MeshDensity = 40')

Figure contains 2 axes objects. Axes object 1 with title Default MeshDensity = 35 contains an object of type implicitfunctionsurface. Axes object 2 with title Increased MeshDensity = 40 contains an object of type implicitfunctionsurface.

Примените вращение и перевод в неявную объемную поверхностную диаграмму торуса.

Торус может быть задан неявным уравнением в Декартовых координатах как

f(x,y,z)=(x2+y2+z2+R2-a2)2-4R2(x2+y2)

где

  • a радиус трубы

  • R расстояние от центра трубы к центру торуса

Задайте значения для a и R как 1 и 5, соответственно. Постройте торус с помощью fimplicit3.

syms x y z
a = 1;
R = 4;
f(x,y,z) = (x^2+y^2+z^2+R^2-a^2)^2 - 4*R^2*(x^2+y^2);
fimplicit3(f)
hold on

Примените вращение к торусу вокруг xось. Задайте матрицу вращения. Вращайте торус 90 градусами или π/2 радианы. Переключите центр торуса 5 вперед xось.

alpha = pi/2;
Rx = [1 0 0;
      0 cos(alpha) sin(alpha);
      0 -sin(alpha) cos(alpha)];
r = [x; y; z];
r_90 = Rx*r;
g = subs(f,[x,y,z],[r_90(1)-5,r_90(2),r_90(3)]);

Добавьте второй график вращаемого и переведенного торуса к существующему графику.

fimplicit3(g)
axis([-5 10 -5 10 -5 5])
hold off

Figure contains an axes object. The axes object contains 2 objects of type implicitfunctionsurface.

Входные параметры

свернуть все

3-D неявное уравнение или функция, чтобы построить в виде символьного уравнения, выражения или функции. Если выражение или функция заданы, то fimplicit3 принимает правый размер, чтобы быть 0.

Строя интервал для x-, y-и z-осей в виде вектора из двух чисел. Значением по умолчанию является [-5 5].

Строя интервал для x-, y-и z-осей в виде вектора из шести чисел. Значением по умолчанию является [-5 5 -5 5 -5 5].

Объект осей. Если вы не задаете объект осей, то fimplicit3 использует текущую систему координат.

Стиль линии, цвет и маркер задается как символ или строка символов. Символы могут появиться в любом порядке. Вы не должны задавать все три характеристики (стиль линии, маркер и цвет). Например, если вы не используете стиль линии и задаете маркер, затем график показывает только маркер и никакую линию.

Пример: '--or' красная пунктирная линия с круговыми маркерами

Стиль линииОписаниеПолучившаяся линия
'-'Сплошная линия

Sample of solid line

'--'Пунктирная линия

Sample of dashed line

':'Пунктирная линия

Sample of dotted line

'-.'Штрих-пунктирная линия

Sample of dash-dotted line, with alternating dashes and dots

МаркерОписаниеПолучившийся маркер
'o'Круг

Sample of circle marker

'+'Знак «плюс»

Sample of plus sign marker

'*'Звездочка

Sample of asterisk marker

'.'Точка

Sample of point marker

'x'Крест

Sample of cross marker

'_'Горизонтальная линия

Sample of horizontal line marker

'|'Вертикальная линия

Sample of vertical line marker

's'Квадрат

Sample of square marker

'd'Ромб

Sample of diamond line marker

'^'Треугольник, направленный вверх

Sample of upward-pointing triangle marker

'v'Нисходящий треугольник

Sample of downward-pointing triangle marker

'>'Треугольник, указывающий вправо

Sample of right-pointing triangle marker

'<'Треугольник, указывающий влево

Sample of left-pointing triangle marker

'p'Пентаграмма

Sample of pentagram marker

'h'Гексаграмма

Sample of hexagram marker

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

Sample of the color red

'green''g'[0 1 0]

Sample of the color green

'blue''b'[0 0 1]

Sample of the color blue

'cyan' 'c'[0 1 1]

Sample of the color cyan

'magenta''m'[1 0 1]

Sample of the color magenta

'yellow''y'[1 1 0]

Sample of the color yellow

'black''k'[0 0 0]

Sample of the color black

'white''w'[1 1 1]

Sample of the color white

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Marker','o','MarkerFaceColor','red'

Перечисленные здесь свойства являются только подмножеством. Для полного списка смотрите ImplicitFunctionSurface Properties.

Количество оценки указывает на направление в виде номера. Значением по умолчанию является 35.

Пример: 100

Цвет линии в виде 'interp', триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое название. Значение триплета RGB по умолчанию [0 0 0] соответствует черный. 'interp' значение окрашивает ребра на основе ZData значения.

Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный цветовой код является вектором символов или строковым скаляром, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

Sample of the color red

'green''g'[0 1 0]'#00FF00'

Sample of the color green

'blue''b'[0 0 1]'#0000FF'

Sample of the color blue

'cyan' 'c'[0 1 1]'#00FFFF'

Sample of the color cyan

'magenta''m'[1 0 1]'#FF00FF'

Sample of the color magenta

'yellow''y'[1 1 0]'#FFFF00'

Sample of the color yellow

'black''k'[0 0 0]'#000000'

Sample of the color black

'white''w'[1 1 1]'#FFFFFF'

Sample of the color white

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB® использование во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]'#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]'#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]'#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]'#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]'#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]'#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

Стиль линии в виде одной из опций перечислен в этой таблице.

Стиль линииОписаниеПолучившаяся линия
'-'Сплошная линия

Sample of solid line

'--'Пунктирная линия

Sample of dashed line

':'Пунктирная линия

Sample of dotted line

'-.'Штрих-пунктирная линия

Sample of dash-dotted line, with alternating dashes and dots

'none'Никакая линияНикакая линия

Ширина линии в виде положительного значения в точках, где 1 точка = 1/72 дюйма. Если у линии есть маркеры, ширина линии также влияет на края маркера.

Ширина линии не может быть более тонкой, чем ширина пикселя. Если вы устанавливаете ширину линии на значение, которое меньше ширины пикселя в вашей системе, отображения линии как один пиксель шириной.

Символ маркера в виде одного из значений перечислен в этой таблице. По умолчанию объект не отображает маркеры. Определение символа маркера добавляет маркеры в каждой точке данных или вершине.

МаркерОписаниеПолучившийся маркер
'o'Круг

Sample of circle marker

'+'Знак «плюс»

Sample of plus sign marker

'*'Звездочка

Sample of asterisk marker

'.'Точка

Sample of point marker

'x'Крест

Sample of cross marker

'_'Горизонтальная линия

Sample of horizontal line marker

'|'Вертикальная линия

Sample of vertical line marker

's'Квадрат

Sample of square marker

'd'Ромб

Sample of diamond line marker

'^'Треугольник, направленный вверх

Sample of upward-pointing triangle marker

'v'Нисходящий треугольник

Sample of downward-pointing triangle marker

'>'Треугольник, указывающий вправо

Sample of right-pointing triangle marker

'<'Треугольник, указывающий влево

Sample of left-pointing triangle marker

'p'Пентаграмма

Sample of pentagram marker

'h'Гексаграмма

Sample of hexagram marker

'none'Никакие маркерыНе применяется

Цвет контура маркера в виде 'auto', триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое название. Значение по умолчанию 'auto' использует тот же цвет в качестве EdgeColor свойство.

Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный цветовой код является вектором символов или строковым скаляром, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

Sample of the color red

'green''g'[0 1 0]'#00FF00'

Sample of the color green

'blue''b'[0 0 1]'#0000FF'

Sample of the color blue

'cyan' 'c'[0 1 1]'#00FFFF'

Sample of the color cyan

'magenta''m'[1 0 1]'#FF00FF'

Sample of the color magenta

'yellow''y'[1 1 0]'#FFFF00'

Sample of the color yellow

'black''k'[0 0 0]'#000000'

Sample of the color black

'white''w'[1 1 1]'#FFFFFF'

Sample of the color white

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]'#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]'#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]'#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]'#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]'#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]'#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

Пример: [0.5 0.5 0.5]

Пример: 'blue'

Пример: '#D2F9A7'

Цвет заливки маркера в виде 'auto', триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое название. 'auto' значение использует тот же цвет в качестве MarkerEdgeColor свойство.

Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный цветовой код является вектором символов или строковым скаляром, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

Sample of the color red

'green''g'[0 1 0]'#00FF00'

Sample of the color green

'blue''b'[0 0 1]'#0000FF'

Sample of the color blue

'cyan' 'c'[0 1 1]'#00FFFF'

Sample of the color cyan

'magenta''m'[1 0 1]'#FF00FF'

Sample of the color magenta

'yellow''y'[1 1 0]'#FFFF00'

Sample of the color yellow

'black''k'[0 0 0]'#000000'

Sample of the color black

'white''w'[1 1 1]'#FFFFFF'

Sample of the color white

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]'#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]'#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]'#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]'#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]'#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]'#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

Example: [0.3 0.2 0.1]

Пример: 'green'

Пример: '#D2F9A7'

Размер маркера в виде положительного значения в точках, где 1 точка = 1/72 дюйма.

Выходные аргументы

свернуть все

Один или несколько объектов, возвращенных как скаляр или вектор. Объект является объектом подложки неявной функции. Можно использовать эти объекты запросить и изменить свойства определенной линии. Для получения дополнительной информации смотрите ImplicitFunctionSurface Properties.

Алгоритмы

fimplicit3 присваивает символьные переменные в f к x ось, y ось, затем z ось, и symvar определяет порядок переменных, которые будут присвоены. Поэтому переменная и имена оси не могут соответствовать. Обеспечивать fimplicit3 чтобы присвоить x, y или z к его соответствующей оси, создает символьную функцию, чтобы построить, затем передать символьную функцию fimplicit3.

Например, следующий код строит корни неявной функции f (x, y, z) = x + z двумя способами. Первым путем силы fimplicit3 присваивать x и z к их соответствующим осям. Вторым способом, fimplicit3 подчиняется symvar определить присвоение оси и переменный порядок: fimplicit3 присвоения x и z к x и осям y, соответственно.

syms x y z;
f(x,y,z) = x + z;

figure;
subplot(2,1,1)
fimplicit3(f);
view(-38,71);
subplot(2,1,2)
fimplicit3(f(x,y,z)); % Or fimplicit3(x + z);

Смотрите также

Функции

Свойства

Введенный в R2017b