Re
Действительная часть арифметического выражения
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
Re(z
) Re(L
)
Re(z)
возвращает действительную часть z
.
Надлежащее использование Re
для постоянных арифметических выражений. Специально для чисел, типа DOM_INT
, DOM_RAT
, DOM_FLOAT
, или DOM_COMPLEX
, действительная часть вычисляется непосредственно и очень эффективно.
Re
может обработать символьные выражения. Свойства идентификаторов учтены. Смотрите assume
. Идентификатор без любого свойства принят, чтобы быть комплексным. Смотрите Пример 2.
Если Re
не может извлечь целую действительную часть символьного выражения z
, затем возвращенное выражение содержит символьный Re
и Im
вызовы. В таких случаях попытайтесь использовать rectform
функция. Смотрите Пример 3. Обратите внимание на то, что использование rectform
является в вычислительном отношении дорогим.
Re
функция автоматически сопоставлена со всеми записями контейнерных объектов, такими как массивы, списки, матрицы, полиномы, наборы и таблицы.
Эта функция чувствительна к свойствам набора идентификаторов через assume
.
Действительная часть 2 e1 + i:
Re(2*exp(1 + I))
Re
не может извлечь действительную часть символьных выражений, содержащих идентификаторы без значения. Однако в некоторых случаях это может все еще упростить входное выражение, как в следующем двум примерам:
Re(u + v*I)
Re(z + 2*I)
По умолчанию идентификаторы без значения приняты, чтобы представлять произвольные комплексные числа. Можно использовать assume
изменить это. Следующая команда говорит систему что z
представляет только вещественные числа:
assume(z, Type::Real): Re(z + 2)
unassume(z)
Если Re
не может извлечь действительную часть символьного выражения, попытаться использовать функциональный rectform
. Это разделяет сложное выражение z в его действительную и мнимую часть и более мощно, чем Re
:
Re(exp(I*sin(z))); r := rectform(exp(I*sin(z)))
Затем используйте Re(r)
извлекать действительную часть r
:
Re(r)
Символьные выражения типа "Re"
всегда имейте свойство Type::Real
, даже если никакой идентификатор символьного выражения не имеет свойство:
is(Re(sin(2*x)), Type::Real)
Можно расширить функции Re
и Im
к их собственным специальным математическим функциям. Смотрите раздел “Algorithms”. Для этого встройте свою математическую функцию в функцию environmentf
и реализуйте поведение функций Re
и Im
для этой функции как пазы "Re"
и "Im"
из функциональной среды.
Если подвыражение формы f(u,..)
происходит в z
, затем Re
и Im
издайте приказ f::Re(u,..)
и f::Im(u,..)
, соответственно, к стандартной программе паза, чтобы определить действительное и мнимую часть f(u,..)
, соответственно.
Например, расширьте функциональный Re
для синусоидальной функции. Конечно, функциональная среда sin
уже имеет "Re"
паз. Вызовите свою функциональную среду Sin
для того, чтобы не перезаписать существующую системную функцию sin
:
Sin := funcenv(Sin): Sin::Re := proc(u) // compute Re(Sin(u)) local r, s; begin r := Re(u); if r = u then return(Sin(u)) elif not has(r, {hold(Im), hold(Re)}) then s := Im(u); if not has(s, {hold(Im), hold(Re)}) then return(Sin(r)*cosh(s)) end_if end_if; return(FAIL) end:
Re(Sin(2)), Im(Sin(3*I)), Re(Sin(2 + 3*I))
Возвращаемое значение FAIL
говорит функциональный Re
тот Sin::Re
не могло определить действительную часть входного выражения. Результатом является затем символьный Re
вызов:
Re(2 + Sin(f(z)))
арифметическое выражение или контейнерный объект, содержащий такие выражения
z
Если подвыражение формы f(u,...)
происходит в z
и f
функциональная среда, затем Re
попытки вызвать паз "Re"
'off'
определить действительную часть f(u,...)
. Таким образом можно расширить функциональность Re
к вашим собственным специальным математическим функциям.
Паз "Re"
вызван аргументами u
'off'
. Если стандартная программа паза f::Re
не может определить действительную часть f(u,...)
, затем это должно возвратить FAIL
.
Если f
не имеет паза "Re"
, или если стандартная программа паза f::Re
возвращает FAIL
, затем f(u,...)
заменяется символьным вызовом Re(f(u,...))
в возвращенном выражении. Смотрите Пример 5.
Точно так же, если элемент d
из библиотеки domainT
происходит как подвыражение z
, затем Re
попытки вызвать паз "Re"
из той области с d
в качестве аргумента, чтобы вычислить действительную часть d
.
Если стандартная программа паза T::Re
не может определить действительную часть d
, затем это возвращает FAIL
.
Если T
не имеет паза "Re"
, или если стандартная программа паза T::Re
возвращает FAIL
, затем d
заменяется символьным вызовом Re(d)
в возвращенном выражении.