Введення
Система лінійних алгебраїчних рівнянь - математична модель, яка описує стан рівноваги економічного об'єкта, яке називається сталим режимом або статикою об'єкта. Економічна статика вивчає допустимі та раціональні стану економічного об'єкта.
Нехай дана система n лінійних алгебраїчних рівнянь з n невідомими
(1.1)
або в матричній формі
Ax = b,
де
- матриця коефіцієнтів,
- стовпець вільних членів і стовпець невідомих відповідно.
Якщо матриця А невироджена, тобто
то система (1.1) має єдине рішення. У цьому випадку рішення системи (1.1) з теоретичної точки зору не представляє праці. Значення невідомих x i (i = 1,2, ... n) можуть бути отримані за відомими формулами Крамера
Крамер квадратний корінь матриця
де матриця A i виходить із матриці А заміною її i-го стовпця стовпцем вільних членів.
Але такий спосіб вирішення лінійної системи з n невідомими призводить до обчислення n + 1 визначників порядку n, що являє собою досить трудомістку операцію при скільки-небудь великому числі n.
Застосовувані в даний час методи рішення лінійних систем можна розбити на дві групи: точні і наближені.
Точними методами називаються такі методи, які в припущенні, що обчислення ведуться точно (Без округлень), приводять до точних значень невідомих x i . Так як на практиці всі обчислення ведуться з заокругленнями, то і значення невідомих, отримані точним методом, неминуче будуть містити похибки. До точних методів відносяться, наприклад, метод Гаусса, метод квадратних коренів.
Наближеними методами називаються такі методи, які навіть в припущенні, що обчислення ведуться без округлень, дозволяють отримати розв'язок системи (x 1 , x 2 , ..., x n ) лише з заданою точністю. Точне рішення системи в цих випадках може бути отримано теоретично як результат нескінченного процесу. До наближених методів відносяться метод простої ітерації, метод Зейделя та ін Кожен з цих методів не завжди є збіжним в застосуванні до конкретного класу систем лінійних рівнянь.
Дана контрольна робота має наступну структуру: на початку розглядається математична постановка завдання для методу квадратних коренів при вирішенні систем лінійних алгебраїчних рівнянь. Потім проводиться реалізація даного методу за допомогою обчислювальних засобів ЕОМ, а саме прикладною програмою Matlab 6.5. На прикладі реалізації декількох тестових завдань проводиться аналіз точності даного методу, а саме коли найбільш ефективно застосовувати метод квадратних коренів при вирішенні систем лінійних алгебраїчних рівнянь. Аналіз проводиться на основі матриці А (її мірності, розрідженості, обумовленості. Результати, отримані на основі методу квадратних коренів, наведені в кінці даної роботи. Також в роботі представлений графічний матеріал. По закінченні проведення дослідження робота завершується логічним висновком.
Математична постановка задачі
Метод квадратних коренів використовується для вирішення лінійної системи
Ax = b,
(1.2)
у якої матриця А симетрична, тобто
a ij = a ji (i, j = 1, 2, ..., n).
Метод є більш економним і зручним у порівнянні з вирішенням систем загального вигляду.
Рішення системи здійснюється в два етапи.
Прямий хід. Уявімо матрицю А у вигляді добутку двох взаємно транспонувати трикутних матриць:
(1.3)
А = Т Вў Т,
де
.
Перемножая матриці T Вў і T і прирівнюючи матриці A, отримаємо наступні формули для визначення t ij :
(1.4)
Після того, як матриця Т знайдена, систему (1.2) замінюємо двома еквівалентними їй системами з трикутними матрицями
(1.5)
T Вў y = b, Tx = y.
Зворотний хід. Записуємо в розгорнутому вигляді системи (1.5):
Звідси послідовно знаходимо
При обчисленнях застосовується звичайний контроль з допомогою сум, причому при складанні суми враховуються всі коефіцієнти відповідного рядка.
Зауважимо, що при дійсних a ij можуть вийти чисто уявні t ij . Метод застосовний і в цьому випадку.
Опис програмного забезпечення (згідно зі стандартами на ІТ)
Для вивчення даного методу було обрано програмне забезпечення: Matlab 6.5, в операційній системі Windows XP Professional. На етапі проектування була створена програма Square ('Квадрат'). Вхідними змінними для даної програми є матриця A і відповідна їй матриця B. Результатом виконання даної програми є матриця X (Вихідна змінна), яка є рішенням системи лінійних алгебраїчних рівнянь.
Нижче описаний алгоритм реалізації методу квадратних коренів на мові програмування в середовищі Matlab 6.5:
A = input ('Введіть матрицю A = ');
B = input ('Введіть B =');
if A == A '
if det (A) ~ = 0
s = size (A, 1);
if size (B ', 1) == S
T = zeros (s);
T (1,1) = sqrt (A (1,1));
for k = 2: s
T (1, k) = A (1, k)/T (1,1)
end
for j = 2: s
for i = 2: s
if i == j
sm = 0
for k = 1: (i-1)
sm = sm + T (k, i) ^ 2
end
T (i, i) = sqrt (A (i, i)-sm)
else
if i
sm = 0
for k = 1: (i-1)
sm = sm + T (k, i) * T (k, j)
end
T (i, j) = (A (i, j)-sm)/T (i, i)
end
end
end
end
Y = zeros (s, 1)
Y (1) = B (1)/T (1,1)
for i = 2: s
sm = 0
for k = 1: (i-1)
sm = sm + T (k, i) * Y (k)
end
sm
Y (i) = (B (i)-sm)/T (i, i)
end
X = zeros (s, 1)
X (s) = Y (s)/T (s, s)
for m = 1: (s-1)
i = s-m
sm = 0
for k = (i +1): s
sm = sm + T (i, k) * X (k)
sm
end
X (i) = (Y (i)-sm)/T (i, i)
E = A * X-B '
end
else
error ('B не відповідає матриці А ')
end
else
error ('det А = 0')
end
else
B = B * A '
A = A * A '
if det (A) ~ = 0
s = size (A, 1);
if size (B ', 1) == S
T = zeros (s);
T (1,1) = sqrt (A (1,1));
for k = 2: s
T (1, k) = A (1, k)/T (1,1)
end
for j = 2: s
for i = 2: s
if i == j
sm = 0
for k = 1: (i-1)
sm = sm + T (k, i) ^ 2
end
T (i, i) = sqrt (A (i, i)-sm)
else
if i
sm = 0
for k = 1: (i-1)
sm = sm + T (k, i) * T (k...