MATLAB має пару "точних" функцій для цього, cond
і rcond
, при цьому останні повертають зворотний номер умови. Наближена функція Matlab condest
більш докладно описана нижче.
Часто оцінки кількості умови генеруються як побічні продукти рішення лінійної системи для матриці, тому ви, можливо, зможете підсилити оцінку кількості умов для інших робіт, які вам так чи інакше потрібно виконати. Дивіться тут короткий опис того, як обчислюються оцінки. Також зауваження документації Sandia Labs AztecOO (див. Розділ 3.1), що необов'язкові оцінки кількості умов доступні за допомогою ітеративних розв'язувачів (використовуючи сформовану тридіагональну матрицю Ланцоса з кон'югатними градієнтами або генеровану матрицю Гессенбурга з ретартованими GMRES).
Оскільки ваші матриці є "дуже великими" та "доступними лише як функції", логічним підходом буде метод, який дає відповідні копії на розв'язаному градієнті або варіанті.
Нещодавній документ arXiv.org Нестаціонарні екстремальні наближення власних значень в ітеративних рішеннях лінійних систем та оцінювачів відносної похибки пропонує такий підхід і містить кілька цитат до попередньої літератури.
Тепер, коли я дивлюся, на цьому форумі є ряд тісно пов’язаних попередніх питань (не всі з відповідями, але перевірити коментарі):
Оцініть крайні власні значення за допомогою CG
Оцінка чисел умов для дуже великих матриць
Найшвидший алгоритм для обчислення номера умови великої матриці в Matlab / Octave
Оскільки наявність коду MATLAB була частиною питання, ось деяка інформація про condest
вбудовану функцію, яка оцінює число умови 1 норми∥A∥1∥A−1∥1. Ідея - від Хагера (1984), з написанням на 2010 рік та розширеннями , щоб чітко обчислити (знайти максимальну 1-норму стовпця) та оцінити градієнтним методом. Дивіться також Джон Burkardt в УМОВИ , бібліотеку MATLAB (інші мови доступні) «для обчислення або оцінки числа обумовленості матриці.»∥A∥1∥A−1∥1
Оскільки ваша матриця, мабуть, є ермітською і позитивно визначеною, можливо, номер умови 2 норми викликає більший інтерес. Задача полягає в оцінці співвідношення найбільших до найменших (абсолютних) власних значень. Проблема дещо паралельна випадку з 1 нормою, оскільки загалом хороша оцінка найбільшого власного значення може бути легко отримана, але оцінка найменшого власного значення виявляється складніше.
Незважаючи на те, що націлені на випадки, що не стосуються SPD (і навіть не квадратні), ця остання стаття arXiv.org, Надійна оцінка ітеративного стану-кількості , дає хороший огляд найменшої проблеми оцінки власного значення та багатообіцяючої лінії атаки Крилова-підпростору метод (LSQR), який становить кон'югат градієнтів у випадку SPD.