
Похож напредыдущий вопрос, мне нужно построить двухуровневую оптимизацию. Предыдущий вопрос получилхороший ответза исключением того, что мне нужно пронумеровать каждое уравнение, даже те, которые находятся во вложенном aligned
блоке.
Какой самый простой способ изменить структуру ниже для поддержки количества всех уравнений? Вложенный aligned
блок выдает ошибку компиляции, если его изменить на align
.
МВЭ(базовая структура предоставлена @sergei-golovan)
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\st}{s.t.}
\begin{document}
\begin{align}
\min \limits_{\mathbf{x}, \mathbf{y}} \quad & {-}2x_1^2 + x_2^2 - 6y_1 + y_2^2 \\
\st \quad & x_1^3 + 3x_2 - 10 \le 0 \\
& \begin{aligned}
\st \quad & {-}x_1 + 2x_1 - x_2^2 \le 0\\
& {-}x_1 + 2x_2 \le 0
\end{aligned}
\end{align}
\end{document}
решение1
Вот две возможности пакета optidef
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{optidef}
\DeclareMathOperator{\st}{s.t.}
\begin{document}
\begin{mini!}|s|
{\mathbf{x, y}}{-2x_1^2 + x_2^2 - 6y_1 + y_2^2}{\label{objective}}{}
\addConstraint{x_1^3 + 3x_2 - 10}{\le 0 \label{ineq:C1}}
\addConstraint{-x_1 + 2x_1 - x_2^2}{\le 0\label{ineq:C2}}
\addConstraint{-x_1 + 2x_2}{\le 0\label{ineq:C3}}
\end{mini!}
\begin{mini!}|s|[2]
{\mathbf{x, y}}{-2x_1^2 + x_2^2 - 6y_1 + y_2^2\tag{2}}{\label{objective}}{}
\addConstraint{x_1^3 + 3x_2 - 10}{\le 0 \label{ineq:C1}}
\addConstraint{{-x_1} + 2x_1 - x_2^2}{\le 0\label{ineq:C2}}
\addConstraint{{-x_1} + 2x_2}{\le 0\label{ineq:C3}}
\end{mini!}
\end{document}
Редактировать: обходной путь для двухуровневых ограничений:
\begin{mini!}|s|[2]
{\mathbf{x, y}}{-2x_1^2 + x_2^2 - 6y_1 + y_2^2\tag{2}}{\label{objective}}{}
\addConstraint{x_1^3 + 3x_2 - 10\tag{3}}{\le 0 \label{ineq:C1}}
\addConstraint{\st\quad}{{-x_1} + 2x_1 - x_2^2\le 0\label{ineq:C2}}
\addConstraint{\phantom{\st}\quad}{{-x_1} + 2x_2\le 0\label{ineq:C3}}
\end{mini!}
решение2
вы можете использовать другой пакет под названием optidef:https://www.ctan.org/pkg/optidef вот ваша проблема:
\usepackage{optidef}
\begin{document}
\begin{mini!}|s|[2]<b>
{x,y}{-x^2_1+x^2_2-6y_1+y^2_2}
{}{}
\addConstraint{x^3+x_2-10}{\leq 0}{}
\addConstraint{-x_1+2x_1-x^2_2}{}
\addConstraint{-x_1+2x_2}{\leq 0}{}
\end{mini!}
\end{document}