У числових даних дуже важливо вміти виявляти нестабільні схеми та підвищувати їх стійкість. Як визначити нестабільні обчислення з плаваючою комою?
Я працюю над дуже складним моделюванням, коли багато числових схем працюють разом, і я шукаю методику для визначення його слабких частин. Я працюю над фізичною моделлю, що включає диференціальні рівняння. Погляд пташиного польоту на весь процес:
(Попередня стадія) Збір фізичних спостережень P .
Визначте початкові параметри моделювання. Для цього використовується алгоритм оптимізації, коли ми ходимо в просторі параметрів і шукаємо параметри C такі, що деяка функція помилок E (F (C), P) зведена до мінімуму, де F - деяка похідна кількість параметрів.
Підключіть C до двигуна імітації. Це схема Ейлера EDP, так що на кожному кроці ми обчислюємо умови, що рухають динамічну (кожен з них є складною функцією, потенційно може бути нестабільною) і подаємо схему Ейлера цими динамічними умовами для обчислення наступного держава. Це триває тисячі часових моментів.
В кінці моделювання обчислюємо деяку функцію Доказ (S) кінцевого стану S і порівнюємо з деякими величинами Потрібно (P), виведене із спостережуваних величин. Це не формальне підтвердження результату, більше перевірка правдоподібності.
Також я бачу вежу складних операцій (обчислення динамічних термінів, за схемою Ейлера, в межах Доказу ). І хотіли б визнати «погані частини» та виправити їх.
Я припускаю, що використання програмної реалізації чисел з плаваючою комою зі зниженою точністю може збільшити нестабільність числових схем, полегшивши тим самим порівняння між різними реалізаціями. Це загальна методика розслідування цього питання? Чи можна використовувати віртуальну машину, як Бохс, для досягнення цього, не змінюючи програму?
Для належного вирішення питання щодо стабільності іноді прийнятно орієнтуватися на типовий вхід числової процедури, щоб він міг настроїтись на цьому вході та, можливо, менш добре на іншому дійсному, але малоймовірному введенні. З огляду на вибірку типових даних, можна пропустити деякі проміжні результати та підготувати для них статистичний профіль. Знову ж таки, це загальна методика вивчення питань стабільності? Чи корисна для цього віртуальна машина?