exponenta event banner

sympref

Задание символических настроек

Описание

пример

oldVal = sympref(pref,value) задает символьную настройку pref кому value и возвращает предыдущее значение настройки oldVal. Задать для настройки значение по умолчанию можно с помощью sympref(pref,'default').

Символьные настройки могут влиять на вычисление символьных функций fourier, ifourier, и heavisideи формат отображения символьного вывода.

пример

oldVal = sympref(pref) возвращает текущее значение pref.

пример

oldPrefs = sympref(prefs) устанавливает несколько символьных настроек для значений в структуре prefs и возвращает предыдущие значения всех настроек в oldPrefs. Можно задать для всех символьных настроек значения по умолчанию с помощью sympref('default').

пример

oldPrefs = sympref() возвращает текущие значения всех символьных предпочтений.

Примечание

Символьные настройки сохраняются в ходе последовательных сеансов MATLAB ®. При открытии нового сеанса настройки по умолчанию не восстанавливаются.

Примеры

свернуть все

Преобразование Фурье F (w) f  = f (t) равно

F (w) =c∫−∞∞f (t) eiswtdt,

где c и s - параметры со значениями по умолчанию 1 и -1 соответственно. Другими общими значениями для c являются 1/2pi и 1/2pi, и другими общими значениями для s равны 1, - и .

Найти преобразование Фурье sin(t) со значением по умолчанию c и s параметры.

syms t w
F = fourier(sin(t),t,w)
F =
-pi*(dirac(w - 1) - dirac(w + 1))*1i

Найти то же преобразование Фурье с помощью c = 1/(2π) и s = 1. Задайте значения параметров с помощью 'FourierParameters' предпочтение. Точно представить δ с помощью sym. Укажите значения c и s в качестве вектора [1/(2*sym(pi)) 1]. Сохранить предыдущие значения, возвращенные sympref чтобы вы могли восстановить их позже.

oldVal = sympref('FourierParameters',[1/(2*sym(pi)) 1])
F = fourier(sin(t),t,w)
oldVal =
[ 1, -1]

F =
(dirac(w - 1)*1i)/2 - (dirac(w + 1)*1i)/2

Настройки, заданные с помощью sympref продолжение текущей и будущей сессий MATLAB. Восстановление предыдущих значений c и s кому oldVal.

sympref('FourierParameters',oldVal);

Кроме того, можно восстановить значения по умолчанию для c и s путем указания 'default' вариант.

sympref('FourierParameters','default');

В символьных математических Toolbox™ значение по умолчанию для функции Heaviside в начале координат равно 1/2. Возвращает значение heaviside(0). Найти Z-преобразование heaviside(x) для этого значения по умолчанию heaviside(0).

syms x
H = heaviside(sym(0))
Z = ztrans(heaviside(x))
H =
1/2

Z =
1/(z - 1) + 1/2

Другими общими значениями для функции Heaviside в начале координат являются 0 и 1. Набор heaviside(0) кому 1 с использованием 'HeavisideAtOrigin' предпочтение. Сохранить предыдущее значение, возвращенное sympref чтобы вы могли восстановить его позже.

oldVal = sympref('HeavisideAtOrigin',1)
oldVal =
1/2

Проверьте, имеет ли новое значение heaviside(0) равно 1. Найти Z-преобразование heaviside(x) для этого значения.

H = heaviside(sym(0))
Z = ztrans(heaviside(x))
H =
1

Z =
1/(z - 1) + 1

Новые выходные данные heaviside(0) изменяет выходные данные ztrans.

Настройки, заданные с помощью sympref продолжение текущей и будущей сессий MATLAB. Восстановить предыдущее значение heaviside(0) кому oldVal.

sympref('HeavisideAtOrigin',oldVal);

Кроме того, можно восстановить значение по умолчанию 'HeavisideAtOrigin' путем указания 'default' вариант.

sympref('HeavisideAtOrigin','default');

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

Создайте символическое выражение и верните выходные данные, сокращенные по умолчанию.

syms a b c d x 
f = a*x^3 + b*x^2 + c*x + d;
outputAbbrev = sin(f) + cos(f) + tan(f) + log(f) + 1/f
outputAbbrev = 

cos(σ1)+log(σ1)+sin(σ1)+tan(σ1)+1σ1where  σ1=ax3+bx2+cx+dcos(a*x^3 + b*x^2 + c*x + d) + log(a*x^3 + b*x^2 + c*x + d) + sin(a*x^3 + b*x^2 + c*x + d) + tan(a*x^3 + b*x^2 + c*x + d) + 1/(a*x^3 + b*x^2 + c*x + d)

Отключите сокращенный формат вывода, установив значение 'AbbreviateOutput' предпочтение false. Повторно отобразите выражение.

sympref('AbbreviateOutput',false);
outputLong = sin(f) + cos(f) + tan(f) + log(f) + 1/f
outputLong = 

cos(ax3+bx2+cx+d)+log(ax3+bx2+cx+d)+sin(ax3+bx2+cx+d)+tan(ax3+bx2+cx+d)+1ax3+bx2+cx+dcos(a*x^3 + b*x^2 + c*x + d) + log(a*x^3 + b*x^2 + c*x + d) + sin(a*x^3 + b*x^2 + c*x + d) + tan(a*x^3 + b*x^2 + c*x + d) + 1/(a*x^3 + b*x^2 + c*x + d)

Создайте другое символическое выражение и верните вывод, который по умолчанию является набором типов в математической нотации. Отключите визуализированный вывод и используйте вывод ASCII, установив значение 'TypesetOutput' предпочтение false. Сначала отобразите выходные данные набора типов.

syms a b c d x 
f = exp(a^b)+pi
f = π+eabsym(pi) + exp(a^b)

Отключить набор шрифтов, установив 'TypesetOutput' предпочтение false. Повторно отобразите выражение.

sympref('TypesetOutput',false);
f = exp(a^b)+pi
 
f =
 
pi + exp(a^b)
 

Настройки, заданные с помощью sympref продолжение текущей и будущей сессий MATLAB. Восстановление значений по умолчанию 'AbbreviateOutput' и 'TypesetOutput' путем указания 'default' вариант.

sympref('AbbreviateOutput','default');
sympref('TypesetOutput','default');

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

Создайте квадратичное уравнение.

syms x
eq = x^2 - 2e3/sym(pi)*x + 0.5 == 0
eq = 

x2-2000xπ+12=0x^2 - (2000*x)/sym(pi) + sym(1/2) == 0

Найти решения уравнения с помощью solve.

sols = solve(eq,x)
sols = 

(-22000000-π2-20002π22000000-π2+20002π)[-(sqrt(sym(2))*sqrt(2000000 - sym(pi)^2) - 2000)/(2*sym(pi)); (sqrt(sym(2))*sqrt(2000000 - sym(pi)^2) + 2000)/(2*sym(pi))]

Установите 'FloatingPointOutput' предпочтение true. Отображение квадратичного уравнения и его решений в формате с плавающей запятой.

sympref('FloatingPointOutput',true);
eq
eq = x2-636.6198x+0.5000=0x^2 - vpa('636.6198')*x + vpa('0.5000') == 0
sols
sols = 

(7.8540e-04636.6190)[vpa('7.8540e-04'); vpa('636.6190')]

Формат с плавающей запятой отображает каждое символьное число в кратком, фиксированном десятичном формате с 4 цифрами после десятичной запятой. Установка 'FloatingPointOutput' настройка не влияет на точность с плавающей запятой в символьных вычислениях. Для вычисления символьных чисел с помощью арифметики с плавающей запятой используйте vpa функция.

Теперь восстановите значение по умолчанию 'FloatingPointOutput' путем указания 'default' вариант. Вычислите аппроксимацию решений с плавающей запятой с помощью 8 значащих цифр vpa.

sympref('FloatingPointOutput','default');
sols = vpa(sols,8)
sols = 

(0.00078539913636.61899)[vpa('0.00078539913'); vpa('636.61899')]

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

syms x y a b
p1 = b^2*x^2 + a^2*x + y^3 + 2
p1 = a2x+b2x2+y3+2a^2*x + b^2*x^2 + y^3 + 2

Опция по умолчанию сортирует выходные данные в алфавитном порядке без различия различных символьных переменных в каждом мономиальном члене.

Теперь отобразите тот же полином в порядке возрастания, установив настройку 'PolynomialDisplayStyle' кому 'ascend'.

sympref('PolynomialDisplayStyle','ascend');
p1
p1 = 2+y3+a2x+b2x22 + y^3 + a^2*x + b^2*x^2

'ascend' сортирует выходные данные в порядке возрастания в зависимости от важности переменных. Здесь самая важная переменная x с наивысшим порядком в мономиальном члене отображается последним.

Отображение многочлена в порядке убывания путем установки 'PolynomialDisplayStyle' предпочтение 'descend'.

sympref('PolynomialDisplayStyle','descend');
p1
p1 = b2x2+a2x+y3+2b^2*x^2 + a^2*x + y^3 + 2

Настройки, заданные с помощью sympref продолжение текущей и будущей сессий MATLAB. Восстановление значения по умолчанию 'PolynomialDisplayStyle' путем указания 'default' вариант.

sympref('PolynomialDisplayStyle','default');

По умолчанию в скобках (круглых скобках) задается символьная матрица в сценариях. Вместо этого можно указать использование квадратных скобок sympref.

Создайте символьную матрицу, состоящую из символьных переменных и чисел.

syms x y
A = [x*y, 2; 4, y^2]
A = 

(xy24y2)[x*y, sym(2); sym(4), y^2]

Отображение матрицы в квадратных скобках путем установки 'MatrixWithSquareBrackets' предпочтение true.

sympref('MatrixWithSquareBrackets',true);
A
A = 

[xy24y2][x*y, sym(2); sym(4), y^2]

Настройки, заданные с помощью sympref продолжение текущей и будущей сессий MATLAB. Восстановите значение по умолчанию, указав 'default' вариант.

sympref('MatrixWithSquareBrackets','default');

Вместо сохранения и восстановления индивидуальных настроек один за другим можно использовать sympref для одновременного сохранения и восстановления всех символьных настроек.

Возврат структуры, содержащей значения всех символьных настроек, с помощью sympref().

oldPrefs = sympref()
oldPrefs = 

  struct with fields:

           FourierParameters: [1×2 sym]
           HeavisideAtOrigin: [1×1 sym]
            AbbreviateOutput: 1
               TypesetOutput: 1
         FloatingPointOutput: 0
      PolynomialDisplayStyle: 'default'
    MatrixWithSquareBrackets: 0

Доступ к значению каждой символической настройки осуществляется путем обращения к полю структуры. Кроме того, можно использовать команду sympref(pref).

val1 = oldPrefs.FourierParameters
val2 = oldPrefs.HeavisideAtOrigin
val3 = sympref('FourierParameters')
val1 =
[ 1, -1]

val2 =
1/2

val3 =
[ 1, -1]

Для одновременного изменения нескольких символьных настроек можно создать структуру prefs который содержит значения настроек. Используйте команду sympref(prefs) для установки нескольких настроек.

prefs.FourierParameters = [1/(2*sym(pi) 1]
prefs.HeavisideAtOrigin = 1
sympref(prefs);

Поскольку символические настройки сохраняются в текущих и будущих сессиях MATLAB, необходимо восстановить предыдущие настройки. Восстановление сохраненных настроек с помощью sympref(oldPrefs).

sympref(oldPrefs);

Кроме того, можно задать значения по умолчанию для всех символьных настроек, указав 'default' вариант.

sympref('default');

Входные аргументы

свернуть все

Символьная настройка, заданная как символьный вектор или строка. Ниже приведены параметры значений для каждой символической настройки.

ПредпочтениеСтоимостьОписание
'FourierParameters'

Двухэлементный вектор строки [c,s]. Параметры c и s должны быть числовыми или символьными числами.

По умолчанию: sym([1,-1]).

Задайте значения параметров c и s в преобразовании Фурье:

F (w) =c∫−∞∞f (t) eiswtdt.

См. раздел Изменение значений параметров преобразования Фурье.

'HeavisideAtOrigin'

Скалярное значение, указанное как числовое или символьное число.

По умолчанию: sym(1/2).

Установка значения функции Heaviside heaviside(0) в начале координат.

См. раздел Изменение значения функции Heaviside в начале координат.

'AbbreviateOutput'

Логическое значение (логическое).

По умолчанию: логический 1 (true).

Укажите, следует ли использовать сокращенный формат вывода символьных переменных и выражений в интерактивных сценариях.

См. раздел Изменение отображения символьных выражений в интерактивных сценариях.

'TypesetOutput'

Логическое значение (логическое).

По умолчанию: логический 1 (true).

Введите или используйте символы ASCII для вывода символьных переменных и выражений в интерактивных сценариях.

См. раздел Изменение отображения символьных выражений в интерактивных сценариях.

'FloatingPointOutput'

Логическое значение (логическое).

По умолчанию: логический 0 (false).

Укажите, следует ли отображать символьные результаты в формате вывода с плавающей запятой.

true параметр value отображает символьные результаты в коротком фиксированном десятичном формате с 4 цифрами после десятичной точки.

См. раздел Отображение символьных результатов в формате с плавающей запятой.

'PolynomialDisplayStyle'

Символьный вектор или скалярная строка, указанная как 'default', 'ascend', или 'descend'.

По умолчанию: 'default'.

Отображение символьного многочлена в порядке по умолчанию, по возрастанию или по убыванию.

  • 'default' Опция сортирует вывод в алфавитном порядке, не различая различные символьные переменные в каждом мономиальном члене.

  • 'ascend' опция сортирует выходные данные в порядке возрастания на основе стандартной математической нотации для многочленов. Например, переменная x с наивысшим порядком в мономиальном члене отображается последним, которому предшествуют мономиальные члены, содержащие переменные y, z, t, sи так далее.

  • 'descend' опция сортирует выходные данные в порядке убывания на основе стандартной математической нотации для полиномов. Этот вариант прямо противоположен 'ascend'.

См. раздел Изменение порядка вывода символьного многочлена.

'MatrixWithSquareBrackets'

Логическое значение (логическое).

По умолчанию: логический 0 (false).

Задайте матрицы в круглых или круглых скобках в интерактивных сценариях.

См. раздел Изменение отображения символьной матрицы в интерактивных сценариях.

Значение символьной настройки, указанное как 'default' или допустимое значение указанной настройки pref.

Символьные настройки, заданные как массив структуры. Можно задать несколько настроек, объявив имена полей и допустимые значения настроек.

Выходные аргументы

свернуть все

Значение символьной настройки, возвращаемое в качестве допустимого значения. oldVal представляет существующее значение настройки pref перед вызовом на sympref.

Все символьные настройки, возвращаемые в виде массива структуры. oldPrefs представляют существующие значения всех настроек перед вызовом sympref.

Совет

  • clear команда не сбрасывает и не влияет на символьные установки. Использовать sympref для манипулирования символьными настройками.

  • Символьные настройки, заданные с помощью sympref также определить выходные данные, генерируемые latex и mathml функции.

  • Установка 'FloatingPointOutput' влияет только на формат вывода символьных чисел. Для изменения формата вывода числовых чисел используйте format функция. Для вычисления символьных чисел с помощью точности с плавающей запятой используйте vpa или digits функции.

Представлен в R2015a