[Dev] Align the costate and dual signs of the JuMP models with OptimalControl
Les mainteneurs répondent en général sous 1 jour
@ocots y travaille déjà.
Depuis le 4/11/2026.
Évaluation
Cette issue n'a pas encore été évaluée.
Description
Context
On the same problem and the same scheme (trapezoidal rule), the costate returned by the JuMP accessor costate(model) is the opposite of the costate of the OptimalControl solution. Example on beam, N = 100, trapezoid, Ipopt: objectives agree (8.89860 in both), but
OptimalControl costate(sol)(0.5) = [ 4.2e-6, 0.00795]
JuMP costate(model)(0.5) = [-2.3e-5, -0.00800]
The documentation works around it by plotting -p(t) for JuMP (docs/src/tutorial-solve.md, docs/problems.jl), and the comparison tests do not compare costates.
What to do (later)
- Apply the sign conventions of ct-conventions
rules/signs.md(SGN1–SGN6, v0.10.0) to the JuMP side: costate and, when they are exposed, the duals of the constraints, so that the same constraint has the same dual in both modelings (SGN5). - Follow the ecosystem work on multipliers and duals: https://github.com/orgs/control-toolbox/discussions/68#discussioncomment-19323512 (not done yet); this issue waits for it.
- Then remove the
-p(t)workaround from the docs and add costate comparisons to the comparison tests.
Related: #283 (port to OptimalControl v2, JuMP → Solution), #284 (JuMP schemes), #170.
- Langage dominant
- Julia
- Étoiles
- 13
- Forks
- 1
- Merge moyen
- 3 h 24 min
- PR mergées (30 j)
- 34
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de control-toolbox/OptimalControlProblems.jl
-
[Dev] One source of truth per problem, and the equality of the modelings checked by computationPeut-être pris @ocots l’a pris il y a 1 jour. Ouverte
control-toolbox/OptimalControlProblems.jl#391 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
[Cron] cron-failureOuvertecron-failure
Difficulté 4/5 1-2 jours Accessibilité débutants 25/100
control-toolbox/OptimalControlProblems.jl#381 ·
Les mainteneurs répondent en général sous 1 jour
-
[Metadata] Declared fields: tags, references, Corleone, reference solutionPeut-être pris @ocots l’a pris il y a 1 jour. Ouverte
control-toolbox/OptimalControlProblems.jl#379 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
[Metadata] Shared initial guess in the metadata, read by every modelingPeut-être pris @ocots l’a pris il y a 1 jour. Ouverte
control-toolbox/OptimalControlProblems.jl#377 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
[Dev] Precompile the problems so that users and tests do not recompile them every timePeut-être pris @ocots l’a pris il y a 1 jour. Ouverte
control-toolbox/OptimalControlProblems.jl#373 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de control-toolbox/OptimalControlProblems.jl
Issues similaires
-
lux
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
JuliaGraphs/GraphNeuralNetworks.jl#732 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
Add project: Typst_jll.jlPeut-être pris @github-actions l’a pris il y a 1 jour. Ouverteadd-project
Difficulté 1/5 Moins d'une heure Accessibilité débutants 76/100
YDX-2147483647/best-of-typst#590 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100