exponenta event banner

Аналитическая печать с помощью инструментария символьной математики

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

В этих примерах представлены следующие графические функции, которые принимают символьные функции, выражения и уравнения в качестве входных данных:

  • fplot

  • fimplicit

  • fcontour

  • fplot3

  • fsurf

  • fmesh

  • fimplicit3

Печать явных функций y = f (x) с использованиемfplot

Постройте график функции sin (exp (x)).

syms x
fplot(sin(exp(x)))

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

Постройте график тригонометрических функций sin (x), cos (x) и tan (x) одновременно.

fplot([sin(x),cos(x),tan(x)])

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

Постройте график функции, определяемой y = f (x, a) для различных значений

Постройте график функции sin (exp (x/a)) для a = 1,2 и 4.

syms x a
expr = sin(exp(x/a));
fplot(subs(expr,a,[1,2,4]))
legend show

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

Постройте график производной и интеграла функции

Постройте график функции f (x) = x (1 + x) + 2, ее производной df (x )/dx и ее интегральной ∫f (x) dx.

syms f(x)
f(x) = x*(1 + x) + 2
f(x) = xx+1+2x*(x + 1) + 2
f_diff = diff(f(x),x)
f_diff = 2x+12*x + 1
f_int = int(f(x),x)
f_int = 

x2x2+3x+126(x*(2*x^2 + 3*x + 12))/6

fplot([f,f_diff,f_int])
legend({'$f(x)$','$df(x)/dx$','$\int f(x)dx$'},'Interpreter','latex','FontSize',12)

Figure contains an axes. The axes contains 3 objects of type functionline. These objects represent $f(x)$, $df(x)/dx$, $\int f(x)dx$.

Постройте график функции y = g (x0, a) с горизонтальной

осью

Найдите x0, который минимизирует функцию g (x, a) путем решения дифференциального уравнения dg (x, a )/dx = 0.

syms g(x,a);
assume(a>0);
g(x,a) = a*x*(a + x) + 2*sqrt(a)
g(x, a) = 2a+axa+x2*sqrt(a) + a*x*(a + x)
x0 = solve(diff(g,x),x)
x0 = 

-a2-a/2

Постройте график минимального значения g (x0, a) для значения от 0 до 5.

fplot(g(x0,a),[0 5])
xlabel('a')
title('Minimum Value of $g(x_0,a)$ Depending on $a$','interpreter','latex')

Figure contains an axes. The axes with title Minimum Value of $g(x_0,a)$ Depending on $a$ contains an object of type functionline.

Постройте график неявной функции f (x, y) = c с помощьюfimplicit

Круги графика, определяемые x2 + y2 = r2 с радиусом r в виде целых чисел от 1 до 10.

syms x y
r = 1:10;
fimplicit(x^2 + y^2 == r.^2,[-10 10])
axis square;

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

Печать контуров функции f (x, y) с использованиемfcontour

Постройте график контуров функции f (x, y) = x3-4x-y2 для уровней контуров от -6 до 6.

syms x y f(x,y)
f(x,y) = x^3 - 4*x - y^2;
fcontour(f,[-3 3 -4 4],'LevelList',-6:6);
colorbar
title 'Contour of Some Elliptic Curves'

Figure contains an axes. The axes with title Contour of Some Elliptic Curves contains an object of type functioncontour.

Постройте график аналитической функции и ее аппроксимации с помощью сплайн-интерполятора

Постройте график аналитической функции f (x) = xexp (-x) sin (5x) -2.

syms f(x)
f(x) = x*exp(-x)*sin(5*x) -2;
fplot(f,[0,3])

Создайте несколько точек данных из аналитической функции.

xs = 0:1/3:3;
ys = double(subs(f,xs));

Постройте график точек данных и сплайнового интерполятора, который аппроксимирует аналитическую функцию.

hold on
plot(xs,ys,'*k','DisplayName','Data Points')
fplot(@(x) spline(xs,ys,x),[0 3],'DisplayName','Spline interpolant')
grid on
legend show
hold off

Figure contains an axes. The axes contains 3 objects of type functionline, line. These objects represent Data Points, Spline interpolant.

График аппроксимаций Тейлора функции

Найдите расширение Тейлора cos (x) около x = 0 до 5-го и 7-го порядков.

syms x
t5 = taylor(cos(x),x,'Order',5)
t5 = 

x424-x22+1x^4/24 - x^2/2 + 1

t7 = taylor(cos(x),x,'Order',7)
t7 = 

-x6720+x424-x22+1- x^6/720 + x^4/24 - x^2/2 + 1

Постройте график cos (x) и его аппроксимации Тейлора.

fplot(cos(x))
hold on;
fplot([t5 t7],'--')
axis([-4 4 -1.5 1.5])
title('Taylor Series Approximations of cos(x) up to 5th and 7th Order')
legend show
hold off;

Figure contains an axes. The axes with title Taylor Series Approximations of cos(x) up to 5th and 7th Order contains 3 objects of type functionline.

Постройте график аппроксимации серии Фурье квадратной волны

Квадратная волна периода и амплитуды δ/4 может быть аппроксимирована расширением ряда Фурье

sin (t) + 13sin (3t) + 15sin (5t) +....

Постройте график прямоугольной волны с периодом и амплитудой λ/4.

syms t y(t)
y(t) = piecewise(0 < mod(t,2*pi) <= pi, pi/4, pi < mod(t,2*pi) <= 2*pi, -pi/4);
fplot(y)

Постройте график аппроксимации ряда Фурье квадратной волны.

hold on;
n = 6;
yFourier = cumsum(sin((1:2:2*n-1)*t)./(1:2:2*n-1));
fplot(yFourier,'LineWidth',1)
hold off

Figure contains an axes. The axes contains 7 objects of type functionline.

Аппроксимация серии Фурье переполняется при скачкообразном разрыве и «звон» не вымирает по мере добавления к аппроксимации большего количества терминов. Такое поведение также известно как феномен Гиббса.

Печать параметрической кривой (x (t), y (t), z (t)) с использованиемfplot3

Постройте график спирали, которая определяется (sin (t), cos (t), t/4) для t от -10 до 10.

syms t
fplot3(sin(t),cos(t),t/4,[-10 10],'LineWidth',2)
view([-45 45])

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

Печать поверхности, определяемой z = f (x, y) с помощьюfsurf

Постройте график поверхности, определенной log (x) + exp (y). Аналитическая печать с использованиемfsurf (без генерации числовых данных) показывает изогнутые области и асимптотические области вблизи x = 0.

syms x y
fsurf(log(x) + exp(y),[0 2 -1 3])
xlabel('x')

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

Постройте график многомерной поверхности (x (u, v), y (u, v), z (u, v)) fsurf

Постройте график многомерной поверхности, определяемой

x (u, v) = u

y (u, v) = f (u) sin (v)

z (u, v) = f (u) cos (v)

где f (u) = exp (-u2/3) sin (u) + 3/2.

Установите интервал графика u от -5 до 5 и v от 0 до .

syms f(u) x(u,v) y(u,v) z(u,v)
f(u) = sin(u)*exp(-u^2/3)+1.5;
x(u,v) = u;
y(u,v) = f(u)*sin(v);
z(u,v) = f(u)*cos(v);
fsurf(x,y,z,[-5 5 0 2*pi])

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

Постройте график многомерной поверхности (x (s, t), y (s, t), z (s, t )) с помощьюfmesh

Постройте график многомерной поверхности, определяемой

x = rcos (s) sin (t)

y = rsin (s) sin (t)

z = rcos (t)

где r = 8 + sin (7s + 5t). Отображение печатаемой поверхности в виде сетей с помощьюfmesh. Задайте интервал графика s от 0 до и t от 0 до δ.

syms s t
r = 8 + sin(7*s + 5*t);
x = r*cos(s)*sin(t);
y = r*sin(s)*sin(t);
z = r*cos(t);
fmesh(x,y,z,[0 2*pi 0 pi],'Linewidth',2)
axis equal

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

Печать неявной поверхности f (x, y, z) = c с помощьюfimplicit3

Постройте график неявной поверхности 1/x2-1/y2 + 1/z2 = 0.

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

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

Печать горизонталей и градиента поверхности

Постройте график поверхностного sin (x) + sin (y) - (x2 + y2 ) /20 с помощьюfsurf. Можно показать контуры на том же графике, задав 'ShowContours' кому 'on'.

syms x y
f = sin(x)+sin(y)-(x^2+y^2)/20
f = 

sin(x)+sin(y)-x220-y220sin(x) + sin(y) - x^2/20 - y^2/20

fsurf(f,'ShowContours','on')
view(-19,56)

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

Затем постройте график контуров на отдельном графике с более мелкими контурными линиями.

fcontour(f,[-5 5 -5 5],'LevelStep',0.1,'Fill','on')
colorbar

Найдите градиент поверхности. Создание 2-D сеток с помощью meshgrid и замените координаты сетки для численной оценки градиента. Показать градиент с помощью quiver.

hold on
Fgrad = gradient(f,[x,y])
Fgrad = 

(cos(x)-x10cos(y)-y10)[cos(x) - x/10; cos(y) - y/10]

[xgrid,ygrid] = meshgrid(-5:5,-5:5);
Fx = subs(Fgrad(1),{x,y},{xgrid,ygrid});
Fy = subs(Fgrad(2),{x,y},{xgrid,ygrid});
quiver(xgrid,ygrid,Fx,Fy,'k')
hold off

Figure contains an axes. The axes contains 2 objects of type functioncontour, quiver.