В этом примере показано, как изменить формат вывода символьных результатов в MATLAB ® Live Editor с помощью 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'
выбор. The '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 =
Восстановите значение по умолчанию 'FloatingPointOutput'
путем определения 'default'
опция.
sympref('FloatingPointOutput','default');