torch.special.chebyshev_polynomial_v
function chebyshev_polynomial_v<S extends Shape>(x: Tensor<S, 'float32'>, n: number | Tensor, _options?: SpecialPolynomialOptions<S>): Tensor<S, 'float32'>Computes Chebyshev polynomial of the third kind V_n(x).
The Chebyshev polynomials of the third kind are orthogonal on (-1, 1) with weight function 1/√(1+x)·√(1-x) = 1/√(1-x²) but with asymmetric boundary conditions. They are less commonly used than T_n and U_n but appear in:
- Boundary value problems: different singularities at x = -1 vs x = 1
- Half-range approximations: when one endpoint is singular or excluded
- Specialized filter designs: requiring asymmetric frequency response
- Approximation theory: when boundary conditions are asymmetric (e.g., one end fixed, one free)
Relationship to other Chebyshev types: V_n and W_n form a complementary pair for asymmetric weight problems. Less common in practice but theoretically important for completeness of Chebyshev theory.
- Asymmetric boundaries: V_n(1) = 1 always; V_n(-1) = (-1)^n+1 (different from U_n)
- Same recurrence as T_n and U_n: Numerically efficient three-term recurrence
- Weight function: 1/√(1-x²) like T_n but with different phase in definition
- Rare usage: Less common than T_n/U_n; used for specialized asymmetric problems
- Less standard: Not as widely used; ensure compatibility with references
- Asymmetric properties: Different boundary behavior from T_n/U_n; affects approximations
Parameters
xTensor<S, 'float32'>- Input tensor with values in [-1, 1] (asymmetric behavior at boundaries)
nnumber | Tensor- Polynomial degree (non-negative integer). Can be scalar or Tensor
_optionsSpecialPolynomialOptions<S>optional
Returns
Tensor<S, 'float32'>– Tensor with V_n(x) valuesExamples
// Third kind evaluation
const x = torch.linspace(-1, 1, 5);
const V_0 = torch.special.chebyshev_polynomial_v(x, 0); // [1, 1, 1, 1, 1]
const V_1 = torch.special.chebyshev_polynomial_v(x, 1); // 2*x - 1
const V_2 = torch.special.chebyshev_polynomial_v(x, 2); // 4*x^2 - 3*x
// Asymmetric boundary conditions
const x_left = torch.tensor([-1.0]);
const x_right = torch.tensor([1.0]);
const V_n_left = torch.special.chebyshev_polynomial_v(x_left, 5); // Alternates sign
const V_n_right = torch.special.chebyshev_polynomial_v(x_right, 5); // Always 1
// Different boundary values vs first/second kind
// Half-range approximation problems
const x_half = torch.linspace(0, 1, 50); // Only half interval
const V_basis = torch.special.chebyshev_polynomial_v(x_half, 3);
// Natural for problems with asymmetric domainSee Also
- PyTorch torch.special.chebyshev_polynomial_v()
- torch.special.chebyshev_polynomial_t - First kind (symmetric, most common)
- torch.special.chebyshev_polynomial_w - Fourth kind (complement to V_n)