exponenta event banner

findSymType

Поиск символических подобъектов определенного типа

Описание

пример

X = findSymType(symObj,type) возвращает вектор символьных подобъектов типа type из символьного объекта symObj. Вход type должен быть чувствительным к регистру строковым скалярным или символьным вектором и может включать логическое выражение.

  • Если symObj не содержит символический подобъект типа type, то findSymType возвращает пустой скаляр.

  • Если symObj содержит несколько вложенных выражений типа type, то findSymType возвращает наибольшее совпадающее вложенное выражение.

пример

X = findSymType(symObj,funType,vars) возвращает вектор неназначенных символьных функций, зависящих от переменных vars из символьного ввода symObj.

Можно задать тип функции. funType кому 'symfunOf' или 'symfunDependingOn'. Например, syms f(x); findSymType(f,'symfunOf',x) прибыль f(x).

Примеры

свернуть все

Поиск и возврат определенных символьных чисел и констант в символьном выражении.

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

expr = sym('1/2')*pi + vpa(pi)
expr = 

π2+3.1415926535897932384626433832795sym(pi)/2 + vpa('3.1415926535897932384626433832795')

Найти символические числа типа 'integer'.

X = findSymType(expr,'integer')
X = (12)[sym(1), sym(2)]

Найти символические числа типа 'integer | real'.

X = findSymType(expr,'integer | real')
X = 

(123.1415926535897932384626433832795)[sym(1/2), vpa('3.1415926535897932384626433832795')]

Найти символические числа типа 'vpareal'.

X = findSymType(expr,'vpareal')
X = 3.1415926535897932384626433832795vpa('3.1415926535897932384626433832795')

Найти символические числа типа 'complex'.

X = findSymType(expr,'complex')
 
X =
 
Empty sym: 1-by-0
 

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

Теперь найдите символьную константу типа 'constant'.

X = findSymType(expr,'constant')
X = 

π2+3.1415926535897932384626433832795sym(pi)/2 + vpa('3.1415926535897932384626433832795')

При наличии нескольких вложенных выражений типа 'constant', findSymType возвращает наибольшее совпадающее вложенное выражение.

Поиск и возврат символьных переменных и функций в символьном уравнении.

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

syms y(t) k
eq = diff(y) + k*y == sin(y)
eq(t) = 

t y(t)+ky(t)=sin(y(t))diff(y(t), t) + k*y(t) == sin(y(t))

Поиск символьных переменных типа 'variable' в уравнении.

X = findSymType(eq,'variable')
X = (kt)[k, t]

Найти неназначенную символическую функцию типа 'symfun' в уравнении.

X = findSymType(eq,'symfun')
X = y(t)y(t)

Поиск символьной математической функции типа 'diff' в уравнении.

X = findSymType(eq,'diff')
X = 

t y(t)diff(y(t), t)

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

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

syms n f(x) g(x) y(x,t)
expr = x + f(x^n) + g(x)+ y(x,t)
expr = x+f(xn)+g(x)+y(x,t)x + f(x^n) + g(x) + y(x, t)

Найти неназначенные символические функции типа 'symfun' в выражении.

X = findSymType(expr,'symfun')
X = (f(xn)g(x)y(x,t))[f(x^n), g(x), y(x, t)]

Поиск символьных функций, зависящих от точной последовательности переменных [x t] использование 'symfunOf'.

X = findSymType(expr,'symfunOf',[x t])
X = y(x,t)y(x, t)

Поиск символьных функций, зависящих от переменной x с помощью 'symfunDependingOn'.

X = findSymType(expr,'symfunDependingOn',x)
X = (g(x)y(x,t))[g(x), y(x, t)]

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

свернуть все

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

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

Категория символьного типаСтроковые значения
числа
  • 'integer' - целые числа

  • 'rational' - рациональные числа

  • 'vpareal' - вещественные числа с плавающей запятой переменной точности

  • 'complex' - комплексные числа

  • 'real' - вещественные числа, в том числе 'integer', 'rational', и 'vpareal'

  • 'number' - номера, в т.ч. 'integer', 'rational', 'vpareal', 'complex', и 'real'

константы'constant' - символьные математические константы, в том числе 'number'
символьные математические функции'vpa', 'sin', 'exp', и так далее - символьные математические функции в символьных выражениях
неназначенные символические функции
  • 'F', 'g', и так далее - имя функции неназначенной символической функции

  • 'symfun' - неназначенные символические функции

арифметические операторы
  • 'plus' - оператор сложения + и оператор вычитания -

  • 'times' - оператор умножения * и оператор деления /

  • 'power' - оператор мощности или возведения в степень ^ оператор квадратного корня sqrt

переменные'variable' - символьные переменные
единицы'units' - символьные единицы
выражения'expression' - символьные выражения, включая все предшествующие символьные типы
логические выражения
  • 'or' - логический оператор OR |

  • 'and' - логический оператор И &

  • 'not' - логический оператор NOT ~

  • 'xor' - логический оператор исключающее ИЛИ xor

  • 'logicalconstant' - символьные логические константы symtrue и symfalse

  • 'logicalexpression' - логические выражения, в том числе 'or', 'and', 'not', 'xor', symtrue и symfalse

уравнения и неравенства
  • 'eq' - оператор равенства ==

  • 'ne' - оператор неравенства ~=

  • 'lt' - меньше оператора < или оператор «больше» >

  • 'le' - оператор меньше или равен <= или оператор «больше» или «равно» >=

  • 'equation' - символические уравнения и неравенства, в том числе 'eq', 'ne', 'lt', и 'le'

неподдерживаемые символьные типы

'unsupported' - неподдерживаемые символьные типы

Если symObj содержит несколько вложенных выражений типа type, то findSymType возвращает наибольшее подэкспрессию совпадения (самый верхний узел совпадения в древовидной структуре данных).

Тип функции, указанный как 'symfunOf' или 'symfunDependingOn'.

  • 'symfunOf' находит и возвращает неназначенные символьные функции, зависящие от точной последовательности переменных, заданных массивом vars. Например, syms f(x,y); findSymType(f,'symfunOf',[x y]) прибыль f(x,y).

  • 'symfunDependingOn' находит и возвращает неназначенные символьные функции, которые зависят от переменных, заданных массивом vars. Например, syms f(x,y); findSymType(f,'symfunDependingOn',x) прибыль f(x,y).

Входные переменные, определяемые как символьные переменные или символьный массив.

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