Символические объекты для представления математических объектов

Чтобы решить математические задачи с Symbolic Math Toolbox™, задайте символические объекты, чтобы представлять различные математические объекты. В этом примере рассматривается использование следующих символических объектов:

  • символьные числа

  • символьные скалярные переменные, функции и выражения

  • символьные уравнения

  • символьные векторы и матрицы

  • символьные матричные переменные (с R2021a года)

Символьное число

Определение числа как символьного числа предписывает MATLAB® рассматривать число как точную форму вместо использования числового приближения. Для примера используйте символьное число, чтобы представлять аргумент обратной тригонометрической функции θ=sin1(1/2).

A picture showing symbolic number that represents the argument of an inverse trigonometric function.

Создайте символьное число 1/2 использование sym, и назначить его a.

a = sym(1/sqrt(2))
a =
2^(1/2)/2

Найдите обратный синус a. Результатом является символьное число pi/4.

thetaSym = asin(a)
thetaSym =
pi/4

Можно преобразовать символьное число в арифметику переменной точности при помощи vpa. Результатом является десятичное число с 32 значащими цифрами.

thetaVpa = vpa(thetaSym)
thetaVpa =
0.78539816339744830961566084581988

Чтобы преобразовать символьное число в число двойной точности, используйте double. Для получения дополнительной информации о том, использовать ли числовую или символьную арифметику, см. «Выбор числовой или символьной арифметики».

thetaDouble = double(thetaSym)
thetaDouble =
0.7854

Символьная скалярная переменная, функция и выражение

Определение переменных, функций и выражений как символьных объектов позволяет вам выполнять алгебраические операции с этими символьными объектами, включая упрощение формул и решение уравнений. Для примера используйте символьный скаляр переменную, функцию и выражение, чтобы представлять квадратичную функцию f(x)=x2+x2. Для краткости символическая скалярная переменная также называется символьной переменной.

A picture showing symbolic scalar variable, function, and expression that represent the quadratic function.

Создайте символьную скалярную переменную x использование syms. Вы также можете использовать sym чтобы создать символьную скалярную переменную. Для получения дополнительной информации о том, использовать ли syms или sym, см. «Выбор функции syms или sym». Задайте символическое выражение x^2 + x - 2 чтобы представлять правую сторону квадратичного уравнения и назначить его f(x). Идентификатор f(x) теперь ссылается на символьную функцию, которая представляет квадратичную функцию.

syms x
f(x) = x^2 + x - 2
f(x) =
x^2 + x -2

Затем можно вычислить квадратичную функцию, предоставив ее входной параметр внутри круглых скобок. Для примера оцените f(2).

fVal = f(2)
fVal =
4

Можно также решить квадратичное уравнение f(x)=0. Использование solve чтобы найти корни квадратичного уравнения. solve возвращает два решения как вектор двух символьных чисел.

sols = solve(f)
sols =
-2
 1

Символьное уравнение

Определение математического уравнения как символьного уравнения позволяет вам найти решение уравнения. Для примера используйте символьное уравнение, чтобы решить тригонометрическую задачу 2sin(t)cos(t)=1.

A picture showing symbolic equation that represents the trigonometric problem.

Создайте символьную функцию g(t) использование syms. Назначьте символическое выражение 2*sin(t)*cos(t) на g(t).

syms g(t)
g(t) = 2*sin(t)*cos(t)
g(t) = 
2*cos(t)*sin(t)
Чтобы определить уравнение, используйте == Оператор и присвоение математического отношения g(t) == 1 на eqn. Идентификатор eqn является символьным уравнением, которое представляет тригонометрическую задачу.
eqn = g(t) == 1
eqn = 
2*cos(t)*sin(t) == 1

Использование solve чтобы найти решение тригонометрической задачи.

sol = solve(eqn)
sol = 
pi/4

Символьный вектор и матрица

Используйте символьный вектор и матрицу, чтобы представлять и решить систему линейных уравнений.

x+2y=u4x+5y=v

Можно представлять систему уравнений как вектор двух символьных уравнений. Можно также представлять систему уравнений как матричную задачу, включающую матрицу символьных чисел и вектор символьных переменных. Для краткости любой вектор символьных объектов называется символьным вектором, а любая матрица символьных объектов - символьной матрицей.

A picture of symbolic vectors and matrix that represent a system of linear equations and a matrix problem.

Создайте два символьных уравнения eq1 и eq2. Объедините эти два уравнения в символьный вектор.

syms u v x y
eq1 = x + 2*y == u;
eq2 = 4*x + 5*y == v;
eqns = [eq1, eq2]
eqns =
[x + 2*y == u, 4*x + 5*y == v]

Использование solve найти решения системы уравнений, представленных eqns. solve возвращает структуру S с полями, названными в честь каждой из переменных в уравнениях. Вы можете получить доступ к решениям с помощью записи через точку, как S.x и S.y.

S = solve(eqns);
S.x
ans =
(2*v)/3 - (5*u)/3
S.y
ans =
(4*u)/3 - v/3

Другой способ решить систему линейных уравнений - преобразовать ее в матричную форму. Использование equationsToMatrix для преобразования системы уравнений в матричную форму и назначения выхода в A и b. Здесь, A является символьной матрицей и b является символьным вектором. Решите матричную задачу с помощью матрицы division\.

[A,b] = equationsToMatrix(eqns,x,y)
A =
[1, 2]
[4, 5]
 
 
b =
u
v
sols = A\b
sols =
(2*v)/3 - (5*u)/3
    (4*u)/3 - v/3

Символьные матричные переменные

Начиная с R2021a

Используйте переменные символьной матрицы, чтобы вычислить дифференциалы относительно векторов.

α=yTAxαx=yTAαy=xTAT

Символьные матричные переменные представляют матрицы, векторы и скаляры в качестве атомарных символов. Переменные Символьной матрицы предлагают краткое отображение в наборе типов и показывают математические формулы с большей ясностью. Можно взять векторные выражения из учебников и ввести их в Symbolic Math Toolbox.

A picture of symbolic matrix variables that represent differentials with respect to vectors.

Создайте три символьные матричные переменные x, y, и A использование syms команда со matrix аргумент. Нескалярные переменные символьной матрицы отображаются полужирным шрифтом символов в Командном окне и в Live Editor.

syms x [4 1] matrix
syms y [3 1] matrix
syms A [3 4] matrix
x
y
A
x =
x

y =
y

A =
A
Определите alpha. Найдите дифференциал alpha относительно векторов x и y, которые представлены переменными символьной матрицы x и y.
alpha = y.'*A*x
alpha =
y.'*A*x
diff(alpha,x)
ans =
y.'*A
diff(alpha,y)
alpha =
x.'*A.'

Сравнения символических объектов

В этой таблице сравниваются различные символические объекты, которые доступны в Symbolic Math Toolbox.

Символические объектыПримеры команд MATLABРазмер символьных объектовТип данных
символьное число
a = 1/sqrt(sym(2))
theta = asin(a)
a =
2^(1/2)/2
 
theta =
pi/4
1-by- 1sym
символьная скалярная переменная
syms x y u v
1-by- 1sym
символьная функция
syms x
f(x) = x^2 + x - 2
syms g(t)
g(t) = 2*sin(t)*cos(t)
f(x) =
x^2 + x - 2
 
g(t) =
2*cos(t)*sin(t)
1-by- 1symfun
символьное уравнение
syms u v x y
eq1 = x + 2*y == u
eq2 = 4*x + 5*y == v
eq1 = 
x + 2*y == u
 
eq2 =
4*x + 5*y == v
1-by- 1sym
символьное выражение
syms x
expr = x^2 + x - 2
expr2 = 2*sin(x)*cos(x)
expr = 
x^2 + x - 2
 
expr2 =
2*cos(x)*sin(x)
1-by- 1sym
символьный вектор
syms u v
b = [u v]
b = 
[u, v]
1-by- n или m-by- 1sym
символьная матрица
syms A x y
A = [x y; x*y y^2]
A =
[  x,   y]
[x*y, y^2]
m-by- nsym
символьный многомерный массив
syms A [2 1 2]
A
A(:,:,1) =
A1_1
A2_1
 
A(:,:,2) =
A1_2
A2_2
sz1-by- sz2-... - sznsym
символьная матричная переменная (с R2021a года)
syms A B [2 3] matrix
A
B
A
B
m-by- nsymmatrix

См. также

| | | | |

Похожие темы