В этом примере представлен обзор инструментария символьной математики, который предлагает полный набор инструментов для вычислительной и аналитической математики.

Этот пример включает
Переменные, выражения, функции и уравнения
Замещение и решение
Упрощение и манипулирование
Расчет (дифференциация, интеграция, пределы, серия)
Дифференциальные уравнения
Линейная алгебра
Графика
Дополнительные сведения см. в разделе Начало работы с инструментарием символьной математики. Дополнительные сведения о документировании и совместном использовании математики см. в разделе Создание сценариев в интерактивном редакторе.
Переменные в MATLAB по умолчанию имеют двойную точность. Панель инструментов «Символьная математика» (Symbolic Math Toolbox) расширяет эту область, позволяя выражать числа в точной символьной форме с помощью sym и с переменной точностью с использованием vpa.
pi/6 + pi/4
ans = 1.3090
sym(pi/6) + sym(pi/4)
ans =
vpa(pi/6) + vpa(pi/4)
ans =
Символьные переменные могут использоваться в математических выражениях, функциях и уравнениях, включая тригонометрические, логарифмические, экспоненциальные и специальные функции. Можно создавать символьные выражения и выполнять над ними математические вычисления.
syms x y log(x) + exp(y)
ans =
Также можно создавать кусочные функции.
y(x) = piecewise(x<0, -1, x>0, 1)
y(x) =
Создание и вычисление символьных функций. Найти значение f при -5.
syms f(x)
f(x) = x^4-2*x^3+6*x^2-2*x+10f(x) =
f(-5)
ans =
Найти пересечение между линиями и с помощью solve. Приравнять строки с помощью оператора = = .
syms y1 y2 y1 = x+3; y2 = 3*x; solve(y1 == y2)
ans =
Сделать assume на символьных переменных. Существует 4 решения 1, два вещественных и два комплексных. Предполагая, x является вещественным > 0, существует только одно решение.
syms x
solve(x^4 == 1)ans =
assume(x,'real')
assumeAlso( x > 0)
assumptions(x)ans =
solve(x^4 == 1)
ans =
assume(x,'clear')Панель инструментов символьной математики поддерживает оценку математических функций путем замены любой части выражения с помощью subs. Можно заменить числовые значения, другие символьные переменные или выражения, векторы или матрицы. Панель инструментов «Символьная математика» (Symbolic Math Toolbox) поддерживает решение уравнений и систем уравнений с помощью solve. Он поддерживает решение многомерных уравнений, решение неравенств и решение с предположениями. Решения можно найти символически или численно с высокой точностью, используя арифметику переменной точности.
Выполните подстановки с помощью символьных переменных. Заменить xo-1 + 1
syms x xo subs(x^2+1,x,xo-1)
ans =
Подстановка нескольких значений. Например, вычислить -e2C, = xeon4, c = -1.
syms a b c subs(cos(a) + sin(b) - exp(2*c), [a b c], [pi/2 pi/4 -1])
ans =
Создание и решение уравнений. Найдите нули 0.
solve(9*x^2 - 1 == 0)
ans =
Решите общее квадратичное уравнение c = 0 и используйте subs, чтобы вычислить это b = 0, c = -1.
eqn = a*x^2 + b*x + c == 0; sol = solve(eqn)
sol =
subs(sol,[a b c],[9 0 -1])
ans =
Решайте уравнения символически или с помощью арифметики переменной точности, когда необходимы точные результаты или высокая точность. Граф 3x3 − 8 очень плоский около своего корня.
syms x f(x) assume(x>0) f(x) = 6*x^7-2*x^6+3*x^3-8; fplot(f) xlim([-10 10]) ylim([-1e3 1e3])

doubleSol = roots([6 -2 0 0 3 0 0 -8]) % double-precisiondoubleSol = 7×1 complex
1.0240 + 0.0000i
0.7652 + 0.8319i
0.7652 - 0.8319i
-0.8808 + 0.5043i
-0.8808 - 0.5043i
-0.2297 + 0.9677i
-0.2297 - 0.9677i
symsSol = solve(f) % exact. The roots object stores the zeros for symbolic computationssymsSol =
vpaSol = vpasolve(f) % variable-precision vpaSol =
Панель инструментов символьной математики поддерживает манипуляции с формулами и упрощение математических функций. Большинство математических выражений могут быть представлены в различных, но математически эквивалентных формах, и набор символьных математических инструментов поддерживает ряд операций, включая факторинг или расширение выражений, объединение терминов, перезапись или перестановку выражений и упрощение на основе допущений.
Выполните умножение полинома и упростите результаты, показав, что + 1) (x4-x2 + упрощается до x12-1.
simplify((x - 1)*(x + 1)*(x^2 + x + 1)*(x^2 + 1)*(x^2 - x + 1)*(x^4 - x^2 + 1))
ans =
Примените тригонометрические идентичности к упрощениям, например 2x) 2.
combine(2*sin(x)*cos(x) + (1- cos(2*x))/2 + cos(x)^2,'sincos')ans =
Множить или расширять многомерные многочлены.
syms x y factor(y^6-x^6)
ans =
f(x) = (x^3 + 7); expand(f(y-1))
ans =
Найти функциональный состав )).
f(x) = sqrt(log(x)); g(x) = sqrt(1-x); h = compose(g,f,x)
h(x) =
Инструментарий «Символьная математика» (Symbolic Math Toolbox) содержит полный набор инструментов вычисления для прикладной математики. Он может выполнять многомерную символическую интеграцию и дифференциацию. Он может генерировать, манипулировать и выполнять вычисления с сериями.
Найдите производную )).
diff(sin(x))
ans =
Найдите производную ) + 1) с помощью правила цепочки.
diff(x^2+sin(2*x^4)+1,x)
ans =
Найдите неопределенный интеграл dx e-x22.
int(exp(-x^2/2),x)
ans =
Найдите определенный интеграл dx (1 + ) от 0 до 1.
int(x*log(1+x),0,1)
ans =
Покажите, что = 1 x = 0, вычисляя рядов Тейлора
syms x
T = taylor(sin(x)/x)T =
subs(T,x,0)
ans =
Показать, что ) прерывистый при ¼ 2, показывая, что левый и правый пределы не ≠limx→π2-tan (x).
limit(tan(x),x,pi/2,'left')ans =
limit(tan(x),x,pi/2,'right')ans =
limit(tan(x),x,pi/2)
ans =
Панель инструментов «Символьная математика» (Symbolic Math Toolbox) позволяет аналитически решать системы «Решать систему дифференциальных уравнений» (Solve a System of Differential Equations) с помощью dsolve.
Решите ODE ay первого порядка.
syms a b y(x) dsolve(diff(y) == -a*y)
ans =
Решите тот же ОДУ с начальным условием y b.
dsolve(diff(y)== -a*y,y(0)==b)
ans =
Решить систему связанных ОДУ первого порядка y = -x.
syms x(t) y(t) z = dsolve(diff(x) == y, diff(y) == -x); disp([z.x;z.y])
Панель инструментов «Символьная математика» (Symbolic Math Toolbox) может работать с символьными векторами и матрицами. Он может вычислять eig символьных матриц.
Выполните умножение матрицы b, abcd] [x1, x2]
syms a b c d syms x1 x2 x = [x1; x2]; A = [a b ; c d]; b = A*x
b =
Найти определитель А.
det(A)
ans =
Найдите собственные значения A.
lambda = eig(A)
lambda =
Панель инструментов «Символьная математика» поддерживает аналитическую печать в 2D и 3D.
fplot(tan(x))

Постройте график параметрической кривой sin (5tt * cos (5t).
syms t x = t*sin(5*t); y = t*cos(5*t); fplot(x, y) grid on

Подготовьте 3D параметрическую кривую 5|t |(5|t |z (t) =t от[-10,10] пунктирной красной линией.
syms t xt = exp(abs(t)/10).*sin(5*abs(t)); yt = exp(abs(t)/10).*cos(5*abs(t)); zt = t; h = fplot3(xt,yt,zt, [-10,10],'--r');

Постройте график 3D поверхности cos (y).
syms x y fsurf(sin(x) + cos(y))

Постройте график 2D контуров одной и той же поверхности.
fcontour(sin(x) + cos(y))
