С программным обеспечением 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)
Для списка функций упрощения Symbolic Math Toolbox смотрите, Выбирают Function to Rearrange Expression.
Можно заменить символьной переменной с числовым значением при помощи 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 обеспечивает функции построения графика:
Создайте 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)