Єдиний явний зворотний результат, про який я знаю, - це правило Креймера , яке нещодавно було показано, що його можна обчислити в час (як Гауссова елімінація; невпевненість константи перед провідним фактором, хоча).O(n3)
Матриця, обернена є гладкою функцією тих пір, як , і рішення , безумовно, є гладкою функцією , до тих пір, поки права частина ODE є гладкою Функція і ви уникаєте випадків, коли має дефіцит, я думаю, що правий бік вирівняється. (Тут я вважаю гладким, щоб означати "принаймні двічі безперервно диференційованих".)AAdet(A)≠0xbxA
Щоб бути безпечним, напевно, найкраще переконатися, що також не є дефіцитним чисельно (тобто не має малих одиничних значень).A
Проблема з Правилом Крамера полягає в тому, що його властивості стійкості невідомі, за винятком (який стійкий вперед, але не стійкий назад). (Див. Точність та стійкість числових алгоритмів , 2-е видання, Н. Хігхем.) Це не вважається надійним алгоритмом; Гауссова ліквідація за допомогою часткового повороту (GEPP) є сприятливою.n=2
Я б очікував, що проблема з використанням BLAS + LAPACK для здійснення GEPP у вирішенні ODE буде будь-якою кінцевою диференціацією, що використовується в неявному методі ODE. Я знаю, що люди вирішували лінійні програми як частину правого оцінювання, і оскільки вони це зробили наївно (просто підключили лінійну програму до правої частини, викликаючи алгоритм симплекс), вони значно знизили точність їх обчислюваного рішення та істотно збільшив час, необхідний для вирішення проблеми. Мій лаборант придумав, як вирішити подібні проблеми набагато ефективніше, точніше; Мені доведеться подивитися, чи не вийшла його публікація. У вас може виникнути аналогічна проблема незалежно від того, ви вирішили використовувати GEPP або Cramer's Rule.
Якщо ви можете обчислити аналітичну якобіанську матрицю для своєї проблеми, можливо, ви захочете зробити це, щоб зберегти собі численні головні болі. Це буде дешевше оцінити, і, можливо, точніше, ніж кінцеве наближення різниці. Вирази для похідної зворотної матриці можна знайти тут, якщо вони потрібні. Оцінка похідної зворотної матриці виглядає так, як би знадобилося щонайменше два-три лінійні системні рішення, але всі вони були б з тією ж матрицею та різними правими сторонами, тому це не було б значно дорожче, ніж одна лінійна система вирішити.
І якщо є якийсь спосіб порівняти обчислене рішення з рішенням з відомими значеннями параметрів, я б це зробив, щоб ви могли діагностувати, чи стикалися ви з будь-яким із цих числових підводних каменів.