Comments 84
Это всё очень интересно, но пропущены основы, у вас подход математика, а хочется вначале всё же физики.
1. Что такое вообще устойчивость? Как это выражается физически и математически?
2. Откуда взялось само уравнение Ляпунова? Нужны примеры физических систем, где там что за что отвечает и как возникает это уравнение.
3. "Представим, что мы хотим проверить устойчивость системы " Почему такой? Что это за система?
"Согласно методу Ляпунова, система устойчива, если её «энергия» со временем убывает."
Что такое "энергия" в кавычках? Ну так и почему так-то? Почему энергия должна убывать? На каком интервале времени?
Устойчивость означает, что при малом возмущении начальных условий траектория меняется слабо.
Здесь в статье проделан вывод уравнения Ляпунова, соответственно дан ответ на вопрос, откуда оно взялось
Потому что это система линейных диффуров, в окрестности равновесия любая механическая система так описывается приближенно (вдали от окрестности уже нелинейная становится). Если у нас система нелинейная - надо ее линеаризовать, т.е. разложить в ряд Тейлора в окрестности равновесия. И тогда получить такую систему из нелинейной, и дальше по алгоритму
Энергия в кавычках, потому что можно брать не только кинетическую энергию, а в принципе любую подходящую квадратичную функцию. Обычно берут кинетическую энергию, но в некоторых случаях удобнее что-то еще.
Материал про линеаризацию тогда чуть позже ночью добавлю и вставлю в статью.
Устойчивость означает, что при малом возмущении начальных условий траектория меняется слабо.
Что значит слабо?
На вики есть строгое определение
Я знаю, какое строгое определение, и оно мне кажется не совпадающим с текстом в комментарии выше. По крайне мере, не в том смысле как я его читаю. Потому я и прошу уточнить, что автор хочет сказать.
Для меня «малое отклонение начального условия ведет к слабому изменению траектории» подразумевает некоторую непрерывность, которой нет в строгом определении. Для вас не так?
Не обязательно. Можно сравнить ровно две траектории, отличающиеся на эпсилон в начальной точке.
Я, к сожалению, не понимаю, как это относится к моему вопросу.
Хорошо, я взял номинальную траекторию из номинальной начальной точки. Сдвинул начальную точку на единицу и построил новую траекторию. Её максимально отклонение от базовой пять единиц. Сдвинул начальную точку на единицу в другую сторону. Что дальше?
У вас получилось эпсилон равное 5.
Нет, так как в другой точке на расстоянии в единицу от номинальной может получиться отклонение в шесть единиц. Но это мы про квантор for all, это уводит нас в сторону от устойчивости.
Понял мысль. По-моему автор сформулировал п.1 больше с точки зрения практики, а не чисто математического непроверяемого определения.
Да даже практически это спорная формулировка. Несложно придумать вполне физически осмысленную систему, когда мы сдвигаемся от начального положения на эпсилон и получаем дельту. А сдвигаемся на эпсилон плюс ещё чуточку, и нас уносит очень далеко. Но ограничено, так что система будет устойчивой по Ляпунову.
Если у нас система нелинейная - надо ее линеаризовать, т.е. разложить в ряд Тейлора в окрестности равновесия. И тогда получить такую систему из нелинейной, и дальше по алгоритму.
Вот бы все было так просто. А если линеаризация не валидна?
Предположу, что исходный список вопросов вам задали не для того, чтобы вы ответили на них в комментарии, а для того, чтобы дать вам понять, что этого явно не хватает в статье.
ИМХО. У вас хорошая техническая статья, но не понятно о чем она и для кого. Вроде как статья про метод Ляпунова, но 2 трети статьи -- это вы пошли в случайном направлении и начали в подробностях разбирать вещи, которые вполне живут самостоятельной жизнью. Например фундамент математической оптимизации тоже выражается через анализ Ляпунова, но подробный рассказ о том как это выражается -- это не детальное погружение в тематику, а плохая струтурированность и отличный способ окончательно запутать читателя.
Статья написана по типичному плану лекции по теме "уравнение Ляпунова". Зачем нужно, откуда взялось, 2 случая (дискретный и непрерывный) и как его решать.
В английской Википедии то же самое, но без объяснений и слишком не подробно
https://en.wikipedia.org/wiki/Lyapunov_equation
Материал английской страницы написан так, что его очень сложно понять, если уже не знаешь, что это такое, так как слишком кратко. Я же здесь сделал подробно, также добавил примеров и много иллюстраций с кодом.
Я сейчас учусь в Aimasters, у нас было 3-часовое занятие на тему уравнения Ляпунова, например, на курсе робототехники, там в точности такой же план изложения.
В английской Википедии то же самое, но без объяснений и слишком не подробно
В английской википедии есть следующие статьи
https://en.wikipedia.org/wiki/Lyapunov_stability
https://en.wikipedia.org/wiki/Lyapunov_equation
https://en.wikipedia.org/wiki/Lyapunov_function
https://en.wikipedia.org/wiki/QR_decomposition
https://en.wikipedia.org/wiki/QR_algorithm
https://en.wikipedia.org/wiki/Schur_decomposition
https://en.wikipedia.org/wiki/Proportional–integral–derivative_controller
https://en.wikipedia.org/wiki/Bartels–Stewart_algorithm
Так что я бы не сказал, что она не подробная. Опять же, подозреваю, что статья писалась не для такого как я, кто итак знает. Отдельно отмечу, что как показалось странным при такой подробности полное отсутствие упоминания о linear matrix inequalities.
Это нормально если лекция в ряду других лекций. А если это самодостаточная статья на популярном ресурсе где люди с разным образованием (даже разным физмат), то надо больше базы и примеров. Кто знает это всё - тому статья не нужна, кто не знает - тот не поймет. И смысл? Мне вот надо разбираться, почему такая система - производная на... матрицу с вектором? В моей работе у меня сплошная среда и урматфиз, хотя вроде близко).https://dzen.ru/a/aOVRUVX5zBt0naTT
Мне вот надо разбираться, почему такая система - производная на... матрицу с вектором?
Так написано почему, в самом начале. Так описывается абсолютно любая динамическая система в механике Ньютона.

По п.3 не совсем так. Физически система описывается всё-таки в форме вход-выход, а форма Коши введена для удобства анализа, причём выбор х не является однозначным для одной и той же системы.
С позиции физики - это в ТАУ в раздел нелинейных систем. Видимо предполагается, что читатель знаком со свойствами объекта управления (астатизм, устойчивость и т.д.).
Немного непривычно было читать определения (сравниваю с ТАУ). Обратил внимание, что во введении вы приводите применение метода первого приближения для исследования ПО (например, БПЛА), а в самой статье даны абстрактные примеры.
Скажите, а зачем искать матрицы P и Q? Ведь проверить устойчивость можно просто по собственным числам матрицы A?
Нужно спроектировать управление, оценить область притяжения (устойчивости) для нелинейной системы, оценить робастность - как минимум.
Кроме того. если матрица A зависит от времени, то метод собственных чисел вообще не является критерием. Например, Re(k) могут быть < 0 в любой момент времени, но при этом система может быть неустойчивой. А уравнение Ляпунова в этом случае работает.
А можете привести пример для второго параграфа? Казалось бы все отображения получаются сжимающими, соответственно любые квадратичные функции должны исчезать, со всеми вытекающими.
A = [-1, exp(2t); 0, -1]. У вас второе состояние автономно уходит в ноль, а певое к бесконечности. Есть примеры и с ограниченными элементами матрицы A, но они более громоздкие (могу картинку в личку отправить).
Есть примеры и неустойчивых переключающихся систем, у которых переключение происходит между двумя устойчивыми. Вроде функция Ляпунова всегда убывает, но меньше, чем растёт на переключениях.
В целом, как только ушли из мира LTI, собственные числа могут сильно обманывать.
Пошлите картинку, если не тяжело. Спасибо!
Скрытый текст

Откуда пример, можно ссылку?
Здорово. Спасибо!
ЗЫ Как человек, который занимался и андерсоновской локализацией и всякими фотонными кристаллами, я должен был пример и сам сразу увидеть. А не увидел. Официально стал старым. Чертовски грустно.
Вы можете привести пример проектирования управления для линейных стационарных систем через функцию Ляпунова? Или оценку робастности (по отношению к чему)?
К нелинейным или нестационарным системам вопросов нет.
Или, например, допустим собственные числа чисто мнимые, тогда метод собственных чисел для исходной нелинейной системы вообще ничего не гарантирует.
Допишу это в статью тоже ночью сегодня.
Мне кажется научпоп не для Википедии. Принцип беспристрастного энциклопедичного изложения страдает. Научпоп это по определению собственное творчество, производное от рассматриваемой темы (в данном случае - уравнения Ляпунова). Я был бы против включения такой статьи в Википедию.
Согласен. Это конспект хорошей обзорной лекции, но не энциклопедическая статья.
Уверен, что 99% людей, которые зайдут на такую статью, чтобы в двух словах получить общее и простое представление, о чем же вообще речь, уйдут вовсе ничего не поняв.
А почему эта заготовка статьи без гиперссылок? Совершенно непонятно, что же будет в итоге. Может, многие темы можно в другие статьи раскидать? Или, там уже отдельные места разжёваны?
Удивительно, что в вике на русском до сих пор нет статьи об уравнении Ляпунова.
Игорь, спасибо большое! И за эту статью, и за ещё один кирпичек в наш общий банк знаний.
Полностью согласен, статья хороша именно своим авторским стилем, аналогиями, кодом, а в Википедии все это вырежут, оставив сухой остаток из формул и определений, который будет мало чем отличаться от уже существующей (и плохой) англоязычной версии
С точки зрения Википедии, у вашей статьи есть ключевой недостаток. Она не опирается вообще ни на какую литературу, то есть она не проверяемая.
Очень красиво. Спасибо большое за труд.
Статья классная. Спасибо.
Предложения:
1. Структурно: разделите аналитическую часть (вывод уравнения) и численные методы (Китагава ет ол) - это две разные статьи.
2. По смыслу: дополните первую часть описанием локальной устойчивости. Обратный маятник - очень важный прикладной случай.
3. Добавьте оговорку, что в статье рассматриваются только время-инвариантные системы/характеристики.
В статье не хватает нескольких важный вещей:
1) нет оценки М.Г. Крейна для решения уравнения y'=Ay:
\|y(t)\|\le (\|H\| \|H^{-1}\|)^(1/2) exp{t/\|H\|} \|y(0)\|,
Где H - решение HA+A^*H=-E
Эта оценка характеризует скорость стабилизации решений системы к положению равновесия, подобные оценки можно указать и для решений нелинейных систем, более того с помощью решения уравнения Ляпунова можно указать оценку на множество притяжения нулевого решения
2) Не сказано о проблеме численного нахождения собственных значений для неэрмитовых матриц.
3) В качестве метода нахождения решения матричного уравнения отсутствует алгоритм с гарантированной точностью, разработанный А.Я. Булгаковым и С.К. Годуновым
А можете дать ссылку на алгоритм Булгакова и Годунова? Загуглить такое не получается. В учебниках это тоже отсутствует.
"Не сказано о проблеме численного нахождения собственных значений для неэрмитовых матриц. "
Для алгоритма Шура разницы тут нет, эрмитовая она или нет.
Тут и написан общий случай, фактически (для эрмитовой разложение Шура дает диагональную матрицу, а не верхне-треугольную).

Попробуйте численно найти собственные значения данной матрицы. Это пример С.К. Годунова.
Я там дал ссылку на сайт своего курса https://toomanydigits.online/Block3/Sem2/1.html#id10 .
У меня там это описано

Эрмитова матрица частный случай нормальной матрицы (там важно то как раз, что при разложении Шура получается диагональная, а класс нормальных матриц в точности совпадает с классом матриц, для которых форма Шура диагональная), так что для нее псевдоспектр - это маленькие круги возле собственных значений. А в случае ненормальной матрицы да, может быть всё гораздо хуже, разумеется.
Отличный пример. А есть такой же, но размерностью поменьше?
нет оценки М.Г. Крейна для решения уравнения y'=Ay:
|y(t)|\le (|H| |H^{-1}|)^(1/2) exp{t/|H|} |y(0)|,
Где H - решение HA+A^*H=-E
Вы уверены, что у вас формула правильно написана? Вызывает сомнение |H| |H^{-1}|. Так же, у вас для устойчивой матрицы A будет положительно определённая матрица H, разве нет? Тогда будет расходящаяся экспонента.

До меня дошло, что запись |H| |H^{-1}| это число обусловленности матрицы, сначала не считал. :)
Алгоритмы с гарантированной точностью это конечно хорошо, но часто они вычислительно дороже стандартных методов из LAPACK. Для большинства инженерных задач точности double и устойчивости алгоритма Бартелса-Стюарта более чем достаточно
Труд, конечно, большой и статья информативная, но это не для Википедии. Возьмем случайного человека, например, меня, который знает, что такое функция Ляпунова (неотрицательная функция, невозрастающая на фазовых траекториях), но у которого представление об уравнении Ляпунова со студенческих времен проэволюционировало до "какой-то артефакт очень конкретный инструмент, с которым надо разбираться". Честно скажу, после прочтения статьи, понимания добавилось немного. Явный вывод был полезен, поскольку ответил на вопрос откуда берется структура, характерная для эволюционных уравнений (мог бы и сам догадаться, но глаз слишком привык видеть коммутаторы в таких ситуациях), но зачем решать уравнение Ляпунова непонятно. Для того, чтобы доказать существование решения путем его явного предъявления? Странно.
И если решать, зачем нужно решение для произвольного Q? Зачем "например Q = I", а не сразу Q = I? С точки зрения теоремы об устойчивости разницы, вроде, никакой (?), а увидеть, что вычислительная сложность сводится к эффективному получению (квази)треугольной формы А гораздо проще. Или это имеет какое-то отношению к примерам из последнего раздела (которые тоже непонятны, но по-своему)?
Очень хорошая статья! Спасибо!
Это пре-релиз статьи для русской Википедии.
В таком виде статью точно ревертнут как оригинальное исследование. Ко всему непонятно к какой статье подразумевается всё это отнести, ибо из всей статьи можно достаточно просто ещё штуки три-четыре связанных статьи сделать.
Обычно импликацию на вики не используют (как в "Уравнение Ляпунова для скаляров:", например) и просто пишут каждый из шагов примера на отдельной линии.
Некоторые картинки так и просятся стать какой-нибудь анимацией. Может каким-нибудь manim стоит сделать? Buldge chasing тот же, например, или приземление на эллипс поменьше.
Сэндвич из матриц выглядит как сэндвич для смены базиса, это действительно оно?
Схемы-графики аналогично слабо объяснены - большая энергия, малая энергия это слабо похоже на объяснение, в том числе и концентрической формы.
в честь математика Ляпунова, который в 1892 году
За что вы его так ненавидите? 56 раз в статье упомянут "Ляпунов" и ни разу, даже в биографической справке, инициалов нет.
Мы не любим уравнения второго порядка, поэтому мы забубеним уравнения третьего порядка, а потом отгрохаем матрицу и определитель второго порядка!
У вас статья состоит из двух частей. Основная, как мне кажется, это про решение стационарного уравнения Ляпунова и численные методы. Она прекрасна, и к ней никаких вопросов. Вторая же часть это мотивация для стационарного уравнения Ляпунова. Я рискну предположить, что проблемы систем управления не ваша основная область интересов, и вы больше пересказываете, чем делитесь опытом и собственным пониманием. Получается сумбурно и не очень точно.
Основаня загвоздка в том, что для линейных стационарных систем аппарат функций Ляпунова не очень то и нужен. Можно построить хороший курс, рассказать про управляемость и наблюдаемость, про канонические формы, про устойчивость, про наблюдатели, про оптимальное управление и модальный синтез (pole placement), про рабостность в Hinf смысле, и при этом вообще не говорить про функции Ляпунова. Можно даже поговорить про граммианы, редукцию моделей и минимальные реалиазции -- уравнение Ляпунова появится, а функия нет!
Конечно, если поговорить про функцию Ляпунова, то переход потом от линейных стационарных к нелинейным или нестационарным (или же к более продвинутым техникам синтеза на основе матричных неравенств) будет проще. Да и в тех областях без функции Ляпунова обойтись сложно. Но пока мы говорим о линейных стационарных, то перкрасно обходимся без функции Ляпунова.
Вы обновили пост, добавили про управление через функции Ляпунова. Вот только так, как вы написали, не делают. Если искать статический вектор обратной связи K, то это делают через pole placement и уравнение Сильвестра (опять же, оно появляется без функции Ляпунова) или через оптимальное управление LQR и уравнение Рикатти. Самое близкое, к тому что вы написали в разделе "Как этим рулить на практике?", это синтез через матричные неравенства. И он выглядит не так, как вы написали, а, например, через явное задание скорости сходимости в форме P A + A^top P < -alpha P.
Я сейчас изучаю курс "Симуляция и управление в робототехнике" дистанционный, от института ИИ МГУ (в рамках программы Aimasters, вот описание этого курса Симуляция и управление в робототехнике ). Мне пообещали зачесть вместо одной из домашек научпоп материал по уравнению Ляпунова. У нас на лекции было примерно так, как тут, только я гораздо подробнее раскрыл.
Ну а про разложение Шура и алгоритм QR - я сам эти вещи давно преподаю студентам.
Я не занимаюсь робототехникой и не знаком с этим курсом. Судя по содержанию, там дальше будет MPC и адаптивное управление, так что функция Ляпунова потребуется, и есть основания ввести её пораньше.
Только не называйте то, что у вас в разделе "Как этим рулить на практике?" LQR - это не оно, так как под LQR обычно понимается квадратичное оптимальное управление.
Уже было всё месяц назад. GitHub - kefir8888/smrai2025 вот тут материалы курса (он еще не закончен, 10 недель учебных было, будет еще штуки 4).
LQR примерно так и вводили еще на третьей лекции smrai2025/lectures/03_lqr/notes_lqr.pdf at main · kefir8888/smrai2025 · GitHub

Замечание по логике статьи, вы в тексте упоминаете уравнение Ляпунова, расписываете, какое оно хорошее, а потом у вас пример задачи и там сразу идет "Подставляем нашу замкнутую систему ... в уравнение Ляпунова". Но при этом само уравнение Ляпунова к этому моменту нигде не приводится. Стоило бы где-то до подстановки в уравнение конкретного случая, само уравнение-то привести.
квадрокоптером, который прекрасно описывается линейными уравнениями
разве?
Статья великолепна, но у меня есть одно но. Она заявлена как "пре-релиз для Википедии", а стиль-то совсем не википедийный - живой, авторский, с метафорами и кодом. Боюсь, в таком виде ее из Википедии выпилят за "оригинальное исследование" и "неэнциклопедичный стиль"
Возможно стоит разделить ее на несколько более сухих и формальных статей для Вики, а этот прекрасный лонгрид оставить здесь, на Хабре)
Спасибо за довольно подробное изложение. Всё довольно хорошо написано. Но мне кажется, что материал лучше разделить на две части с более простыми примерами/задачами или введением в первой части и более содержательными вопросами во второй. Или хотя бы сгруппировать по блокам, скрываемым в спойлеры.
Также, где вы рассматриваете одномерные (скалярные) случаи с уравнением вида:
возможно, стоит получать общую формулу для параметра p через q и a, а затем подставить a=1 и a=-1. А ещё можно рядом показать, почему дискретный (d) и непрерывный (c) случаи отличаются в данном примере на единицу:
Подставляя приближенное значение производной в непрерывное уравнение, получим:
Это у вас сделано в конце, но как будто это смотрелось бы лучше после примеров. Но решение всё равно за вами.

Математика равновесия: как уравнение Ляпунова держит весь мир в узде