3+ dim calculus operator do not work and Syntax proposal
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comience con los puntos de entrada Integral y Derivative y con la implementación DefaultIntegral en Operators/banded/CalculusOperator.jl, que aparece en el stack trace. Reproduzca los ejemplos de espacios tensoriales y tridimensionales y, después, siga los fallos de conversión y de aplicación del operador de Kronecker. La tarea terminada debe incluir integración y diferenciación en dimensiones superiores, incluida la sintaxis solicitada para la selección de variables y el comportamiento correspondiente para DefiniteIntegral.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Currently,
julia> Derivative(Chebyshev()^2, [1,0])
DerivativeWrapper : Chebyshev() ⊗ Chebyshev() → Ultraspherical(1) ⊗ Chebyshev()
0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ⋯
0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 ⋱
0.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0 ⋱
0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 ⋱
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 0.0 ⋱
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 ⋱
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ⋱
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ⋱
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ⋱
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ⋱
⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱
julia> Integral(Chebyshev()^2, [1,0])
ERROR: Implement Integral(Chebyshev() ⊗ Chebyshev(),[1, 0])
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:35
[2] DefaultIntegral(sp::TensorSpace{Tuple{Chebyshev{ChebyshevInterval{Float64}, Float64}, Chebyshev{ChebyshevInterval{Float64}, Float64}}, DomainSets.FixedIntervalProduct{2, Float64, ChebyshevInterval{Float64}}, Float64}, k::Vector{Int64})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/VD9Rj/src/Operators/banded/CalculusOperator.jl:41
[3] Integral(::TensorSpace{Tuple{Chebyshev{ChebyshevInterval{Float64}, Float64}, Chebyshev{ChebyshevInterval{Float64}, Float64}}, DomainSets.FixedIntervalProduct{2, Float64, ChebyshevInterval{Float64}}, Float64}, ::Vararg{Any})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/VD9Rj/src/Operators/banded/CalculusOperator.jl:53
[4] top-level scope
@ REPL[94]:1
Integral(Chebyshev()) ⊗ I
KroneckerOperator : Chebyshev() ⊗ ApproxFunBase.UnsetSpace() → Chebyshev() ⊗ ApproxFunBase.UnsetSpace()
It would be nice to have a Syntax for Integral(Chebyshev()^2, [1,0]) for integration over the first variable as well as for DefiniteIntegral.
Furthermore, currently the following throws an error:
julia> Op = Integral(Chebyshev()) ⊗ I ⊗ I
KroneckerOperator : Chebyshev() ⊗ ApproxFunBase.UnsetSpace() ⊗ ApproxFunBase.UnsetSpace() → Chebyshev() ⊗ ApproxFunBase.UnsetSpace() ⊗ ApproxFunBase.UnsetSpace()
julia> f3 = Fun(Chebyshev()^3, rand(20));
julia> Op * f3
ERROR: Implement Conversion from Chebyshev{ChebyshevInterval{Float64}, Float64} to TensorSpace{Tuple{Chebyshev{ChebyshevInterval{Float64}, Float64}, ApproxFunBase.UnsetSpace}, DomainSets.VcatDomain{2, Float64, (1, 1), Tuple{ChebyshevInterval{Float64}, DomainSets.FullSpace{Float64}}}, Union{}}
Stacktrace:
as well as the same for the Derivative.
Maybe I am misusing the package for something it is not intended to be, but I want to use it for implementing closed form integration, marginalization, and derivatives of SOS polynomials and therefore would need this operations for higher dimensions.
@jishnub Do you have an advice for me where I have to start for implementing this?
- Lenguaje dominante
- Julia
- Estrellas
- 13
- Forks
- 13
- Merge medio
- 23 h
- PR fusionados (30 d)
- 2
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JuliaApproximation/ApproxFunBase.jl
-
tagbot-manual
Dificultad 1/5 1-3 horas Aptitud para principiantes 62/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
JuliaApproximation/ApproxFunBase.jl#86 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
JuliaApproximation/ApproxFunBase.jl#81 · 10 comentarios ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
JuliaApproximation/ApproxFunBase.jl#8 · 1 reacción ·
Todos los issues de JuliaApproximation/ApproxFunBase.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
SciML/OrdinaryDiffEq.jl#4875 ·
Los mantenedores suelen responder en 3 días
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
SciML/NonlinearSolve.jl#1372 ·
Los mantenedores suelen responder en 1 día
-
Truncated discrete ccdf and logccdf return incorrect values at the lower atomPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
JuliaStats/Distributions.jl#2095 ·
-
documentation 📜 microphysics💧 ❄️
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
NumericalEarth/Breeze.jl#1073 ·
Los mantenedores suelen responder en 1 día