Archive

Archive for the ‘Чисельні методи’ Category

Порівняльний тест стабільності процесу Грама — Шмідта

Сьогодні ми розглянемо стабільність процесу Грама-Шмідта. Для цього ми реалізуємо класичну, clgs(), і стабільну, stgs(), версії алгоритму, а як еталон ми використаємо вбудовану функцію MATLAB – qr(). Ми згенеруємо 80×80 матрицю з “випадковою” Q і з R чиї діагональні елементи спадають експоненційно. Для створення вхідної матриці A ми скористаємось cингулярним розкладом матриці. Більше про те чим відрізняєтьс класичний і стабільний варіанти алгоритму можна прочитати у статті на Вікіпедії.
Читати далі…

Advertisements

Адаптивний крок у чисельних методах розв’язування диференціальних рівнянь

Який би метод ми не використовували, головне завдання полягає у виборі хорошого кроку. Ідеально, ми хочемо вибрати h якомога більшим, але не настільки великим, щоб отримати надмірну помилку, або навіть гірше, спричинити нестабільність. Якщо ми оберемо фіксований крок, ми зможемо просуватись настільки швидко, наскільки нам дозволить найгірша секція x(t). Чого б нам хотілось, так це змінювати крок під час обчислень. Кожного разу коли ми можемо збільшити крок без введення завеликої помилки, ми повинні робити це. Відповідно, коли крок потрібно зменшити, щоб уникнути надмірної помилки, ми також повинні це робити. Це і є ідеєю адаптивного (пристосовного) крокування: зміна кроку h під час розв’язування звичайного диференціального рівняння (ЗДР).

У цій статті ми розглянемо пристосовне крокування для метода Ейлера. Базова ідея така. Припустимо, що ми маємо певний крок h, і ми хочемо знати як сильно ми можемо змінити його.
Читати далі…