fimplicit

Постройте неявное символьное уравнение или функцию

Описание

пример

fimplicit(f) строит графики неявного символьного уравнения или функции f в течение интервала по умолчанию [-5 5] для x и y.

fimplicit(f,[min max]) графики f через интервал min <x <max и min <y <max.

пример

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

пример

fimplicit(___,LineSpec) использует LineSpec чтобы задать стиль линии, символ маркера и цвет линии.

пример

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

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

пример

fi = fimplicit(___) возвращает неявный объект линии функции. Используйте объект для запроса и изменения свойств определенной линии. Для получения дополнительной информации смотрите Свойства ImplicitFunctionLine.

Примеры

свернуть все

Постройте график гиперболы x2-y2=1 при помощи fimplicit. The fimplicit функция использует интервал по умолчанию [-5,5] для x и y.

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

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

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

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

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

Постройте половину круга x2+y2=3 при помощи интервалов -4<x<0 и -2<y<2. Задайте интервал графического изображения как второй аргумент fimplicit.

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

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

Можно построить несколько уравнений либо путем передачи входов в виде вектора, либо при помощи hold on последовательно построить график на одном и том же рисунке. Если вы задаете LineSpec и аргументы Name-Value, они применяются ко всем линиям. Чтобы задать опции для отдельных участков, используйте указатели на функцию, возвращенные fimplicit.

Разделите рисунок на два подграфика при помощи subplot. На первом подграфике постройте график x2+y2==1 и x2+y2==3 использование векторного входа. На втором подграфике постройте график тех же входов при помощи 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

Figure contains 2 axes. Axes 1 with title Multiple Equations Using Vector Input contains 2 objects of type implicitfunctionline. Axes 2 with title Multiple Equations Using hold on Command contains 2 objects of type implicitfunctionline.

Постройте график трех концентрических кругов увеличивающегося диаметра. Для первой строки используйте ширину линии 2. Для второго задайте стиль штриховой красной линии с маркерами кругов. Для третьего задайте голубой, штрих-точку стиль линии с маркерами звездочки. Отобразите легенду.

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

Figure contains an axes. The axes contains 3 objects of type implicitfunctionline.

График ysin(x)+xcos(y)=1. Задайте выход для создания fimplicit возвращает объект графика.

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

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

fi = 
  ImplicitFunctionLine with properties:

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

  Show all properties

Измените нанесенное на график уравнение на xcos(y)+ysin(x)=0 при помощи записи через точку для того, чтобы задать свойства. Точно так же измените цвет линии на красный, а стиль линии - на штрих-точку. Горизонтальные и вертикальные линии в выходе являются программными продуктами, которые должны быть проигнорированы.

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

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

График xcos(y)+ysin(x)=1 через интервал -2π<x<2π и -2π<y<2π. Добавьте заголовок и подписи по осям. Создайте такты на оси X путем охвата пределов оси X с интервалами pi/2. Отобразите эти такты при помощи XTick свойство. Создайте метки оси X при помощи arrayfun для применения texlabel на S. Отображение этих меток при помощи XTickLabel свойство. Повторите эти шаги для оси Y.

Чтобы использовать LaTeX на графиках, смотрите 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);

Figure contains an axes. The axes with title x cos(y) + y sin(x) for -2\pi < x < 2\pi and -2\pi < y < 2\pi contains an object of type implicitfunctionline.

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

Разделите рисунок на две части при помощи subplot. График xcos(y)+ysin(1/x)=0 как на первом, так и на втором подграфиках. Масштабирование второго подграфика при помощи zoom. Увеличенный подграф показывает деталь, которая не видна в первом подграфике.

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)

Figure contains 2 axes. Axes 1 contains an object of type implicitfunctionline. Axes 2 contains an object of type implicitfunctionline.

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

свернуть все

Неявное уравнение или функция для построения, заданные как символьное уравнение, выражение или функция. Если правая сторона не задана, то она принимается 0.

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

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

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

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

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

Стиль линииОписание
-Сплошная линия
--Штриховая линия
:Пунктирная линия
-.Штрих-точка линия
МаркерОписание
'o'Круг
'+'Плюс знак
'*'Звездочка
'.'Точка
'x'Крест
'_'Горизонтальная линия
'|'Вертикальная линия
's'Квадрат
'd'Алмаз
'^'Направленный вверх треугольник
'v'Нисходящий треугольник
'>'Треугольник , указывающий вправо
'<'Треугольник , указывающий влево
'p'Пентаграмма
'h'Hexagram
ЦветОписание

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

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

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

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

Перечисленные здесь свойства функциональной линии являются только подмножеством. Полный список см. в разделе Свойства ImplicitFunctionLine.

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

Цвет линии, заданный как триплет RGB, шестнадцатеричный код цвета, название цвета или краткое имя.

Для пользовательского цвета укажите триплет 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'

Вот триплеты 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'

Пример: 'blue'

Пример: [0 0 1]

Пример: '#0000FF'

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

Стиль линииОписаниеРезультирующая линия
'-'Сплошная линия

'--'Штриховая линия

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

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

'none'Нет линииНет линии

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

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

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

ЗначениеОписание
'o'Круг
'+'Плюс знак
'*'Звездочка
'.'Точка
'x'Крест
'_'Горизонтальная линия
'|'Вертикальная линия
'square' или 's'Квадрат
'diamond' или 'd'Алмаз
'^'Направленный вверх треугольник
'v'Нисходящий треугольник
'>'Треугольник , указывающий вправо
'<'Треугольник , указывающий влево
'pentagram' или 'p'Пятиконечная звезда (пентаграмма)
'hexagram' или 'h'Шестиконечная звезда (гексаграмма )
'none'Маркеров нет

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

Для пользовательского цвета укажите триплет 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'

Цвет заливки маркера, заданный как 'auto', триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое имя. The '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'

Пример: [0.3 0.2 0.1]

Пример: 'green'

Пример: '#D2F9A7'

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

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

свернуть все

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

Алгоритмы

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

Для примера следующий код строит графики корней неявной функции f (x, y) = sin (y) двумя способами. Первый способ заставляет волны колебаться относительно оси y. Второй способ присваивает y оси x, потому что это первая (и единственная) переменная в символьной функции.

syms x y;
f(x,y) = sin(y);
intvl = [-6 6]*pi;

figure;
subplot(2,1,1)
fimplicit(f,intvl);
subplot(2,1,2)
fimplicit(f(x,y),intvl); % Or fimplicit(sin(y) == 0,intvl);

Введенный в R2016b