- •Учреждение образования
- •Лабораторная работа №1 Тема: «Прямые методы решения систем линейных алгебраических уравнений»
- •Изученные теоретические вопросы: Метод Гаусса
- •Решение:
- •Лабораторная работа №2
- •Изученные теоретические вопросы:
- •Лабораторная работа №3
- •Изученные теоретические вопросы:
- •Лабораторная работа №4
- •Изученные теоретические вопросы: Метод квадратного корня
- •Лабораторная работа №5
- •Изученные теоретические вопросы: Метод отражений
- •Лабораторная работа №6 Решить систему линейных алгебраических уравнений методом вращений.
- •Изученные теоретические вопросы:
- •Решение:
- •Лабораторная работа№7 Тема: «Прямые методы решения систем линейных алгебраических уравнений»
- •Изученные теоретические вопросы: Метод ортогонализации
- •Лабораторная работа №8
- •Изученные теоретические вопросы: Метод сопряженных градиентов
- •Лабораторная работа № 9
- •Лабораторная работа № 10
- •Решение:
Лабораторная работа №6 Решить систему линейных алгебраических уравнений методом вращений.

Изученные теоретические вопросы:
Вещественные унитарные матрицы

называются
элементарными матрицами вращения или
матрицами простого поворота. При
умножении матрицы
слева на матрицу
получим матрицу
,
у которой изменятся в отличие от матрицы
только
-я
и
-я
строки. Изменение элементов
-й
и
-й
строк осуществляется по формулам
,
.
(4.17)
Всегда
можно подобрать угол поворота
так, чтобы элемент
оказался
равным нулю. Для этого нужно взять
,
,
(4.18)
если
,
и
,
в противном случае.
Теорема
4.3. Любая
действительная матрица преобразуется
в верхнюю треугольную матрицу после
умножения слева на конечную цепочку
матриц простого поворота
.
Рассмотрим
систему (4.1) и построим для матрицы
системы унитарную матрицу
так, чтобы матрица
преобразованной системы стала верхней
треугольной. Тогда система преобразуется
к виду
.
Матрица
представляет собой произведение
унитарных матриц простого поворота
.
Матрица
строится так, чтобы после умножения
обнулить элемент
,
стоящий под главной диагональю. В этом
случае угол поворота выбирается по
формулам (4.18).
Решение:
void main(){
int i,j,j1,jj,n,p,l;
float A[4][4],D[4][4],D1[4][4],S[4],L[4],X[4],W[4],U[4][4],U1[4][4],m,r,t,y,k;
clrscr();
printf("Vvedite razmernost matrix\n");
scanf("%d",&n);
printf("Vvedite elementi matrici\n");
for(i=0;i<n;i++)
for(j=0;j<=n;j++)
scanf("%f",&A[i][j]);
for(i=0;i<n;i++)
for(j=0;j<=n;j++)
{
D[i][j]=A[i][j];
U[i][j]=0;
}
for(i=0;i<n;i++)
U[i][i]=1;
for (i=0;i<n;i++)
for(j=0;j<=n;j++)
U1[i][j]=U[i][j];
for(i=0,p=0;i<n-1;i++,p++)
{
for(j=1;j<n;j++)
{
k=D[i][p]/sqrt(D[i][p]*D[i][p]+D[j][p]*D[j][p]);
m=-D[j][p]/sqrt(D[i][p]*D[i][p]+D[j][p]*D[j][p]);
U1[i][i]=k;
U1[i][j]=-m;
U1[j][i]=m;
U1[j][j]=k;
for(l=0;l<n;l++)
{
for(j1=0;j1<=n;j1++)
{
t=0;
for(jj=0;jj<n;jj++)
t+=U1[l][jj]*D[jj][j1];
D1[l][j1]=t;
}
}
for(l=0;l<n;l++)
for(j1=0;j1<=n;j1++)
{
D[l][j1]=D1[l][j1];
U1[l][j1]=U[l][j1];
}
}
}
X[n-1]=D[n-1][n]/D[n-1][n-1];
for(i=n-2;i>=0;i--)
{
t=D[i][n];
for(j=n-1;j>i;j--)
t-=D[i][j]*X[j];
X[i]=t/D[i][i];
}
printf("korni uravneniya\n");
for(i=0;i<n;i++)
printf("%.2f\n",X[i]);
getch();
}
Результат:
|
Введенные данные |
Полученный результат |
Проверка |
|
|
-8.30 0.17 -2.76 |
-2,7 1,5 -1.20 |
Лабораторная работа№7 Тема: «Прямые методы решения систем линейных алгебраических уравнений»
Постановка задачи:
Решить систему линейных алгебраических уравнений методом ортогонализации


