Approximation
ANOVAapprox.approx
— Typeapprox
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 columnsy::Union{Vector{ComplexF64},Vector{Float64}}
- M function values (complex forbasis = "per"
, real ortherwise)U::Vector{Vector{Int}}
- a vector containing susbets of coordinate indicesN::Vector{Int}
- bandwdiths for each ANOVA termtrafo::GroupedTransform
- holds the grouped transformationfc::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.approximate
— Methodapproximate( 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.evaluate
— Methodevaluate( a::approx; λ::Float64 )::Union{Vector{ComplexF64},Vector{Float64}}
This function evaluates the approximation on the nodes a.X
for the regularization parameter λ
.
ANOVAapprox.evaluate
— Methodevaluate( 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.evaluate
— Methodevaluate( 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.evaluate
— Methodevaluate( a::approx )::Dict{Float64,Union{Vector{ComplexF64},Vector{Float64}}}
This function evaluates the approximation on the nodes a.X
for all regularization parameters.
ANOVAapprox.evaluateANOVAterms
— MethodevaluateANOVAterms( 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.evaluateANOVAterms
— MethodevaluateANOVAterms( 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.evaluateSHAPterms
— MethodevaluateSHAPterms( 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.evaluateSHAPterms
— MethodevaluateSHAPterms( 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.