English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

гість
1 / ?
назад до уроків

Припущення GIGO

GIGO: 'сміття на вході, сміття на виході'. Якщо ви надаєте недостатньо визначені числа та рівняння, ви отримуєте недостатньо визначені результати. Зворотне припущення передбачається мовчки: точні вхідні дані виробляють точні результати.

Хеммінг показав, що обидва припущення можуть бути неправильними.

Сміття на вході, сміття на виході (справедливий випадок): ранна симуляція погоди. Малі збурення підсилюються. Неточні вхідні дані виробляють дико неточні результати — розбіжне поле напрямків.

Сміття на вході, точний результат (GIGO розвернуто): симуляція бомби в Лос-Аламосі (розділ 18). Дані про рівняння стану надійшли з розпорошених, ненадійних джерел. Проте конструкція бомби спрацювала. Чому?

Тому що структура обчислення включала другі різниці: сила на оболонці залежала від різниці сил суміжних оболонок. Локальні помилки в рівнянні стану значною мірою компенсувалися, коли оболонки проходили криву. Обчислення використовувало ефективно збіжну структуру.

Точний вхід, сміття на виході: теоретично можливий випадок. Якщо обчислення підсилює малі невизначеності вхідних даних через розбіжне поле напрямків, точні вхідні дані все ще виробляють неточні результати.

Урок: надійність результату симуляції залежить не тільки від точності вхідних даних, але й від усієї структури обчислення — конкретно, чи помилки, що входять у систему, підсилюються, зберігаються чи гасяться.

Зворотний зв'язок захищає точність

Хеммінг пов'язав розворот GIGO з прозорливістю Гарольда Блека щодо підсилювача зворотного зв'язку.

Відкриття Блека: якщо коефіцієнт підсилення підсилювача дуже високий, лише резистор зворотного зв'язку повинен бути точним. Усі інші компоненти можуть бути неточними. Цикл зворотного зв'язку стабілізує вихід проти варіацій компонентів.

Той же принцип діє в симуляціях зі структурою зворотного зв'язку:

- Система наведення ракети Nike автоматично коригувала відхилення траєкторії. Малі помилки в початкових умовах гасяться, а не підсилюються. Це дозволило Хеммінгу змоделювати відмову ракети, використовуючи вгадані початкові умови — проте відновити правильний період передачі енергії тангажу-рискання.

- Структура другої різниці обчислення атомної бомби діяла як зворотний зв'язок: локальні помилки рівняння стану усереднювалися протягом історії оболонки.

Імплікація проектування: хороший дизайн симуляції, як хороший інженерний дизайн, захищає точність, розташовуючи неточні компоненти всередину циклів зворотного зв'язку. Критичні величини — ті, що знаходяться поза захистом зворотного зв'язку — мають вимірюватися точно.

Хеммінг написав: 'Хороший дизайн захищає вас від необхідності мати надто багато високоточних компонентів у системі'. Застосуйте цей принцип до чисельної симуляції або інженерної системи, яку ви знаєте. Які величини структура зворотного зв'язку системи захищає від вимог до точності? Які величини залишаються незахищеними — і тому мають вимірюватися або моделюватися точно?

Поля напрямків & труба

Звичайне диференціальне рівняння першого порядку dy/dx = f(x,y) визначає поле напрямків: у кожній точці (x,y) площини нахил f(x,y) вказує напрямок, у якому повинна рухатися розв'язувальна крива.

Розбіжне поле напрямків: малі відхилення від справжньої кривої розв'язку зростають. Помилки підсилюються.

Збіжне поле напрямків: великі відхилення зменшуються назад до справжньої кривої. Помилки гасяться.

Обидва можуть відбуватися в одному рівнянні у різних точках. Точність розв'язку залежить від де ви його оцінюєте — а не від будь-якої абсолютної властивості рівняння.

Хеммінг візуалізував точність як 'трубу' навколо справжної кривої розв'язку. У 2D труба розширюється в розбіжних регіонах та звужується в збіжних. У n вимірах (задача перехоплення ВМФ використовувала 28 рівнянь) геометрія труби стає неінтуїтивною. Парадокс n-вимірного простору з розділу 9 застосовується: трубопроводи n-вимірного простору поводяться абсолютно не як трубопроводи 2D.

Метод Ейлера

Найпростіший розв'язувач ОДР: з точки (xₙ, yₙ) оцініть наступну точку, використовуючи поточний нахил:

> yₙ₊₁ = yₙ + h · f(xₙ, yₙ)

де h — розмір кроку. Це слідує дотичній лінії в кожній точці — завжди використовуючи 'нахил, що був', а не типовий нахил за інтервалом. Помилка накопичується з кожним кроком.

Улучшення предиктор-коректор: передбачте значення yₙ₊₁, використовуючи Ейлера, оцініть нахил там, потім візьміть середнє значення нахилів на обох кінцях інтервалу, щоб зробити коригований крок. Якщо передбачене та кориговане значення близько збігаються, розмір кроку є відповідним. Якщо вони розходяться, зменшіть h.

Методи вищого порядку & зв'язок фільтрів

Методи предиктор-коректор четвертого ступеня полінома (Milne, Adams-Bashforth, метод Хеммінга) використовують декілька попередніх значень функції та похідної для передбачення наступного значення.

Хеммінг визначив ці методи як рекурсивні цифрові фільтри: значення результату (позиції) обчислюються з вхідних даних (похідні на попередніх кроках) за допомогою лінійної рекурентності — точно структура цифрового фільтра.

Цей зв'язок має наслідки:

- Аналіз стійкості для рекурсивних фільтрів застосовується безпосередньо. Критерій стійкості z-перетворення: полюси передавальної функції фільтра мають лежати всередину одиничного кола.

- Розмір кроку h контролює стійкість. Для даного ОДР існує максимум h, за межами якого чисельний метод стає нестійким — обчислена розв'язувальна крива розходиться навіть якщо справжня кривова збіжна.

Жорсткі рівняння: коли система має власні значення дуже різних величин (один швидкозмінний компонент, один повільний) стійкість вимагає розміру кроку достатньо малого для швидкого компонента навіть коли повільний компонент мог толерувати великі кроки. Розв'язувачі для жорстких рівнянь використовують неявні методи для дозволення більших кроків без нестійкості.

Компроміс частота проти позиція: класичні поліноміальні методи оптимізують локальну точність позиції — траєкторія близько до справжньої кривої на кожному кроці, але динамічна 'відчуття' (частотна характеристика) може бути неправильною. Для симулятора польотів отримання правильної частотної характеристики може мати більшого значення, ніж отримання правильної позиції.

Хеммінг показав, що методи предиктор-коректор розв'язування ОДР є рекурсивними цифровими фільтрами. Що цей зв'язок передбачає для вибору розміру кроку h? Конкретно: що відбувається з обчисленою кривою розв'язку коли h занадто великий, і яка геометрична критерія 'занадто великий' в комплексній площині?

Ходіння по гребню дюни

Хеммінгу дали диференціальне рівняння для дизайну транзистора з граничною умовою в нескінченності — граничною умовою є права частина рівняння, встановлена на нуль.

Аналіз стійкості був лякаючим: якщо y в будь-якій точці став дещо занадто великим, sinh(y) підсилив, друга похідна стала сильно позитивною, і розв'язувальна крива вистрілила в +∞. Якщо y став дещо занадто малим, вона вистрілила в -∞. І нестійкість була двонаправлена — інтегрування в протилежному напрямку не допомагало.

Образ Хеммінга: 'ходіння по гребню піскового дюни'. Як тільки обидві ноги ковзають на один бік, ви неминуче ковзаєте вниз.

Його розв'язання: використовувати нестійкість як сигнал наведення. Він інтегрував сегмент траєкторії на диференціальному аналізаторі. Якщо розв'язувальна крива вистрілила вгору, він був дещо занадто високим у своїй оцінці нахилу на початку того сегменту — коригуйте вниз. Якщо вона вистрілила вниз, коригуйте вгору. Шматок за шматком, він ходив по гребню дюни.

Що це зробило можливим: нестійкість росла швидко. Мала помилка в стартовому нахилі виробляла велике, явне відхилення — чіткий сигнал про те, в якому напрямку коригувати. М'яко нестійка задача не надала б такого чіткого сигналу.

Професійне зобов'язання: 'Було б так легко відхилити проблему як нерозв'язну, неправильно поставлену, або будь-яку іншу причину, яку ви хотіли б собі розповісти, але я все ще вважаю, що важливі задачі, правильно поставлені, можуть бути використані для вилучення деякого корисного знання'.

Тест Роршаха & Випадковість

Психолог Bell Labs побудував машину: 12 перемикачів, червоне світло, зелене світло. Суб'єкти встановлювали перемикачі, натискали кнопку, спостерігали результат, і після 20 спроб писали теорію про те, як зробити зелене світло засвітитись. Їхня теорія передавалася наступному суб'єкту, і цикл повторювався.

Світла були підключені до випадкового джерела. Не було жодного закономірності.

Усім без винятку Bell Labs науковців — усім висока кваліфікованим технічним співробітникам — ніколи не сказав: немає закономірності. Вони всі знайшли теорії.

Спостереження Хеммінга: жоден з них не був статистиком або теоретиком інформації. Ці два напрями підготовки практиків запитувати: 'Те, що я бачу, дійсно там, чи це просто випадковий шум?'

Імплікація для симуляції: симуляція, яка може коригуватися до тих пір, поки вона не відповідає спостережуваним даним, є тестом Роршаха. Процес коригування знаходить модель, узгоджену з даними, але не обов'язково справжню модель. Розрізнення сигналу від шуму вимагає навмисної статистичної дисципліни — утримувачи дані, попередньо визначені гіпотези, довірчі інтервали — не просто добрих намірів.

Заключний наказ Хеммінга: 'Запитання «А якщо...?» часто виникатиме у вашому майбутньому, звідси потреба вам оволодіти концепціями й можливостями симуляцій, і бути готовими ставити під сумнів результати та копати глибше в деталі, коли необхідно'.

Рівняння транзистора Хеммінга була технічно нерозв'язною стандартними методами — двонаправлена нестійкість блокувала кожен класичний підхід. Його розв'язання був *використовувати* нестійкість як сигнал наведення. Опишіть задачу в вашій галузі, яка здається нерозв'язною або невирішуваною стандартними методами. Яка властивість задачі, що робить її складною, може також бути використана як сигнал, обмеження, чи посібник для пошуку нестандартного розв'язання?