Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Решение системы нелинейных уравнений, с ограничением 
:(
    Опции темы
FatherFrost
Дата 26.1.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Есть задача. Нужно решить систему нелинейных уравнений, но при этом на само решение накладываются ограничения... В первую очередь необходимо получать ненулевое решение и некоторые другие.

Буду рад любому совету... Может у когонить есть код на Java, C#, Delhi, Pascal, MatLab.... Или же хотябы ссылки на полезную современную литературу и статьи по данному вопросу.

Заранее всем благодарен.


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Akina
Дата 26.1.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(FatherFrost @ 26.1.2006, 16:45 Найти цитируемый пост)

В первую очередь необходимо получать ненулевое решение и некоторые другие.
А что, система не определена?



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Cr@$h
Дата 26.1.2006, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Для какого языка надо то?

Это сообщение отредактировал(а) Cr@$h - 26.1.2006, 19:01
PM MAIL ICQ   Вверх
SoWa
Дата 26.1.2006, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Перебором smile
А какие ограничения, я не понимаю?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Cr@$h
Дата 26.1.2006, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Цитата(SoWa @ 26.1.2006, 21:50 Найти цитируемый пост)

Перебором  smile

smile С ходу из методов могу назвать метод итераций, метод Ньютона, метод Пауэля.
PM MAIL ICQ   Вверх
SoWa
Дата 26.1.2006, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Метод Монте-Карло
Хотя не знаю насчет его применимости в данной задаче.
Так какая система, какие ограничения?
FatherFrost, ау?!


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Cr@$h
Дата 26.1.2006, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Цитата(SoWa @ 26.1.2006, 21:59 Найти цитируемый пост)

Метод Монте-Карло

Давайте не будем доходить до фанатизма smile Хотя этому семейству методов я отдаю особое предпочтение в некоторых ситуациях.
Цитата(SoWa @ 26.1.2006, 21:59 Найти цитируемый пост)

FatherFrost, ау?!

Ну что ты, человек, между прочим, на крайнем севере живет. smile
PM MAIL ICQ   Вверх
FatherFrost
Дата 27.1.2006, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Извините, что молчал... Итак система примерно такая:

Код

x1*sin(t1)+x2*sin(t2) = 0
x1*sin(2*t1) + x2*sin(2*t2)=0
x1,x2 > 0.5
t1,t2 > 0


Классические методы решения нелинейного уравнения в свое время я реализовывал.... А вот как быть с системой????

Цитата(Cr@$h @ 26.1.2006, 18:56 Найти цитируемый пост)

Для какого языка надо то?


Для любого из указанных в моем первом посте: Java, C#, Delphi, Pascal или MatLab (но здесь тогда я много буду задавать вопросов, т.к. на его языке ничего более менее серьезного не писал...)


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Akina
Дата 27.1.2006, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(FatherFrost @ 27.1.2006, 09:23 Найти цитируемый пост)

Классические методы решения нелинейного уравнения в свое время я реализовывал.... А вот как быть с системой????

Система типа приведенной может быть преобразована в одно уравнение. Обычное исключение переменных.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
FatherFrost
Дата 27.1.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Akina Кхм... Это самый простой вариант.... А если уравненийбудет 10 - 15... Сколькож ты их будешь тогда выражать друг из друга. Нет это не решение иначе не былоб многих методов... Подскажите мне, если кто-нибудь знает, литературу по методам решения таких систем...


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Akina
Дата 27.1.2006, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(FatherFrost @ 27.1.2006, 12:23 Найти цитируемый пост)

А если уравненийбудет 10 - 15...

а матрица исключения??? и пофиг сколько уравнений - твое дело преобразовать их в вид (одно базовое + ограничения).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
FatherFrost
Дата 27.1.2006, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Поясни поподробнее плиз... или дай линк на описание...


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Cr@$h
Дата 27.1.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



t1 и t2 -- параметры что ли? При решении системы они имеют конкретные значения? Если да, то система линейная. Если нет, то решений бесконечно много. Для переопределенных линейных систем решения получают обычно через сингулярное разложение. С переопределенными нелинейными системами не сталкивался еще...
PM MAIL ICQ   Вверх
FatherFrost
Дата 27.1.2006, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Тут я забыл еще два уравнения дописать извините уже торможу по полной.... 4 пере менных - 4 уравнения...
Код

x1*sin(t1)+x2*sin(t2) = 0
x1*sin(2*t1) + x2*sin(2*t2)=0
x1*sin(3*t1) + x2*sin(3*t2)=0
x1*sin(4*t1) + x2*sin(4*t2)=0
x1,x2 > 0.5
t1,t2 > 0


Это сообщение отредактировал(а) FatherFrost - 27.1.2006, 11:56


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Cr@$h
Дата 27.1.2006, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Пока продолжу.
Ограничения можно убрать заменой:
Код

x1 = 0.5 + e^y1
x2 = 0.5 + e^y2
t1 = exp(z1)
t2 = exp(z2)



Это сообщение отредактировал(а) Cr@$h - 27.1.2006, 12:05
PM MAIL ICQ   Вверх
FatherFrost
Дата 27.1.2006, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Cr@$h И что нам это дает???


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
SoWa
Дата 27.1.2006, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Но как я понял,
abs(t1)<=0.25
abs(t2)<=0.25


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Cr@$h
Дата 27.1.2006, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Цитата(SoWa @ 27.1.2006, 22:23 Найти цитируемый пост)

Но как я понял,
abs(t1)<=0.25
abs(t2)<=0.25

Почему это?
Цитата(FatherFrost @ 27.1.2006, 14:15 Найти цитируемый пост)

И что нам это дает???

Убрали напроч ограничения. Теперь можно применять любую прогу для нелинейных систем. smile
Сама система мне напоминает коэффициенты разложения Фурье...
PM MAIL ICQ   Вверх
SoWa
Дата 28.1.2006, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Цитата(Cr@$h @ 27.1.2006, 23:23 Найти цитируемый пост)

Почему это?

Действительно, заучился. Этих ограничений нет.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
FatherFrost
Дата 29.1.2006, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Cr@$h А что имел в виду под y1,y2,z1,z2... А то я не пойму, откуда ты их взял???


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Cr@$h
Дата 29.1.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



У нас есть система с ограничениями:
Цитата(FatherFrost @ 27.1.2006, 12:56 Найти цитируемый пост)

x1*sin(t1)+x2*sin(t2) = 0
x1*sin(2*t1) + x2*sin(2*t2)=0
x1*sin(3*t1) + x2*sin(3*t2)=0
x1*sin(4*t1) + x2*sin(4*t2)=0
x1,x2 > 0.5
t1,t2 > 0

Делая в этой системе замену
Код

x1 = 0.5 + e^y1
x2 = 0.5 + e^y2
t1 = e^z1
t2 = e^z2

можно свести систему с ограничениями к системе без ограничений. При любых значениях y1, y2, z1, z2 ограничения на x1, x2, t1, t2 будут выполняться. Подставляем эту замену в систему, получаем:
Код

(0.5 + e^y1)*sin(e^z1) + (0.5 + e^y2)*sin(e^z2) = 0
(0.5 + e^y1)*sin(2*e^z1) + (0.5 + e^y2)*sin(2*e^z2) = 0
(0.5 + e^y1)*sin(3*e^z1) + (0.5 + e^y2)*sin(3*e^z2) = 0
(0.5 + e^y1)*sin(4*e^z1) + (0.5 + e^y2)*sin(4*e^z2) = 0

Ограничений на y1, y2, z1, z2 здесь уже нет, т.к. в любом случае условия для x1,x2 > 0.5, t1,t2 > 0 здесь будут выполнены. Решаем эту систему относительно y1, y2, z1, z2. Исходное решение получаем через:
Код

x1 = 0.5 + e^y1
x2 = 0.5 + e^y2
t1 = e^z1
t2 = e^z2

Ограничения
Код

x1,x2 > 0.5
t1,t2 > 0

Будут выполнены благодаря специальной форме замены, для чего она и делалась.
В результате свели систему с ограничениями к системе без них. Все законно.
PM MAIL ICQ   Вверх
FatherFrost
Дата 30.1.2006, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Cr@$h Ограмное спасибо и большой респект...


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Cr@$h
Дата 30.1.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Да, но осталось найти эту "стандартную" прогу, которая решает нелинейную систему smile
PM MAIL ICQ   Вверх
FatherFrost
Дата 31.1.2006, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Я пока нашел математическое описание алгоритмов с обоснованием... Осталось написать код.... smile
Если у кого-нибуь есть уже готовый, буду рад помощи...

Это сообщение отредактировал(а) FatherFrost - 31.1.2006, 09:02


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Cr@$h
Дата 31.1.2006, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Цитата(FatherFrost @ 31.1.2006, 10:01 Найти цитируемый пост)

Осталось написать код....

На сам деле метод ньютона забабахать не сложно, да и итеративный. К тому же это не для библиотеки робастой какой-то, а для себя. Метод может и не быть очь шустрым. smile

Это сообщение отредактировал(а) Cr@$h - 31.1.2006, 14:45
PM MAIL ICQ   Вверх
FatherFrost
Дата 31.1.2006, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Ну это да... Пока что отложу это скорее всего до выходных, хотя кто знает... Как напишу выложу... Вот только не знаю на чем лучше писать на Java или C#..... Возможности у них примерно равные. На делфях не особо хочется давно на них ничего не делал... Давно вообще по математическим алгоритмам нормальным проги не писал...


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Cr@$h
Дата 31.1.2006, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Цитата(FatherFrost @ 31.1.2006, 15:46 Найти цитируемый пост)

Вот только не знаю на чем лучше писать на Java или C#.....

Из двух зол вибирают меньшее, у Джавы и библиотека по богаче, может что-то пригодится. В любом случае оба используют сборщик мусора и являются управляемыми.
PM MAIL ICQ   Вверх
FatherFrost
Дата 31.1.2006, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Я понимаю С++ рулит для таких задач, но что то он меня пугает...


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Cr@$h
Дата 9.2.2006, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Для таких задач я использую Fortran. smile Меня С пугает указателями.
PM MAIL ICQ   Вверх
cardinal
Дата 9.2.2006, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 5
Всего: 99



Вот тут есть куча библиотек, гляди пригодятся...
http://srcc.msu.su/num_anal/lib_na/libnal.htm


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
FatherFrost
Дата 14.2.2006, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 27.4.2005
Где: Крайний север

Репутация: нет
Всего: 6



Cr@$h, Fortran вообще для меня не ведом...


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Cr@$h
Дата 14.2.2006, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Действуй на свое усмотрение. Это были лишь "понты" не в тему. Используй Джаву, и будет тебе счастье.
PM MAIL ICQ   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1933 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.