Этот пример показывает, как изменить формат вывода символьных результатов в Symbolic Math Toolbox™ при помощи функции sympref
. Чтобы продемонстрировать использование функции, этот пример использует полином третьей степени.
Создайте полином третьей степени, состоящий из одной переменной и трех коэффициентов. Задайте переменную и коэффициенты как символьные переменные при помощи команды syms
.
syms x a b c f(x) = (a*x^2 + b)*(b*x - a) + c
f(x) =
Символьные настройки сохраняются через следующие сеансы MATLAB®. Восстановите все символьные настройки к значениям по умолчанию. Расширьте полином и возвратите выходной параметр в порядке по умолчанию.
sympref('default');
poly = expand(f)
poly(x) =
Выходной формат по умолчанию отображает условия символьного полинома в алфавитном порядке, не отличая различные символьные переменные в каждом одночленном термине.
Чтобы изменить выходной порядок полинома, установите настройку 'PolynomialDisplayStyle'
. Опция 'ascend'
сортирует вывод в порядке по возрастанию на основе стандартного математического обозначения для полиномов. Здесь, переменная x
с самым высоким порядком в одночленном термине отображена в последний раз.
sympref('PolynomialDisplayStyle','ascend'); poly
poly(x) =
По умолчанию символьные результаты в Live скриптах набираются в стандартном математическом обозначении, долгие выражения сокращены, и матрицы установлены в круглых скобках (круглые скобки). Можно изменить формат вывода путем установки символьных настроек.
Найдите корни или нули полинома третьей степени с помощью solve
. В Symbolic Math Toolbox функция root
представляет корни полинома.
sols = solve(poly,x)
sols =
Чтобы отобразить результаты без того, чтобы быть сокращенным, установите настройку 'AbbreviateOutput'
на false
.
sympref('AbbreviateOutput',false);
sols
sols =
Чтобы отобразить символьную матрицу с квадратными скобками, а не круглые скобки, устанавливают настройку 'MatrixWithSquareBrackets'
на true
.
sympref('MatrixWithSquareBrackets',true);
sols
sols =
Чтобы отобразить результаты в символах ASCII вместо в набранном математическом обозначении, установите настройку 'TypesetOutput'
на false
.
sympref('TypesetOutput',false);
sols
sols = root(a*b*z^3 - a^2*z^2 + b^2*z - a*b + c, z, 1) root(a*b*z^3 - a^2*z^2 + b^2*z - a*b + c, z, 2) root(a*b*z^3 - a^2*z^2 + b^2*z - a*b + c, z, 3)
Настройки вы устанавливаете использование sympref
, сохраняются через ваши текущие и будущие сеансы MATLAB®. Восстановите символьные настройки к значениям по умолчанию для следующего шага.
sympref('default');
Замените полиномиальные коэффициенты на символьные числа с помощью subs
. Функция возвращает решения без любого приближения.
numSols = subs(sols,[a b c],[sqrt(2) pi 0.001])
numSols =
Чтобы отобразить результаты в формате с плавающей точкой, установите настройку 'FloatingPointOutput'
на true
. Эта опция отображает символьные числа в фиксированном десятичном формате с 4 цифрами после десятичной точки. Для комплексного результата класса 'sym'
эта настройка влияет на действительные и мнимые части независимо.
sympref('FloatingPointOutput',true);
numSols
numSols =
Настройки отображения, которые вы устанавливаете, не влияют на вычисление символьных результатов. Можно использовать функцию vpa
, чтобы аппроксимировать символьные числа в точности с плавающей точкой с 4 значительными цифрами.
vpaSols = vpa(numSols,4)
vpaSols =