Экспоненциальная интегральная функция
Вычислите экспоненциальные интегралы для чисел с плавающей запятой. Поскольку эти числа не являются символическими объектами, вы получаете результаты с плавающей точкой.
s = [expint(1/3), expint(1), expint(-2)]
s = 0.8289 + 0.0000i 0.2194 + 0.0000i -4.9542 - 3.1416i
Вычислите экспоненциальные интегралы для тех же чисел, преобразованных в символические объекты. Для положительных значений x
, expint(x)
возвращает -ei(-x)
. Для отрицательных значений x
, возвращается -pi*i - ei(-x)
.
s = [expint(sym(1)/3), expint(sym(1)), expint(sym(-2))]
s = [ -ei(-1/3), -ei(-1), - ei(2) - pi*1i]
Использовать vpa
чтобы аппроксимировать этот результат с 10-значной точностью.
vpa(s, 10)
ans = [ 0.8288877453, 0.2193839344, - 4.954234356 - 3.141592654i]
При вычислении экспоненциальных интегралов с двумя аргументами преобразуйте числа в символические объекты.
s = [expint(2, sym(1)/3), expint(sym(1), Inf), expint(-1, sym(-2))]
s = [ expint(2, 1/3), 0, -exp(2)/4]
Использование vpa
аппроксимировать этот результат с 25-значной точностью.
vpa(s, 25)
ans = [ 0.4402353954575937050522018, 0, -1.847264024732662556807607]
Вычислите экспоненциальные интегралы с двумя аргументами. Если n
является непозитивным целым числом, тогда expint(n, x)
возвращает явное выражение в форме exp(-x)*p(1/x)
, где p
является полиномом степени 1 - n
.
syms x expint(0, x) expint(-1, x) expint(-2, x)
ans = exp(-x)/x ans = exp(-x)*(1/x + 1/x^2) ans = exp(-x)*(1/x + 2/x^2 + 2/x^3)
Вычислите первую, вторую и третью производные экспоненциального интеграла с одним аргументом.
syms x diff(expint(x), x) diff(expint(x), x, 2) diff(expint(x), x, 3)
ans = -exp(-x)/x ans = exp(-x)/x + exp(-x)/x^2 ans = - exp(-x)/x - (2*exp(-x))/x^2 - (2*exp(-x))/x^3
Вычислите первые производные двухаргументного экспоненциала интеграла.
syms n x diff(expint(n, x), x) diff(expint(n, x), n)
ans = -expint(n - 1, x) ans = - hypergeom([1 - n, 1 - n], [2 - n, 2 - n],... -x)/(n - 1)^2 - (x^(n - 1)*pi*(psi(n) - ... log(x) + pi*cot(pi*n)))/(sin(pi*n)*gamma(n))
Вызывающие expint
для чисел, которые не являются символическими объектами, MATLAB® expint
функция. Эта функция принимает только один аргумент. Чтобы вычислить экспоненциальный интеграл с двумя аргументами, используйте sym
преобразование чисел в символические объекты и вызов expint
для этих символических объектов. Можно аппроксимировать результаты с числа с плавающей запятой vpa
.
Следующие значения экспоненциального интеграла отличаются от значений, возвращаемых MATLAB expint
функция: expint(sym(Inf)) = 0
, expint(-sym(Inf)) = -Inf
, expint(sym(NaN)) = NaN
.
Для положительных реальных x
, expint(x) = -ei(-x)
. Для отрицательных реальных x
, expint(x) = -pi*i - ei(-x)
.
Если один входной параметр является скаляром, а другой аргумент является вектором или матрицей, то expint(n,x)
расширяет скаляр в вектор или матрицу того же размера, что и другой аргумент со всеми элементами, равными этому скаляру.
Отношение между expint
и ei
является
expint(1,-x) = ei(x) + (ln(x)-ln(1/x))/2 - ln(-x)
Обе функции ei(x)
и expint(1,x)
имеют логарифмическую особенность в источник и разрез ветви вдоль отрицательной действительной оси. ei
функция не непрерывна при приближении сверху или ниже этого разреза ветви.
expint
функция связана с верхней неполной гамма-функцией igamma
как
expint(n,x) = (x^(n-1))*igamma(1-n,x)