std:: assoc_laguerre, std:: assoc_laguerref, std:: assoc_laguerrel
|
double
assoc_laguerre
(
unsigned
int
n,
unsigned
int
m,
double
x
)
;
double
assoc_laguerre
(
unsigned
int
n,
unsigned
int
m,
float
x
)
;
|
(1) | |
|
double
assoc_laguerre
(
unsigned
int
n,
unsigned
int
m, IntegralType x
)
;
|
(2) | |
Как и все специальные функции,
assoc_laguerre
гарантированно доступна только в
<cmath>
если
__STDCPP_MATH_SPEC_FUNCS__
определено реализацией со значением не менее 201003L и если пользователь определяет
__STDCPP_WANT_MATH_SPEC_FUNCS__
до включения любых заголовков стандартной библиотеки.
Содержание |
Параметры
| n | - | степень полинома, значение беззнакового целочисленного типа |
| m | - | порядок полинома, значение беззнакового целочисленного типа |
| x | - | аргумент, значение с плавающей точкой или целочисленного типа |
Возвращаемое значение
If no errors occur, value of the associated Laguerre polynomial of x , that is (-1) m|
d
m
|
|
dx
m
|
Обработка ошибок
Ошибки могут сообщаться, как указано в math_errhandling .
- Если аргумент равен NaN, возвращается NaN и ошибка домена не сообщается.
- Если x отрицательный, может возникнуть ошибка домена.
- Если n или m больше или равно 128, поведение определяется реализацией.
Примечания
Реализации, которые не поддерживают TR 29124, но поддерживают TR 19768, предоставляют эту функцию в заголовочном файле
tr1/cmath
и пространстве имён
std::tr1
.
Реализация этой функции также доступна в boost.math .
Связанные полиномы Лагерра являются полиномиальными решениями уравнения
xy
,,
+ (m + 1 - x)y
,
+ ny = 0
.
Первые несколько:
-
assoc_laguerre(0, m, x)= 1. -
assoc_laguerre(1, m, x)= -x + m + 1 . -
assoc_laguerre(2, m, x)=
[x 21 2
- 2(m + 2)x + (m + 1)(m + 2)] . -
assoc_laguerre(3, m, x)=
[-x 31 6
- 3(m + 3)x 2
- 3(m + 2)(m + 3)x + (m + 1)(m + 2)(m + 3)] .
Пример
#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1 #include <cmath> #include <iostream> double L1(unsigned m, double x) { return -x + m + 1; } double L2(unsigned m, double x) { return 0.5 * (x * x - 2 * (m + 2) * x + (m + 1) * (m + 2)); } int main() { // выборочные проверки std::cout << std::assoc_laguerre(1, 10, 0.5) << '=' << L1(10, 0.5) << '\n' << std::assoc_laguerre(2, 10, 0.5) << '=' << L2(10, 0.5) << '\n'; }
Вывод:
10.5=10.5 60.125=60.125
Смотрите также
|
Полиномы Лагерра
(функция) |
Внешние ссылки
| Вайсштейн, Эрик В. "Associated Laguerre Polynomial." Из MathWorld — веб-ресурс Wolfram. |