В этом примере показано, как изменить формат вывода символьных результатов в редакторе 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' предпочтение. 'ascend' опция сортирует выходные данные в порядке возрастания на основе стандартной математической нотации для многочленов. Здесь переменная x с наивысшим порядком в мономиальном члене отображается последним.
sympref('PolynomialDisplayStyle','ascend'); poly
poly(x) =
По умолчанию символьные результаты в Live Scripts представляют собой набор типов в стандартной математической нотации, длинные выражения сокращаются, а матрицы задаются в скобках (круглых скобках). Формат отображения выходных данных можно изменить, задав символьные настройки.
Найти корни или нули многочлена третьей степени с помощью solve. В инструменте «Математические символы» (Symbolic Math Toolbox) root функция представляет корни многочлена.
sols = solve(poly,x)
sols =
Для отображения результатов без сокращения установите 'AbbreviateOutput' предпочтение false.
sympref('AbbreviateOutput',false);
solssols =
Чтобы отобразить символьную матрицу в квадратных скобках, а не в скобках, установите 'MatrixWithSquareBrackets' предпочтение true.
sympref('MatrixWithSquareBrackets',true);
solssols =
Для отображения результатов в ASCII-символах, а не в математической нотации набора типов, установите 'TypesetOutput' предпочтение false.
sympref('TypesetOutput',false);
solssols = 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);
numSolsnumSols =
Заданные настройки отображения не влияют на вычисление символьных результатов. Вы можете использовать vpa функция для аппроксимации символьных чисел в точности с плавающей запятой с помощью 4 значащих цифр.
vpaSols = vpa(numSols,4)
vpaSols =
Восстановление значения по умолчанию 'FloatingPointOutput' путем указания 'default' вариант.
sympref('FloatingPointOutput','default');