реклама на сайте
подробности

 
 
> Оганичения на линейные уравнения, Как решать?
RHnd
сообщение Jul 29 2008, 13:44
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Имеем невырожденную матрицу A 6x6. Произвольно назначаем вектор Y 6x1 так, чтоб корни полинома, образуемого этим вектором, имели действительную часть меньше r0. Требуется найти X: X*A=Y. Решал эту задачу в матлабе просто: R=[желаемые корни]; Y=poly®; X=inv(A)*Y;
Теперь появилось ограничение на вектор X - первые три компоненты (x(1), x(2), x(3)) должны быть одного знака, например, больше нуля - не принципиально. В идеале, все компоненты вектора X должны быть одного знака.
Как решать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RHnd
сообщение Jul 30 2008, 06:41
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Вариант с рэндомом был попробован в первую очередь. smile.gif Получилось, что для real(Ri)<-1 решения находится быстро, а вот для real(Ri)<-10 - решение так и не нашлось.
Кстати, похожая ситуация и просто с нахождением полинома. Т.е. генерируем рандомно коеффициенты полинома, ищем корни. Сгенерировать такой полином, чтоб все корни меньше -10 - не удалось.

Цитата(fontp @ Jul 30 2008, 10:16) *
Соответственно это задача при строгой постановке - оптимизационная задача программирования нелинейного размерности 16. Тут не до симплекса :-)

Так и есть. Только там не 5 пар корней - комплексные должны быть комплексно сопряжены, коеффициенты полинома - действительные числа.
И как подступаться к такой задаче?
Go to the top of the page
 
+Quote Post
fontp
сообщение Jul 30 2008, 06:57
Сообщение #3


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(RHnd @ Jul 30 2008, 10:41) *
Так и есть. Только там не 5 пар корней - комплексные должны быть комплексно сопряжены, коеффициенты полинома - действительные числа.
И как подступаться к такой задаче?


Это да, 2 пары комплексно сопряжённых и 1 - действительный. Всего 5

А как вообще решаются нелинейные оптимизационные задачи в общем случае? Да никак! :-)
В смысле запускают какой нибудь метод наименьшего спуска по градиенту, но ничего гарантировать нельзя про сходимость. т.е вообще ничего, но что-то то получится, может сгодится ? Теоретически строго решаются только линейные, квадратичные и некоторые выпуклые задачи.
В вашем случае хорошо бы постараться вводя новые дополнительные переменные "вложить" линейную задачу по X(может и симплекс) во внешнюю нелинейную, по которой делать итерации наискорейшего спуска по градиенту, но в рамках ограничений

Возможно использовать готовые программы симплекса вообще не получится, не знаю. Тогда нужно разбираться в деталях как устроена итерация симплекс методa. Имея какое-то решение, Вы должны сделать шаг в известном направлении (градиента), но длина этого шага должна определяться условиями положительности X(i) (ограничениями на положительность Х). Это всё логика симплекс-итерации
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01436 секунд с 7
ELECTRONIX ©2004-2016