С помощью программы Symbolic Math Toolbox™ можно найти
Производные однопараметрических выражений
Частные производные
Производные второго и более высокого порядка
Смешанные производные
Подробную информацию о принятии символических производных см. в разделе Дифференциация.
Чтобы отличить символическое выражение, используйте diff команда. Следующий пример иллюстрирует, как взять первую производную символического выражения:
syms x f = sin(x)^2; diff(f)
ans = 2*cos(x)*sin(x)
Для многовариантных выражений можно задать переменную дифференциации. Если переменная не указана, MATLAB ® выбирает переменную по умолчанию по близости к буквеx:
syms x y f = sin(x)^2 + cos(y)^2; diff(f)
ans = 2*cos(x)*sin(x)
Полный набор правил MATLAB, применяемых для выбора переменной по умолчанию, см. в разделе Поиск символьной переменной по умолчанию.
Дифференцирование символьного выражения f относительно переменной y, введите:
syms x y f = sin(x)^2 + cos(y)^2; diff(f, y)
ans = -2*cos(y)*sin(y)
Чтобы взять вторую производную от символического выражения f относительно переменной y, введите:
syms x y f = sin(x)^2 + cos(y)^2; diff(f, y, 2)
ans = 2*sin(y)^2 - 2*cos(y)^2
Вы получите один и тот же результат, взяв производную дважды: diff(diff(f, y)). Чтобы взять смешанные производные, используйте две команды дифференциации. Например:
syms x y f = sin(x)^2 + cos(y)^2; diff(diff(f, y), x)
ans = 0
Можно выполнить символьную интеграцию, включая:
Неопределенная и определенная интеграция
Интеграция многовариантных выражений
Для получения подробной информации о int , включая интеграцию с реальными и сложными параметрами, см. раздел Интеграция.
Предположим, вы хотите интегрировать символическое выражение. Первым шагом является создание символического выражения:
syms x f = sin(x)^2;
Чтобы найти неопределенный интеграл, введите
int(f)
ans = x/2 - sin(2*x)/4
Если выражение зависит от нескольких символьных переменных, можно назначить переменную интегрирования. Если переменная не указана, MATLAB выбирает переменную по умолчанию по близости к букве x:
syms x y n f = x^n + y^n; int(f)
ans = x*y^n + (x*x^n)/(n + 1)
Полный набор правил MATLAB, применяемых для выбора переменной по умолчанию, см. в разделе Поиск символьной переменной по умолчанию.
Также можно интегрировать выражение f = x^n + y^n в отношении y
syms x y n f = x^n + y^n; int(f, y)
ans = x^n*y + (y*y^n)/(n + 1)
Если переменная интегрирования n, введите
syms x y n f = x^n + y^n; int(f, n)
ans = x^n/log(x) + y^n/log(y)
Чтобы найти определенный интеграл, передайте пределы интеграции в качестве последних двух аргументов int функция:
syms x y n f = x^n + y^n; int(f, 1, 10)
ans = piecewise(n == -1, log(10) + 9/y, n ~= -1,... (10*10^n - 1)/(n + 1) + 9*y^n)
Если int функция не может вычислить интеграл, она возвращает неразрешенный интеграл:
syms x int(sin(sinh(x)))
ans = int(sin(sinh(x)), x)
Можно решить различные типы символьных уравнений, включая:
Алгебраические уравнения с одной символьной переменной
Алгебраические уравнения с несколькими символическими переменными
Системы алгебраических уравнений
Подробные сведения о решении символьных уравнений, включая дифференциальные уравнения, см. в разделе Решение уравнений.
Используйте двойной знак равенства (= =) для определения уравнения. Тогда можно solve уравнение путем вызова функции решения. Например, решите это уравнение:
syms x solve(x^3 - 6*x^2 == 6 - 11*x)
ans = 1 2 3
Если не указать правую часть уравнения, solve предполагает, что она равна нулю:
syms x solve(x^3 - 6*x^2 + 11*x - 6)
ans = 1 2 3
Если уравнение содержит несколько символьных переменных, можно указать переменную, для которой это уравнение должно быть решено. Например, решите это уравнение с несколькими переменными относительно y:
syms x y solve(6*x^2 - 6*x^2*y + x*y^2 - x*y + y^3 - y^2 == 0, y)
ans =
1
2*x
-3*xЕсли переменная не указана, получается решение уравнения, ближайшего по алфавиту к x переменная. Полный набор правил MATLAB применяется для выбора переменной по умолчанию см. в разделе Поиск символьной переменной по умолчанию.
Также можно решить системы уравнений. Например:
syms x y z [x, y, z] = solve(z == 4*x, x == y, z == x^2 + y^2)
x = 0 2 y = 0 2 z = 0 8
Панель инструментов «Математические символы» (Symbolic Math Toolbox) предоставляет набор функций упрощения, позволяющих манипулировать выводом символьного выражения. Например, следующий многочлен золотого отношения phi
phi = (1 + sqrt(sym(5)))/2; f = phi^2 - phi - 1
прибыль
f = (5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2
Этот ответ можно упростить, введя
simplify(f)
и получите очень короткий ответ:
ans = 0
Символическое упрощение не всегда так просто. Универсальной функции упрощения нет, потому что значение простейшего представления символического выражения не может быть определено чётко. Различные задачи требуют различных форм одного и того же математического выражения. Зная, какая форма эффективнее для решения конкретной задачи, можно выбрать соответствующую функцию упрощения.
Например, чтобы показать порядок многочлена или символически дифференцировать или интегрировать многочлен, используйте стандартную форму многочлена со всеми скобками, умноженными и суммирующими все аналогичные члены. Чтобы переписать многочлен в стандартной форме, используйте expand функция:
syms x f = (x ^2- 1)*(x^4 + x^3 + x^2 + x + 1)*(x^4 - x^3 + x^2 - x + 1); expand(f)
ans = x^10 - 1
factor функция упрощения показывает полиномиальные корни. Если многочлен не может быть факторизован над рациональными числами, вывод factor функция - стандартная полиномиальная форма. Например, для множения многочлена третьего порядка введите:
syms x g = x^3 + 6*x^2 + 11*x + 6; factor(g)
ans = [ x + 3, x + 2, x + 1]
Вложенное (хорнеровное) представление многочлена является наиболее эффективным для численных оценок:
syms x h = x^5 + x^4 + x^3 + x^2 + x; horner(h)
ans = x*(x*(x*(x*(x + 1) + 1) + 1) + 1)
Список функций упрощения панели инструментов символьной математики см. в разделе Выбор функции для изменения порядка выражений.
Можно заменить символьную переменную числовым значением, используя subs функция. Например, вычислить символьное выражение f в точке x = 1/3:
syms x f = 2*x^2 - 3*x + 1; subs(f, 1/3)
ans = 2/9
subs функция не изменяет исходное выражение f:
f
f = 2*x^2 - 3*x + 1
Если выражение содержит несколько переменных, можно указать переменную, для которой требуется выполнить подстановку. Например, для замены значения x = 3 в символьном выражении
syms x y f = x^2*y + 5*x*sqrt(y);
введите команду
subs(f, x, 3)
ans = 9*y + 15*y^(1/2)
Можно также заменить одну символьную переменную другой. Например, для замены переменной y с переменной x, введите
subs(f, y, x)
ans = x^3 + 5*x^(3/2)
Можно также подставить матрицу в символический многочлен с числовыми коэффициентами. Существует два способа подстановки матрицы в многочлен: элемент за элементом и согласно правилам умножения матрицы.
Подстановка по элементам. Чтобы заменить матрицу в каждом элементе, используйте subs команда:
syms x f = x^3 - 15*x^2 - 24*x + 350; A = [1 2 3; 4 5 6]; subs(f,A)
ans = [ 312, 250, 170] [ 78, -20, -118]
Для прямоугольных или квадратных матриц можно выполнять подстановку по элементам.
Подстановка в матричном смысле. Если требуется подставить матрицу в полином, используя стандартные правила умножения матриц, матрица должна быть квадратной. Например, можно заменить магический квадрат A в многочлен f:
Создайте многочлен:
syms x f = x^3 - 15*x^2 - 24*x + 350;
Создайте магическую квадратную матрицу:
A = magic(3)
A =
8 1 6
3 5 7
4 9 2Получить вектор строки, содержащий числовые коэффициенты многочлена f:
b = sym2poly(f)
b =
1 -15 -24 350Заменить магическую квадратную матрицу A в многочлен f. Матрица A заменяет все вхождения x в многочлене. Константа, умноженная на единичную матрицу eye(3) заменяет постоянный член f:
A^3 - 15*A^2 - 24*A + 350*eye(3)
ans =
-10 0 0
0 -10 0
0 0 -10 polyvalm команда обеспечивает простой способ получения того же результата:
polyvalm(b,A)
ans =
-10 0 0
0 -10 0
0 0 -10Чтобы заменить набор элементов в символьной матрице, также используйте subs команда. Предположим, что требуется заменить некоторые элементы символьной матрицы циркулятора A
syms a b c A = [a b c; c a b; b c a]
A = [ a, b, c] [ c, a, b] [ b, c, a]
Заменить элемент (2, 1) A с beta и переменная b по всей матрице с переменной alpha, введите
alpha = sym('alpha');
beta = sym('beta');
A(2,1) = beta;
A = subs(A,b,alpha)Результатом является матрица:
A = [ a, alpha, c] [ beta, a, alpha] [ alpha, c, a]
Дополнительные сведения см. в разделе Подстановочные элементы в символьных матрицах.
Панель инструментов «Математика» (Symbolic Math Toolbox) обеспечивает функции печати:
fplot для создания 2-D графиков символьных выражений, уравнений или функций в декартовых координатах.
fplot3 для создания 3-D параметрических графиков.
ezpolar для создания графиков в полярных координатах.
fsurf для создания поверхностных графиков.
fcontour для создания контурных графиков.
fmesh для создания сеточных графиков.
Создание графика линии 2-D с помощью fplot. Постройте график выражения 11x-6.
syms x
f = x^3 - 6*x^2 + 11*x - 6;
fplot(f)
Добавьте метки для осей X и Y. Создать заголовок с помощью texlabel(f). Показать сетку с помощью grid on. Дополнительные сведения см. в разделе Добавление меток заголовка и оси в диаграмму.
xlabel('x') ylabel('y') title(texlabel(f)) grid on

Печать уравнений и неявных функций с использованием fimplicit.
Постройте график уравнения x2-y2) 2 -1 < x < 1.
syms x y eqn = (x^2 + y^2)^4 == (x^2 - y^2)^2; fimplicit(eqn, [-1 1])

Печать 3-D параметрических линий с помощью fplot3.
Печать параметрической линии
10t) z = t.
syms t
fplot3(t^2*sin(10*t), t^2*cos(10*t), t)
Создание 3-D поверхности с помощью fsurf.
Постройте график параболоида + y2.
syms x y fsurf(x^2 + y^2)
