exponenta event banner

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(___) возвращает неявный объект строки функции. Объект используется для запроса и изменения свойств определенной строки. Дополнительные сведения см. в разделе Свойства ImplicitFuncterLine.

Примеры

свернуть все

Постройте график гиперболы x2-y2 = 1 с помощью fimplicit. 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. 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 на интервале -2pi < x < 2pi и -2pi < y < 2pi. Добавьте заголовок и метки оси. Создайте засечки оси 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].

Объект Axes. Если объект axes не указан, то 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'

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

Количество точек оценки на направление, указанное как число. Значение по умолчанию: 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, шестнадцатеричный цветовой код, имя цвета или короткое имя. '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 дюйма.

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

свернуть все

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

Алгоритмы

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

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

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