Печать поверхности 3-D
fsurf( создает график поверхности символьного выражения f)f(x,y) за интервал по умолчанию [-5 5] для x и y.
fsurf( сюжеты f,[xmin xmax ymin ymax])f(x,y) за интервал [xmin xmax] для x и [ymin ymax] для y. fsurf функции использует symvar упорядочить переменные и назначить интервалы.
fsurf( отображает параметрическую поверхность funx,funy,funz)x = x(u,v), y = y(u,v), z = z(u,v) за интервал [-5 5] для u и v.
fsurf( отображает параметрическую поверхность funx,funy,funz,[uvmin uvmax])x = x(u,v), y = y(u,v), z = z(u,v) за интервал [uvmin uvmax] для u и v.
fsurf( отображает параметрическую поверхность funx,funy,funz,[umin umax vmin vmax])x = x(u,v), y = y(u,v), z = z(u,v) за интервал [umin umax] для u и [vmin vmax] для v. fsurf функции использует symvar упорядочить параметрические переменные и назначить интервалы.
fsurf(___, использование LineSpec)LineSpec для задания стиля линии, обозначения маркера и цвета грани. Используйте эту опцию после любой из предыдущих комбинаций входных аргументов.
fsurf(___, задание свойств линий с использованием одного или нескольких Name,Value)Name,Value аргументы пары. Используйте эту опцию после любой комбинации входных аргументов в предыдущих синтаксисах.
fsurf( строит графики в осях с объектом ax,___)ax вместо текущего объекта-оси gca.
возвращает объект поверхности функции или параметризованный объект поверхности функции в зависимости от типа поверхности. Объект используется для запроса и изменения свойств определенной поверхности. Дополнительные сведения см. в разделах Функции Свойства поверхности и Параметры Функции Свойства поверхности.fs = fsurf(___)
Постройте график входного (y) в по умолчанию
syms x y fsurf(sin(x)+cos(y))

Постройте график действительной части iy) в по умолчанию
syms f(x,y)
f(x,y) = real(atan(x + i*y));
fsurf(f)
Постройте график (y) < x и -5 < y < 5, указав интервал печати в качестве второго аргументаfsurf.
syms x y f = sin(x) + cos(y); fsurf(f, [-pi pi -5 5])

Печать параметризованной поверхности
где = 2 + sin (7s + 5t)
для < 2δ < t < δ.
Улучшение внешнего вида графика с помощью camlight.
syms s t r = 2 + sin(7*s + 5*t); x = r*cos(s)*sin(t); y = r*sin(s)*sin(t); z = r*cos(t); fsurf(x, y, z, [0 2*pi 0 pi]) camlight view(46,52)

Постройте график кусочного выражения бутылки Кляйна
(u) π <u <2π, где r (u) =4-2, потому что (u)
для < 2δ < v < 2δ.
Покажите, что бутылка Кляйна имеет только одностороннюю поверхность.
syms u v; r = @(u) 4 - 2*cos(u); x = piecewise(u <= pi, -4*cos(u)*(1+sin(u)) - r(u)*cos(u)*cos(v),... u > pi, -4*cos(u)*(1+sin(u)) + r(u)*cos(v)); y = r(u)*sin(v); z = piecewise(u <= pi, -14*sin(u) - r(u)*sin(u)*cos(v),... u > pi, -14*sin(u)); h = fsurf(x,y,z, [0 2*pi 0 2*pi]);

Для и от до постройте график 3-D поверхности (y). Добавьте заголовок и метки оси.
Создайте засечки оси X, охватывая пределы оси X с интервалами, равными pi/2. Преобразование пределов оси в точные кратные pi/2 с помощью round и получить символьные значения делений в S. Отображение этих засечек с помощью XTick собственность. Создание меток оси X с помощью arrayfun подавать texlabel кому S. Отображение этих меток с помощью XTickLabel собственность. Повторите эти шаги для оси Y.
Сведения об использовании LaTeX на графиках см. в разделе latex.
syms x y fsurf(y.*sin(x)-x.*cos(y), [-2*pi 2*pi]) title('ysin(x) - xcos(y) for x and y in [-2\pi,2\pi]') xlabel('x') ylabel('y') zlabel('z') 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. The axes with title ysin(x) - xcos(y) for x and y in [-2\pi,2\pi] contains an object of type functionsurface.](../examples/symbolic/win64/AddTitleAndAxisLabelsAndFormatTicksExample_01.png)
Постройте график параметрической поверхности (tscos ), z = t с различными стилями линий для различных значений -5 < t < -2 используйте пунктирную линию с зелеными . Для - 2 < t < 2 используйтеLineWidth из 1 и зеленый цвет лица. Для < 5 отключите линии установкой EdgeColor кому none.
syms s t fsurf(s*sin(t),-s*cos(t),t,[-5 5 -5 -2],'--.','MarkerEdgeColor','g') hold on fsurf(s*sin(t),-s*cos(t),t,[-5 5 -2 2],'LineWidth',1,'FaceColor','g') fsurf(s*sin(t),-s*cos(t),t,[-5 5 2 5],'EdgeColor','none')

Печать параметрической поверхности
|/10cos (5 | v |) z = u.
Укажите вывод для вывода fcontour вернуть объект печати.
syms u v x = exp(-abs(u)/10).*sin(5*abs(v)); y = exp(-abs(u)/10).*cos(5*abs(v)); z = u; fs = fsurf(x,y,z)

fs =
ParameterizedFunctionSurface with properties:
XFunction: [1x1 sym]
YFunction: [1x1 sym]
ZFunction: [1x1 sym]
EdgeColor: [0 0 0]
LineStyle: '-'
FaceColor: 'interp'
Show all properties
Изменение диапазона u кому [-30 30] с помощью URange имущество fs. Установите синий цвет линии с помощью кнопки EdgeColor и укажите белые точечные маркеры с помощью Marker и MarkerEdgeColor свойства.
fs.URange = [-30 30]; fs.EdgeColor = 'b'; fs.Marker = '.'; fs.MarkerEdgeColor = 'w';

Печать нескольких поверхностей с использованием векторного ввода в fsurf. В качестве альтернативы можно использовать hold on для последовательного построения графика на одной и той же фигуре. При отображении нескольких поверхностей на одной фигуре используется прозрачность. Скорректируйте прозрачность графиков поверхности с помощью команды FaceAlpha собственность. FaceAlpha варьируется от 0 кому 1, где 0 является полной прозрачностью и 1 отсутствует прозрачность.
Постройте график плоскостей y x-y с помощью векторного ввода вfsurf. Показать обе плоскости, сделав их наполовину прозрачными с помощью FaceAlpha.
syms x y h = fsurf([x+y x-y]); h(1).FaceAlpha = 0.5; h(2).FaceAlpha = 0.5; title('Planes (x+y) and (x-y) at half transparency')

Управление разрешением графика поверхности с помощью команды 'MeshDensity' вариант. Увеличение 'MeshDensity' позволяет сделать более плавные и точные графики, уменьшая при этом скорость печати.
Разделить фигуру на две с помощью subplot. В первом вложенном графике постройте график параметрической поверхности (scos (s) sin (1/s). Поверхность имеет большой зазор. Устраните эту проблему, увеличив'MeshDensity' кому 40 на втором вложенном графике. fsurf заполняет пробел, показывая, что, увеличивая 'MeshDensity' вы увеличили разрешение графика.
syms s t subplot(2,1,1) fsurf(sin(s), cos(s), t/10.*sin(1./s)) view(-172,25) title('Default MeshDensity = 35') subplot(2,1,2) fsurf(sin(s), cos(s), t/10.*sin(1./s),'MeshDensity',40) view(-172,25) title('Increased MeshDensity = 40')

Отображение горизонталей для графика поверхности выражения f путем установки 'ShowContours' опция для 'on'.
syms x y f = 3*(1-x)^2*exp(-(x^2)-(y+1)^2)... - 10*(x/5 - x^3 - y^5)*exp(-x^2-y^2)... - 1/3*exp(-(x+1)^2 - y^2); fsurf(f,[-3 3],'ShowContours','on')

Создание анимации путем изменения отображаемого выражения с помощью Function, XFunction, YFunction, и ZFunction свойства и затем с помощью drawnow для обновления графика. Сведения об экспорте в GIF см. в разделе imwrite.
Изменяя переменную i от 1 до 3, анимируйте параметрическую поверхность
= sin (is).
для -0,1 < u < 0,1 и 0 < v < 1. Увеличение скорости печати за счет уменьшения MeshDensity кому 9.
syms s t h = fsurf(t.*sin(s), cos(s), sin(1./s), [-0.1 0.1 0 1]); h.MeshDensity = 9; for i=1:0.05:3 h.ZFunction = sin(i./s); drawnow end

Создание символического выражения f для функции
1/3exp (- (x + 1) 2-y2).
Постройте график выражения f как поверхность. Улучшение внешнего вида графика поверхности с помощью свойств маркера перемещения, возвращаемого fsurf, свойства освещения и colormap.
Создание источника света с помощью camlight. Увеличение яркости с помощью brighten. Удалить линии по настройке EdgeColor кому 'none'. Увеличение внешнего освещения с помощью AmbientStrength. Дополнительные сведения см. в разделах Освещение, Прозрачность и Раскрашивание. Включите поле осей. Для заголовка преобразуйте f в LaTeX с использованием latex. Наконец, чтобы улучшить внешний вид засечек осей, меток осей и заголовка, задайте 'Interpreter' кому 'latex'.
syms x y f = 3*(1-x)^2*exp(-(x^2)-(y+1)^2)... - 10*(x/5 - x^3 - y^5)*exp(-x^2-y^2)... - 1/3*exp(-(x+1)^2 - y^2); h = fsurf(f,[-3 3]); camlight(110,70) brighten(0.6) h.EdgeColor = 'none'; h.AmbientStrength = 0.4; a = gca; a.TickLabelInterpreter = 'latex'; a.Box = 'on'; a.BoxStyle = 'full'; xlabel('$x$','Interpreter','latex') ylabel('$y$','Interpreter','latex') zlabel('$z$','Interpreter','latex') title_latex = ['$' latex(f) '$']; title(title_latex,'Interpreter','latex')

Постройте график цилиндрической оболочки, ограниченной ниже плоскостью x-y и выше плоскостью + 2.
syms r t u fsurf(cos(t),sin(t),u*(cos(t)+2),[0 2*pi 0 1]) hold on;
Добавьте график поверхности плоскости + 2.
fsurf(r*cos(t),r*sin(t),r*cos(t)+2,[0 1 0 2*pi])

Применение вращения и перемещения к графику поверхности тора.
Тор можно определить параметрически
грех φ
где
- полярный угол, а start- азимутальный угол
- радиус трубки;
- расстояние от центра трубы до центра тора;
Определите значения для и как 1 и 5 соответственно. Постройте график тора с помощью fsurf.
syms theta phi a = 1; R = 4; x = (R + a*cos(theta))*cos(phi); y = (R + a*cos(theta))*sin(phi); z = a*sin(theta); fsurf(x,y,z,[0 2*pi 0 2*pi]) hold on
Примените поворот к тору вокруг оси X. Определите матрицу поворота. Поверните тор на 90 градусов или радиана.
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;Сместите центр тора на 5 вдоль оси X. Добавьте второй график повернутого и перемещенного тора к существующему графу.
fsurf(r_90(1)+5,r_90(2),r_90(3))
axis([-5 10 -5 10 -5 5])
hold off
fsurf назначает символьные переменные в f в x ось, затем y ось, и symvar определяет порядок присваиваемых переменных. Поэтому имена переменных и осей могут не соответствовать друг другу. Вызвать fsurf чтобы назначить х или у соответствующей оси, создайте символическую функцию для печати, затем передайте символическую функцию в fsurf.
Например, следующие графики кода f (x, y) = sin (y) двумя способами. Первый путь заставляет волны колебаться относительно оси y. Второй способ присваивает оси x значение y, поскольку это первая (и единственная) переменная в символьной функции.
syms x y; f(x,y) = sin(y); figure; subplot(2,1,1) fsurf(f); subplot(2,1,2) fsurf(f(x,y)); % Or fsurf(sin(y));
