С помощью программного обеспечения 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
The 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)
Список функций упрощения Symbolic Math Toolbox см. в разделе «Выбор функции для перестройки выражения».
Можно заменить символьную переменную числовым значением при помощи subs функция. Для примера вычислите символическое выражение f в точке x = 1/3:
syms x f = 2*x^2 - 3*x + 1; subs(f, 1/3)
ans = 2/9
The 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 The 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 для создания сетчатых графиков.
Создайте 2D график при помощи fplot. Постройте график выражения .
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.
Постройте график уравнения .
syms x y eqn = (x^2 + y^2)^4 == (x^2 - y^2)^2; fimplicit(eqn, [-1 1])

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