|
LMCAS
Lamina Computer Algebra System
|
命名空间 | |
| namespace | anonymous_namespace{ode_characteristic_roots.cpp} |
类 | |
| struct | CharRoot |
| struct | Complex |
类型定义 | |
| using | RealPolynomial = std::vector<double> |
函数 | |
| RealPolynomial | approximate_polynomial_gcd (RealPolynomial lhs, RealPolynomial rhs) |
| std::pair< RealPolynomial, RealPolynomial > | divide_polynomials (const RealPolynomial ÷nd, const RealPolynomial &divisor) |
| Result< std::vector< CharRoot > > | find_characteristic_roots (const std::vector< double > &coeffs, const std::string &operation) |
| 使用数值方法求解特征多项式的所有根. | |
| bool | is_exact_zero_polynomial_root (const RealPolynomial &coefficients, const Complex &root) |
| RealPolynomial | monic_polynomial (RealPolynomial polynomial) |
| RealPolynomial | polynomial_derivative (const RealPolynomial &polynomial) |
| bool | polynomial_remainder_is_small (const RealPolynomial &remainder, const RealPolynomial ÷nd) |
| double | polynomial_root_backward_error (const RealPolynomial &coefficients, const Complex &root) |
| double | polynomial_scale (const RealPolynomial &polynomial) |
| void | trim_polynomial (RealPolynomial &polynomial) |
| struct LMCAS::ode_root_detail::CharRoot |
在文件 ode_polynomial_utils.hpp 第 12 行定义.
| 类成员 | ||
|---|---|---|
| double | imag_part | |
| bool | is_complex | |
| int | multiplicity | |
| double | real_part | |
| using LMCAS::ode_root_detail::RealPolynomial = std::vector<double> |
在文件 ode_polynomial_utils.hpp 第 10 行定义.
|
inline |
在文件 ode_polynomial_utils.hpp 第 150 行定义.
引用了 approximate_polynomial_gcd(), divide_polynomials(), monic_polynomial() , 以及 LMCAS::rhs.
被这些函数引用 approximate_polynomial_gcd() , 以及 LMCAS::ode_root_detail::anonymous_namespace{ode_characteristic_roots.cpp}::repeated_characteristic_roots().
|
inline |
在文件 ode_polynomial_utils.hpp 第 98 行定义.
引用了 divide_polynomials() , 以及 trim_polynomial().
被这些函数引用 approximate_polynomial_gcd(), divide_polynomials(), LMCAS::ode_root_detail::anonymous_namespace{ode_characteristic_roots.cpp}::recover_root_multiplicities() , 以及 LMCAS::ode_root_detail::anonymous_namespace{ode_characteristic_roots.cpp}::repeated_characteristic_roots().
| Result< std::vector< CharRoot > > LMCAS::ode_root_detail::find_characteristic_roots | ( | const std::vector< double > & | coeffs, |
| const std::string & | operation ) |
使用数值方法求解特征多项式的所有根.
对于一、二次多项式使用解析公式;对于三至六次多项式使用 Durand-Kerner 迭代。迭代前通过多项式与其导数的近似 GCD 识别并提取重根。
在文件 ode_characteristic_roots.cpp 第 338 行定义.
引用了 find_characteristic_roots(), LMCAS::NumericFailure , 以及 LMCAS::roots().
被这些函数引用 find_characteristic_roots(), LMCAS::ode_root_detail::anonymous_namespace{ode_characteristic_roots.cpp}::repeated_characteristic_roots(), LMCAS::solve_euler_ode_impl(), LMCAS::solve_higher_order_ode_impl() , 以及 LMCAS::solve_linear2_homogeneous().
|
inline |
在文件 ode_polynomial_utils.hpp 第 49 行定义.
引用了 LMCAS::ode_root_detail::Complex::im, is_exact_zero_polynomial_root() , 以及 LMCAS::ode_root_detail::Complex::re.
被这些函数引用 is_exact_zero_polynomial_root() , 以及 polynomial_root_backward_error().
|
inline |
在文件 ode_polynomial_utils.hpp 第 125 行定义.
引用了 monic_polynomial() , 以及 trim_polynomial().
被这些函数引用 approximate_polynomial_gcd() , 以及 monic_polynomial().
|
inline |
在文件 ode_polynomial_utils.hpp 第 135 行定义.
被这些函数引用 polynomial_derivative() , 以及 LMCAS::ode_root_detail::anonymous_namespace{ode_characteristic_roots.cpp}::repeated_characteristic_roots().
|
inline |
在文件 ode_polynomial_utils.hpp 第 166 行定义.
引用了 LMCAS::e(), polynomial_remainder_is_small() , 以及 polynomial_scale().
被这些函数引用 polynomial_remainder_is_small(), LMCAS::ode_root_detail::anonymous_namespace{ode_characteristic_roots.cpp}::recover_root_multiplicities() , 以及 LMCAS::ode_root_detail::anonymous_namespace{ode_characteristic_roots.cpp}::repeated_characteristic_roots().
|
inline |
在文件 ode_polynomial_utils.hpp 第 54 行定义.
引用了 is_exact_zero_polynomial_root(), LMCAS::ode_root_detail::Complex::magnitude(), polynomial_root_backward_error() , 以及 LMCAS::value.
被这些函数引用 LMCAS::ode_root_detail::anonymous_namespace{ode_characteristic_roots.cpp}::classify_characteristic_roots(), LMCAS::ode_root_detail::anonymous_namespace{ode_characteristic_roots.cpp}::iterate_characteristic_roots(), polynomial_root_backward_error() , 以及 LMCAS::ode_root_detail::anonymous_namespace{ode_characteristic_roots.cpp}::quadratic_characteristic_roots().
|
inline |
在文件 ode_polynomial_utils.hpp 第 77 行定义.
引用了 polynomial_scale().
被这些函数引用 polynomial_remainder_is_small(), polynomial_scale() , 以及 trim_polynomial().
|
inline |
在文件 ode_polynomial_utils.hpp 第 85 行定义.
引用了 LMCAS::e(), polynomial_scale() , 以及 trim_polynomial().
被这些函数引用 divide_polynomials(), monic_polynomial() , 以及 trim_polynomial().