fimplicit3

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

Синтаксис

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

Описание

пример

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

пример

fimplicit3(f,[min max]) графики f(x,y,z) на интервале [min max] для x, y и 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)

Постройте гиперболоид, заданный функцией 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)

Задайте интервал графического вывода путем определения второго аргумента к 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)

Постройте неявное уравнение xsin(y)+zпотому что(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);

Постройте неявную поверхность 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')

Постройте неявную поверхность 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)

fi = 
  ImplicitFunctionSurface with properties:

     Function: [1x1 sym]
    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;

Управляйте разрешением неявной объемной поверхностной диаграммы при помощи опции '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')

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

свернуть все

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

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

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

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

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

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

СпецификаторСтиль линии
-Сплошная линия (значение по умолчанию)
--Пунктирная линия
:Пунктирная линия
-.Штрихпунктирная линия
СпецификаторМаркер
oКруг
+Знак «плюс»
*Звездочка
.Точка
xКрест
sКвадрат
dРомб
^Треугольник, направленный вверх
vНисходящий треугольник
>Треугольник, указывающий вправо
<Треугольник, указывающий влево
pПентаграмма
hГексаграмма
СпецификаторЦвет

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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'

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

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

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

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

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

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

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

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

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

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

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

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

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

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

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

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

'none'Никакая строкаНикакая строка

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

Символ маркера, заданный как одно из значений в этой таблице. По умолчанию строка не имеет маркеров. Добавьте маркеры в выбранных точках вдоль строки путем определения маркера.

ЗначениеОписание
'o'Круг
'+'Знак «плюс»
'*'Звездочка
'.'Точка
'x'Крест
square' или 's'Квадрат
'diamond' или 'd'Ромб
'^'Треугольник, направленный вверх
'v'Нисходящий треугольник
'>'Треугольник, указывающий вправо
'<'Треугольник, указывающий влево
pentagram' или 'p'Пятиконечная звезда (пентаграмма)
'hexagram' or 'h'Шестиконечная звезда (гексаграмма)
'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'

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

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

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

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

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

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

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

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

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

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

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: [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'

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

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

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

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

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

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

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

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

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

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

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

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