- •Методичні рекомендації до вивчення дисціпліни "Комп’ютерне моделювання електронних схем, конструкцій та технологій електронних апаратів"
- •1.Загальні питання
- •2.Визначення полюсів схемних функцій
- •2.1.Метод дихотомії
- •2.2.Метод хорд
- •2.3.Метод дотичних
- •2.4.Пошук комплексних коренів нелінійних рівнянь
- •3.Визначення коефіціентів чутливості
- •3.1.Розрахунок перших частинних похідних функції
- •3.1.1.Схема 2т чисельного диференціювання
- •3.1.2.Схема 3т чисельного диференціювання
- •3.2.Розрахунок власних частинних похідних другого порядку
- •3.3.Розрахунок взаємних похідних другого порядку
- •4.Визначення міри відповідності характеристик реа
- •4.1.Метод прямокутників
- •4.2.Метод трапецій
- •4.3.Метод Симпсона
- •5.Модедювання радіоелектронних апаратів системами рівнянь
- •5.1.Метод Гауса
- •5.1.1.Розв’язання систем алгебраїчних рівнянь методом Гауса
- •5.1.2.Обчислення визначника матриці методом Гауса
- •5.1.3.Обернення матриці методом Гауса
- •5.2.Метод Жордана
- •5.2.1.Обернення матриці методом Жордана
- •5.3.Метод lu-факторизації
- •5.4.Метод опорного елементу
- •6.Ітераційні методи розвяЗувАння систем лінійних рівнянь
- •6.1.Метод Якобі
- •6.2.Метод Гауса-Зейделя
- •6.3.Метод послідовної верхньої релаксації
- •7.Моделюванні статичного режиму радіоелектронних засобів
- •7.1.Метод простої ітерації
- •7.2.Метод Ньютона
- •2.3 Метод продовження параметру
- •8.Інтерполяція та наближення кривими
- •8.1.Метод невизначених коефіціентів
- •8.2.Регресійний аналіз. Метод найменших квадратів
- •8.2.1.Лінійна регресія
- •8.2.2.Квадратична регресія
- •9.Розв’язання звичайних диференційних рівнянь
- •9.1.Постановка задачі
- •9.2.Метод Ейлера
- •9.3.Метод Ейлера-Коші
- •9.4.Метод Рунге-Кутта
- •Перелік літератури
5.1.3.Обернення матриці методом Гауса
Наявність при моделюванні РЕА оберненної матриці А-1 (відносно початкової матриці А) дозволяє отримати розвязок системи рівнянь АХ=В у вигляді Х=А-1В [2, 5], а також розрахувати похідні схемних функцій по параметрах компонентів РЕА без методичної похибки [9].
Відомо [10], що
, |
(5.4) |
де = det(A) – визначник матриці А; ij – алгебраїчні доповнення елементів матриці А; Â – союзна, або приєднувальна матриця.
Обернення можливе лише у випадку, коли А - добре обумовлена матриця, тобто det(A)0. Безпосереднє використання (5.4) потребує багато часу для розрахунку визначників. Використання ж методів Гауса та Жордана дозволяє значно прискорити процес обернення матриці.
Обернення матриці методом Гауса грунтується на одночасному розвязанні системи рівнянь з кількома стовпчиками вільних членів. Наприклад, для матриці третього порядку:
,
де сукупність стовпчиків невідомих і складають обернену матрицю А-1.
Задача 5.4. Методом Гауса виконати обернення матриці із задачі 5.1.
Розв’язок. Розширена матриця коефіцієнтів на етапах перетворення початкової матриці в трикутну, а стовпчиків вільних членів в обернену наведені нижче:
.
Зворотній хід для трьох стовпчиків вільних членів дає матрицю, обернену до початкової:
Перевірка результату показує:
Обернення матриці виконано вірно.
5.2.Метод Жордана
Метод Жордана – модіфікація метода Гауса, що дозволяє отримати розвязок системи рівнянь без зворотнього ходу - ґрунтується на перетворені початкової матриці коефіцієнтів у еквівалентну одиничну матрицю Е.
Алгоритм розвязання системи рівнянь методом Жордана потребує:
покласти номер провідного рівняння k=1;
пронормувати k-е рівняння за формулою
вибрати i-е (i [1, n]; i k) рівняння для перетворення;
виконати перетворення і-го рівняння за формулою
якщо не всі рівняння перетворені, то перейти до п.3 для вибору наступного рівняння;
якщо не всі рівняння з номером k[1, n] пронормовані, то покласти k= k + 1 і перейти до п.2.
Задача 5.5. Методом Жордана розвязати систему рівнянь АХ=В, де
Розв’язок. Нормування та перетворення розширеної матриці для k =1:
Нормування та перетворення системи рівнянь для k =2:
Нормування та перетворення системи рівнянь для k =3:
Таким чином, вектор невідомих становить що співпадає з розвязком цієї ж системи методом Гауса.
Програма Jordan, що реалізуєя метод Жордана для попереднього прикладу, наведена нижче.
Program Jordan;
uses CRT;
const n=3;
A: array [1..n,1..n+1] of real=(( 1, -1, 0, 3),
(-1, 3, -1, 0),
( 0, -1, 2, 0));
var i,j,k: integer;
g: real;
BEGIN
ClrScr;
for k:=1 to n do
begin g:=a[k,k];
for j:=k to n+1 do a[k,j]:=a[k,j]/g;
for i:=1 to n do
if i<>k then
begin g:=a[i,k];
for j:=k to n+1 do
a[i,j]:=a[i,j]-g*a[k,j];
end;
end;
for i:=1 to n do { виведення матрицi }
begin
for j:=1 to n+1 do write(a[i,j]:5:1);
writeln
end;
writeln; { виведення результату }
for i:=1 to n do writeln('x',i,' = ',a[i,n+1]:5:3);
readln
END.
Результати виконання програми:
1.0 0.0 0.0 5.0
0.0 1.0 0.0 2.0
0.0 0.0 1.0 1.0
x1 = 5.000
x2 = 2.000
x3 = 1.000
Це відповідає результатам, отриманим раніше.