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


10

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

@ 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.