![]() Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
![]() Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
![]() |
Методи упаковування розріджених матриць і векторів ⇐ ПредыдущаяСтр 2 из 2
Найпростішим методом упаковування розрідженої матриці є пряме кодування, яке полягає в записі НЕ за допомогою трьох багатовимірних векторів (масивів) – двох, що подають адресу НЕ (рядок, стовпець), і третього, який подає самі значення НЕ. Отже, наприклад, матриця
подається за допомогою векторів При наведеному кодуванні кількість компонентів запису матриці У методі прямого кодування пошук НЕ за його адресами вимагає значних витрат часу, оскільки тут у загальному випадку треба оглянути всі компоненти векторів Найкомпактнішим методом кодування
де Матриця кодується двома векторами:
Адреси НЕ (номери їхніх рядків і стовпців) визначаються як
Отже, тут кількість компонентів запису Для бінарної матриці НЕ записуються одним вектором Метод нумерації такий же трудомісткий за пошуком інформації, як і метод прямого кодування. Тут для пошуку НЕ необхідно переглянути всі компоненти вектора Одним з найефективніших методів кодування матриць є метод кодування зі зміщенням, у якому інформація про НЕ Для матриці (4.192) маємо У випадку бінарної матриці вона може бути подана тільки векторами Кількість НЕ в
де Метод кодування зі зміщенням економічний і відзначається високою швидкістю пошуку НЕ. Його недолік - значна трудомісткість зміни структури матриці (наприклад, її транспонування), що пов'язане з необхідністю кодування строго по рядках і стовпцях. Зрештою, цей недолік характерний практично для всіх методів кодування. Часто доводиться транспонувати бінарні матриці. Для них операцію транспонування найдоцільніше виконувати шляхом формування векторів Алгоритм транспонування бінарної упакованої матриці можна сформувати наступним чином. У лічильник вільних елементів вектора Розглянемо застосування викладеного алгоритму для наведеного вище прикладу. У лічильник записуємо одиницю Аналогічно формуємо елементи третього і четвертого стовпців. Нарешті, в Коли діагональні елементи квадратної матриці всі ненульові (наприклад, як у матриць вузлових адмітансів чи контурних імпедансів), у наведених вище схемах упакування ННЕ найдоцільнішим є зберігання таких елементів окремим вектором їхніх значень Під час розв'язування рівнянь методом Гаусса НЕ постійно змінюється як за їхньою кількістю, так і за значеннями. Тому схема упакування повинна забезпечувати ефективну модифікацію інформації за цими показниками. Очевидно, модифікація значень НЕ не ставить якихось спеціальних вимог щодо кодування матриць, крім посилення вимоги простоти пошуку НЕ. Схема кодування матриці повинна також забезпечувати просте визначення кількості НЕ в рядках чи стовпцях, що необхідне з погляду оптимізації порядку виключення невідомих за алгоритмом Гаусса. Розглянемо застосування методу кодування зі зміщенням під час розв'язування рівнянь методом Припустимо, що матриця
кодується векторами
Далі припустимо, що в матриці (4.196) у процесі її перетворення з'явилися ННЕ Таким чином, перекодована матриця (4.196) у зв'язку з появою двох ННЕ
Упакування матриці доцільне тільки тоді, коли кількість компонентів запису
Подані вище методи запису розріджених бінарних матриць можна з успіхом застосувати для упаковування топологічних матриць, зокрема матриць інциденцій. Для цієї ж мети дуже зручним є використання понять топологічні множини, викладені у другому розділі. Наприклад, запис матриці сполучень найекономічніший у вигляді множини суміжностей (2.83), який подається На практиці набула поширення множинна форма запису топологічних матриць у вигляді сукупностей списків. Розглянемо пі множини, які інколи називають топологічними множинами. Для кіл, складених з двополюсників, вершинні інциденції (матриця сполучень Наприклад, матриця сполучень (скорочена).
може бути подана таблицею (спискова матриця
або векторами Як видно, наведений спосіб упакування матриці Для запису матриці контурів застосовують топологічну множину найчастіше у формі контур - ребро, яка складається з двох списків: перший як вектор
маємо). Список, що відповідає векторові Отже, існує велика різноманітність методів кодування розріджених матриць - їх упаковування. Власне ця задача не викликає жодних принципових труднощів. Оскільки методи кодування топологічних множин (матриць) тісно пов'язані з формуванням останніх і особливо автоматизацією такого формування, то розглянемо його основні аспекти. Запис вершинних інциденцій ребер графа у вигляді вершинної множини за допомогою таблиці сполучень чи векторів-списків під час уводу в пам'ять машини інформації про електричне коло повністю вичерпує задачу формування першої матриці інциденцій. У такому вигляді вона безпосередньо використовується під час формування всіх математичних моделей аналізу усталених режимів і перехідних процесів електричних кіл. Власне таким же способом (вручну) можна записати в пам'ять ЦОМ на основі графа кола його другу матрицю інциденцій. Однак для випадку порівняно складних кіл ця операція дуже трудомістка й звичайно вимагає багаторазового вилучення помилок, що, як правило, супроводжують процес ручного формування такої матриці. Тому його слід автоматизувати. Спершу формують дерево графа. Для цього найпростіше скористатися наступним алгоритмом. На основі першої матриці інциденцій, прийнявши деяку базову вершину, здійснюється обхід ребер до замкнутого контура, почавши від базової вершини. Ребро, початок і кінець якого вже зустрічалися на попередньому шляху, є хордою, всі інші - ребрами графа. Далі такий обхід повторюється починаючи від деякої вершини, одержаної на попередньому кроці підграфа. Ребра, що увійшли в такий підграф, з подальшого розгляду вилучаються. Наприклад, для графа рис. 4.13, а, обійшовши ребра в натуральній послідовності їхніх номерів з базової вершини Рис. 4.13 ребра 1 до ребра 2). Наступні обходи дають хорди 5 і 6. Очевидно, для наведеного графа можна побудувати різні дерева залежно від базової вершини та шляхів обходу графа. У процесі побудови дерева, що здійснюється шляхом відповідного перезапису ребер у таблиці сполучень чи відповідних компонентів векторів Істотне значення з погляду ефективності методів аналізу електричних кіл має оптимальна структура дерева, чи коротко - оптимальне дерево. Під ним розуміємо дерево, що забезпечує оптимальну структуру рівнянь стану кола. Як було встановлено під час розгляду питання оптимізації аналітичних методів розв'язування скінченних рівнянь стану, оптимальною е структура з мінімальною кількістю недіагональних НЕ, що відповідає мінімальній кількості взаємних адмітансів у методі незалежних (вузлових) координат чи мінімальній кількості взаємних імпедансів - у методі незалежних (контурних) координат. Легко зміркувати, що у першому випадку цей мінімум дуже слабо виражений і задовольняється фактично будь-яким деревом з такою базовою вершиною, в якій збігається найбільша кількість ребер. Наприклад, для графа рис. 4.13, а оптимальне будь-яке дерево з базовою вершиною 1, 2 чи 3. Неважко також дійти висновку, що оптимальним з погляду методу контурних струмів деревом є дерево, яке забезпечує систему незалежних контурів, що охоплюють мінімальну кількість ребер. З цього погляду дерево, вибране на рис. 4.13, а, не оптимальне - один із незалежних контурів, наприклад 7, 2, З, 4, має надмірну кількість ребер. Оптимальним є дерево на рис. 4.13, б. Побудова матриці (множини) головних контурів здійснюється на базі дерева його графа. Для побудови деякого з таких контурів беремо певну хорду та знаходимо ребра дерева, що утворюють з нею контур. З цією метою переглядаємо ребра дерева (тобто переглядаємо субматрицю
Рис. 4.14
графа рис. 4.14, а в сукупності з хордою (3, 7) такими є ребра (11, 8), (10, 9), (2, 1), (5, 4), (5, 6). Це добре видно з відповідних складових векторів Побудову матриці Система головних контурів складних неланцюгових графів (а також і ланцюгових з кількістю двох паралельних ланок), як правило, є неоптимальною, тому що вона значно відрізняється від системи натуральних контурів (контурів комірок схеми кола). Формування матриці натуральних контурів такого графа не можна здійснити на основі дерева, оскільки у випадку його використання завжди одержуємо систему головних контурів. Для автоматичного формування системи натуральних контурів використовується вершинна множина, не беручи до уваги розбиття її на вектори Date: 2015-09-25; view: 579; Нарушение авторских прав |