# Approximation

ANOVAapprox.approxType
approx

A struct to hold the scattered data function approximation.

Fields

• basis::String - basis of the function space; currently choice of "per" (exponential functions), "cos" (cosine functions), "cheb" (Chebyshev basis),"std"(transformed exponential functions), "chui1" (Haar wavelets), "chui2" (Chui-Wang wavelets of order 2),"chui3" (Chui-Wang wavelets of order 3) ,"chui4" (Chui-Wang wavelets of order 4)
• X::Matrix{Float64} - scattered data nodes with d rows and M columns
• y::Union{Vector{ComplexF64},Vector{Float64}} - M function values (complex for basis = "per", real ortherwise)
• U::Vector{Vector{Int}} - a vector containing susbets of coordinate indices
• N::Vector{Int} - bandwdiths for each ANOVA term
• trafo::GroupedTransform - holds the grouped transformation
• fc::Dict{Float64,GroupedCoefficients} - holds the GroupedCoefficients after approximation for every different regularization parameters

Constructor

approx( X::Matrix{Float64}, y::Union{Vector{ComplexF64},Vector{Float64}}, U::Vector{Vector{Int}}, N::Vector{Int}, basis::String = "cos" )

Additional Constructor

approx( X::Matrix{Float64}, y::Union{Vector{ComplexF64},Vector{Float64}}, ds::Int, N::Vector{Int}, basis::String = "cos" )
ANOVAapprox.approximateMethod
approximate( a::approx; lambda::Vector{Float64} = exp.(range(0, 5, length = 5)), max_iter::Int = 50, weights::Union{Vector{Float64},Nothing} = nothing, verbose::Bool = false, solver::String = "lsqr" )::Nothing

This function computes the approximation for the regularization parameters contained in lambda.

ANOVAapprox.evaluateMethod
evaluate( a::approx; λ::Float64 )::Union{Vector{ComplexF64},Vector{Float64}}

This function evaluates the approximation on the nodes a.X for the regularization parameter λ.

ANOVAapprox.evaluateMethod
evaluate( a::approx; X::Matrix{Float64}, λ::Float64 )::Union{Vector{ComplexF64},Vector{Float64}}

This function evaluates the approximation on the nodes X for the regularization parameter λ.

ANOVAapprox.evaluateMethod
evaluate( a::approx; X::Matrix{Float64} )::Dict{Float64,Union{Vector{ComplexF64},Vector{Float64}}}

This function evaluates the approximation on the nodes X for all regularization parameters.

ANOVAapprox.evaluateMethod
evaluate( a::approx )::Dict{Float64,Union{Vector{ComplexF64},Vector{Float64}}}

This function evaluates the approximation on the nodes a.X for all regularization parameters.

ANOVAapprox.evaluateANOVAtermsMethod
evaluateANOVAterms( a::approx; X::Matrix{Float64}, λ::Float64 )::Union{Matrix{ComplexF64},Matrix{Float64}}

This function evaluates the single ANOVA terms of the approximation on the nodes X for the regularization parameter λ.

ANOVAapprox.evaluateANOVAtermsMethod
evaluateANOVAterms( a::approx; X::Matrix{Float64} )::Dict{Float64,Union{Matrix{ComplexF64},Matrix{Float64}}}

This function evaluates the single ANOVA terms of the approximation on the nodes X for all regularization parameters.

ANOVAapprox.evaluateSHAPtermsMethod
evaluateSHAPterms( a::approx; X::Matrix{Float64}, λ::Float64 )::Union{Matrix{ComplexF64},Matrix{Float64}}

This function evaluates for each dimension the Shapley contribution to the overall approximation on the nodes X for the regularization parameter λ.

ANOVAapprox.evaluateSHAPtermsMethod
evaluateSHAPterms( a::approx; X::Matrix{Float64} )::Dict{Float64,Union{Matrix{ComplexF64},Matrix{Float64}}}

This function evaluates for each dimension the Shapley contribution to the overall approximation on the nodes X for all regularization parameters.