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