Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Laguerre (and Associated) Polynomials

Boost , Math Toolkit 2.5.0 , Polynomials

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
Synopsis
#include <boost/math/special_functions/laguerre.hpp>
namespace boost{ namespace math{
template <class T>
calculated-result-type laguerre(unsigned n, T x);
template <class T, class Policy>
calculated-result-type laguerre(unsigned n, T x, const Policy&);
template <class T>
calculated-result-type laguerre(unsigned n, unsigned m, T x);
template <class T, class Policy>
calculated-result-type laguerre(unsigned n, unsigned m, T x, const Policy&);
template <class T1, class T2, class T3>
calculated-result-type laguerre_next(unsigned n, T1 x, T2 Ln, T3 Lnm1);
template <class T1, class T2, class T3>
calculated-result-type laguerre_next(unsigned n, unsigned m, T1 x, T2 Ln, T3 Lnm1);
}} // namespaces
Description

Тип возврата этих функций вычисляется с использованием правил расчета типа результата.: Обратите внимание, что при наличии одного аргумента шаблона результат является тем же типом, что и этот аргумент, или<double>, если аргумент шаблона является целым типом.

Конечный аргументПолитикаявляется необязательным и может использоваться для контроля поведения функции: как она обрабатывает ошибки, какой уровень точности использовать и т. д. См. документациюдля более подробной информации.

template <class T>
calculated-result-type laguerre(unsigned n, T x);
template <class T, class Policy>
calculated-result-type laguerre(unsigned n, T x, const Policy&);

Возвращает значение многочлена Лагера порядкаnв точкеx:

Следующий график иллюстрирует поведение первых нескольких полиномов Лагера:

template <class T>
calculated-result-type laguerre(unsigned n, unsigned m, T x);
template <class T, class Policy>
calculated-result-type laguerre(unsigned n, unsigned m, T x, const Policy&);

Возвращает ассоциированный многочлен Лагерра степениnи порядкамв точкеx:

template <class T1, class T2, class T3>
calculated-result-type laguerre_next(unsigned n, T1 x, T2 Ln, T3 Lnm1);

Реализует три термина рекуррентного отношения для многочленов Лагера, эта функция может быть использована для создания последовательности значений, оцененных при том жеx, и для повышенияn.

Например, мы могли бы создать вектор первых 10 полиномиальных значений, используя:

double x = 0.5;  // Abscissa value
vector<double> v;
v.push_back(laguerre(0, x)).push_back(laguerre(1, x));
for(unsigned l = 1; l < 10; ++l)
   v.push_back(laguerre_next(l, x, v[l], v[l-1]));

Формально аргументами являются:

n

Степеньnпоследнего вычисленного полинома.

x

значение абсциссы

Ln

Значение полинома оценивается на уровнеn.

Lnm1

Значение полинома оценивается на уровнеn-1.

template <class T1, class T2, class T3>
calculated-result-type laguerre_next(unsigned n, unsigned m, T1 x, T2 Ln, T3 Lnm1);

Реализует три термина рекуррентного отношения для ассоциированных многочленов Лагера, эта функция может быть использована для создания последовательности значений, оцененных при том жеx, и для повышения степениn.

Например, мы могли бы создать вектор первых 10 полиномиальных значений, используя:

double x = 0.5;  // Abscissa value
int m = 10;      // order
vector<double> v;
v.push_back(laguerre(0, m, x)).push_back(laguerre(1, m, x));
for(unsigned l = 1; l < 10; ++l)
   v.push_back(laguerre_next(l, m, x, v[l], v[l-1]));

Формально аргументами являются:

n

Степень последнего вычисленного полинома.

m

Порядок ассоциированного полинома.

x

Ценность абсциссы.

Ln

Значение полинома оценивается на уровнеn.

Lnm1

Значение полинома оценивается на уровнеn-1.

Accuracy

Следующая таблица показывает пиковые ошибки (в единицах эпсилона) для различных областей входных аргументов. Обратите внимание, что только результаты для самого широкого типа с плавающей запятой в системе приведены, поскольку более узкие типы имеютфактически нулевую ошибку.

Table 6.35. Error rates for laguerre(n, x)

Microsoft Visual C++ версия 12.0
Win32

GNU C++ версия 5.1.0
Linux
Double

GNU C++ версия 5.1.0
Linux
длинный двойной

Солнечный компилятор версии 0x5130
Солнечный солярис

Лагерские полиномы

Макс = 3.1e+003ε (Средний = 185ε)

Max = 6.82ε (Mean = 0.408ε)

GSL 1.16:Max = 3.1e+03ε (Mean = 185ε)]

Макс = 1.39e+04ε (Средний = 828ε)
:Макс = 4.2e+03ε (Средний = 251ε)]

Макс = 1.39e+04ε (Средний = 828ε)


Table 6.36. Error rates for laguerre(n, m, x)

Microsoft Visual C++ версия 12.0
Win32

GNU C++ версия 5.1.0
Linux
Double

GNU C++ версия 5.1.0
Linux
длинный двойной

Солнечный компилятор версии 0x5130
Солнечный солярис

Ассоциированные полиномы Лагерра

Макс = 434ε (Средний = 11.1ε)

Макс = 0,84ε (Средний = 0,0358ε)

GSL 1.16:Макс = 434ε (Средний = 10,7ε)]

Макс = 167ε (Mean = 6.38ε)

:Макс = 206ε (Mean = 6.86ε)]

Макс = 167ε (Средний = 6.38ε)


Обратите внимание, что худшие ошибки происходят, когда степень увеличивается, значения, превышающие ~ 120, очень маловероятны для получения разумных результатов, особенно в связанном полиномиальном случае, когда порядок также велик. Кроме того, относительные ошибки могут расти произвольно, когда функция очень близка к корню.

Testing

Используется смесь точечных тестов значений, рассчитанных с помощью functions.wolfram.com, и случайно сгенерированных тестовых данных: тестовые данные были вычислены с использованиемNTL::RRс 1000-битной точностью.

Implementation

Эти функции реализуются с использованием устойчивых трех терминов рекуррентных отношений. Эти отношения гарантируют низкую абсолютную ошибку, но не могут гарантировать низкую относительную ошибку вблизи одного из корней полиномов.


PrevUpHomeNext

Статья Laguerre (and Associated) Polynomials раздела Math Toolkit 2.5.0 Polynomials может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Polynomials ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-04 21:29:42/0.0072228908538818/0