
- •О. О. Абакумова «Обчислювальна математика-1»
- •Теоретичні відомості Абсолютна та відносна похибки
- •Похибки округлення
- •Зразок виконання завдання
- •Контрольні питання
- •Теоретичні відомості
- •Зразок виконання завдання
- •Приклад програми
- •Контрольні питання
- •Теоретичні відомості
- •Зразок виконання завдання Завдання: наближено відбудувати функцію , що задана таблицею
- •Приклад програми
- •Контрольні питання
- •Теоретичні відомості Кінцеві різниці
- •Перша інтерполяційна формула Ньютона
- •Друга інтерполяційна формула Ньютона
- •Зразок виконання завдання
- •Приклад програми
- •// Код у коментарях використовується для випадку інтерполяції назад
- •Контрольні питання
- •Теоретичні відомості
- •Зразок виконання завдання
- •Приклад програми
- •Контрольні питання
- •Теоретичні відомості
- •Метод прямокутників
- •Метод Сімпсона
- •Метод трапецій
- •Зразок виконання завдання
- •Приклад програми
- •Контрольні питання
- •Теоретичні відомості
- •Види матриць
- •Зразок виконання завдання
- •Приклад програми
- •Контрольні питання
- •Теоретичні відомості
- •Визначник матриці
- •Метод союзної (приєднаної) матриці
- •Зразок виконання завдання
- •Приклад програми
- •Контрольні питання
Метод союзної (приєднаної) матриці
Нехай для даної неособливої матриці А потрібно знайти обернену матрицю А-1.
Складемо
для матриці А
так звану
союзну
(приєднану)
матрицю
:
,
де – алгебраїчні доповнення відповідних елементів матриці А.
Обернена матриця А-1 знаходиться за формулою:
.
Зразок виконання завдання
Завдання: Обернути матрицю А методом союзної (приєднаної) матриці:
.
Розв’язання:
Знаходимо визначник матриці А:
Матриця не вироджена. Отже, обернена існує.
Знаходимо алгебраїчні доповнення елементів матриці А:
,
A21
=22, A31
= -2, A41
= -16,
A12 = 18, A22 = 34, A32 = 2, A42 = -24,
A13 =-4, A23 = -8, A33 = 0, A43 = 4,
A14 = -30, A24 = -50, A34 = -2, A44 = 36.
Складаємо союзну (приєднану) матрицю:
Знаходимо обернену матрицю:
Виконуємо перевірку:
Відповідь:
Приклад програми
// Обернути матрицю А методом союзної (приєднаної) матриці
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <math.h>
int a[4][4]={{1,4,1,3},{0,-1,3,-1},{3,1,0,2},{1,2,5,1}};
int i,j;
float b[4][4],A[4][4];
int Det3(int x[3][3])
{
return x[0][0]*x[1][1]*x[2][2]+x[1][0]*x[2][1]*x[0][2]+x[0][1]*x[1][2]*x[2][0] -x[0][2]*x[1][1]*x[2][0]-x[2][1]*x[1][2]*x[0][0]-x[0][1]*x[1][0]*x[2][2];
}
int Minor(int X[4][4],int x,int y)
{
int m[3][3],i,j,i1,j1;
i=-1;
for (i1=0;i1<4;i1++)
{
j=-1;
if (i1!=x)
i++;
for (j1=0;j1<4;j1++)
if (i1!=x && j1!=y)
{
j++;
m[i][j]=X[i1][j1];
}
}
return Det3(m);
}
int Det4(int X[4][4])
{
int rez=0;
for (j=0;j<4;j++)
rez+=pow(-1,j)*X[0][j]*Minor(X,0,j);
return rez;
}
void main()
{
clrscr();
cout<<"Nahozhdenie obratnoy matrici pri pomoshi coyuznoy matrici";
cout<<endl<<"Zadayte matricu A:"<<endl;
for (i=0;i<4;i++)
for (j=0;j<4;j++)
{
cout<<"a["<<i+1<<","<<j+1<<"]= ";
cin>>a[i][j];
}
clrscr();
cout<<"Nahozhdenie obratnoy matrici pri pomoshi coyuznoy matrici";
cout<<endl<<"Matrica A (ishodnaya):"<<endl;
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
cout<<setw(5)<<a[i][j];
cout<<endl;
}
cout<<endl;
for (i=0;i<4;i++)
for (j=0;j<4;j++)
b[j][i]=pow(-1,i+j+2)*Minor(a,i,j);
int det=Det4(a);
cout<<"Opredelitel' Det(A)= "<<det<<endl;
cout<<"Soyuznaya matrica B:"<<endl;
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
cout<<setw(5)<<b[i][j];
cout<<endl;
}
for (i=0;i<4;i++)
for (j=0;j<4;j++)
A[i][j]=b[i][j]/det;
cout<<endl;
cout<<"Obratnaya matrica R:"<<endl;
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
cout<<setw(12)<<A[i][j];
cout<<endl;
}
getch();
}