Розв’язування складної системи рівнянь чисельно


10

У мене є система з нелінійних рівнянь, яку я хочу вирішити чисельно:n

f(x)=a
f=(f1,,fn)x=(x1,,xn)

Ця система має ряд характеристик, що ускладнює обробку. Я шукаю ідеї, як ефективніше поводитися із системою.

Чому система складна?

  • Функції подібні до цієї (але, звичайно, у кількох вимірах):

    Графіка математики

    Вони мають плоскі плато, розділені областю плавних змін. У 2D ви можете уявити щось подібне для одного :fi

    Графіка математики

    Як правило, кожен має два плато, розділене плавними змінами навколо розмірної гіперплани.fin1

    Такі функції важко керувати ньютоновими методами, оскільки похідна фактично дорівнює нулю на плато. У кількох вимірах я не можу легко знайти область, де жодна зfi не має плато - якби я могла це вирішити проблему. Метод розбиття добре працює при , але він не добре узагальнює множинні виміри.n=1

  • Функції дуже повільні для обчислення. Я шукаю метод, який може отримати розумне наближення кореня за якомога менше ітерацій.

  • Функції обчислюються методом Монте-Карло. Це означає, що кожного разу, коли вони обчислюються, я отримую дещо інше випадкове значення. Похідні важко оцінити. Як тільки ми будемо досить близько до кореня, шум почне домінувати, і для підвищення точності потрібно використовувати усереднення. В ідеалі має бути можливість узагальнити метод до еквівалентної версії стохастичного наближення (наприклад, Ньютон → Роббінс-Монро).

  • Система високомірна. може бути розміром від 10-20. Коли , ефективний метод, ймовірно, буде таким: спробуйте дотримуватися контурів, визначених і і подивіться, де вони перетинаються. Не ясно, як це узагальнить би високі розміри.nn=2f1(x1,x2)=0f2(x1,x2)=0

Що ще я знаю про систему?

  • Існує точно один корінь (з теоретичних результатів).

  • Я знаю значення на плато (скажімо, це 0 і 1 для будь-якого ).fii

  • fi має особливе відношення до :  монотонно змінюється від 1 до 0, оскільки переходить від до . Це справедливо для будь-якого фіксованого значення іншого .xifi(,xi,) - x j ixixji


Чи знаєте ви нижню та верхню межі всіх змінних, в межах яких повинно лежати рішення? Чим жорсткіші ці межі, тим краще. Чи можете ви навести детермінований приклад у такому великому вимірі, який ілюструє ваші плато та труднощі, але не потребує моделювання Монте-Карло та не має випадкових помилок у функціях (бонусні бали, якщо можна порахувати похідні)? Мета такого детермінованого прикладу - зрозуміти труднощі проблеми, не сказати, що оцінка Монте-Карло не буде використана для остаточного вирішення вашої реальної проблеми.
Марк Л. Стоун

@ MarkL.Stone Bounds: Я їх не знаю. Але я можу здогадатися. Здогадки повинні були бути досить широкими, щоб бути впевненими, що вони правильні. Приклад: я придумаю приклад і відредагую питання завтра. Я не маю набагато чіткішої картини щодо справжньої форми ніж та, яку я описав тут, тож мій перший приклад може не бути справді представником реальної проблеми. Але я зберу щось із функцій Фермі (сигмоїди), і спробую зробити так, щоб це було якомога більше труднощів реальної проблеми. f
Szabolcs

Я з нетерпінням чекаю його,
Марк Л. Стоун

Відповіді:


1

Оскільки є один корінь і немає обмежень, можливо, вам пощастить поставити це як проблему оптимізації: мінімізуйте суму (уздовж кожного виміру) квадратів вашої вихідної функції.

Методи класичної оптимізації, ймовірно, не зможуть, але евристичні методи, такі як генетичні алгоритми або CME-ES (адаптація матриці коваріантної і т.д. - еволюційна стратегія), можуть працювати.


Це дійсно підхід. Я б особливо придивився до алгоритму SPSA, який був розроблений спеціально для ваших цілей і є досить надійним.
Вольфганг Бангерт

2
ОП зазначає, що функцію оцінювати дуже дорого (застосовуючи моделювання Монте-Карло для оцінки функції). Хіба це не є великою проблемою для генетичних алгоритмів та інших еволюційних алгоритмів? Вони "тривіально паралельні" (і це MC зазвичай теж), тому можливі масові паралельні обчислення, але чи найкращий спосіб пройти сюди?
GertVdE

@WolfgangBangerth Дякую, як ти кажеш, це звучить як правильне рішення. Я погляну на SPSA.
Szabolcs

1
Щодо дорогих оцінок функцій: Це правда, що генетичні алгоритми та пов'язані з ними евристичні методи вимагають більшої кількості оцінок функцій, ніж традиційні методи. Перевага полягає в тому, що евристичні методи часто можуть вирішувати проблеми, які 1) в іншому випадку потребували б конкретного методу, або 2) виходили з ладу через числові проблеми. У цьому прикладі, ймовірно, традиційні методи матимуть проблеми через стохастичний характер цільової функції та малі градієнти вздовж деяких вимірів. SPSA виглядає як чудовий метод для вирішення цієї проблеми.
MattKelly
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.