У вас вопросы?
У нас ответы:) SamZan.net

12а Воронин ДИ Перевірив к

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.4.2025

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ

ДОНЕЦЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

Кафедра ЕПМ

Звіт

З лабораторної роботи №5

ОБЕРНЕННЯ МАТРИЦЬ

Виконав:ст.гр ЕСЕ-12а

Воронин Д.И.

Перевірив  к.т.н., доцент Шлепньов С.В

Донецк-2013

Мета роботи:  навчитися обчислювати матрицю, зворотну заданій за допомогою ЕОМ.

5.2 Завдання

Виконати обернення довільних квадратних матриць другого, третього і четвертого порядків з контролем результату.

Текст програми

#include <cstdlib>

#include <iostream>

#include <math.h>

using namespace std;

int SLAU(float **matrica_a, int N, float *massiv_b,

float *x)

{

int i,j,k,r;

float c,M,max,s, **a, *b;

a=new float *[N];

for(i=0;i<N;i++)

a[i]=new float [N];

b=new float [N];

for(i=0;i<N;i++)

for(j=0;j<N;j++)

a[i][j]=matrica_a[i][j];

for(i=0;i<N;i++)

b[i]=massiv_b[i];

for(k=0;k<N;k++)

{

max=fabs(a[k][k]);

r=k;

for(i=k+1;i<N;i++)

if (fabs(a[i][k])>max)

{ max=fabs(a[i][k]);

r=i;}

for(j=0;j<N;j++)

{ c=a[k][j];

a[k][j]=a[r][j];

a[r][j]=c; }

c=b[k]; b[k]=b[r]; b[r]=c;

for(i=k+1;i<N;i++)

{ for(M=a[i][k]/a[k][k],j=k;j<N;j++)

a[i][j]-=M*a[k][j];

b[i]-=M*b[k];

}}

if (a[N-1][N-1]==0)

if(b[N-1]==0) return -1;

else return -2;

else

{for(i=N-1;i>=0;i--)

{for(s=0,j=i+1;j<N;j++)

s+=a[i][j]*x[j];

x[i]=(b[i]-s)/a[i][i];

}

return 0;

}}

int INVERSE(float **a, int n, float **y)

{ int i,j,res;

float *b, *x;

b=new float [n];

x=new float [n];

for(i=0;i<n;i++)

{for(j=0;j<n;j++)

if (j==i) b[j]=1; else b[j]=0;

res=SLAU(a,n,b,x);

if (res!=0) break;

else

for(j=0;j<n;j++)

y[j][i]=x[j];

}

delete [] x;

delete [] b;

if (res!=0) return -1;

else return 0;}

int main(int argc, char** argv)

{

int i,j,n,k,result;

float **A,**B,**E;

cout<<"Vvedite razmer matrix:";

cin>>n;

A=new float *[n];

for(i=0;i<n;i++)

A[i]=new float [n];

B=new float *[n];

for(i=0;i<n;i++)

B[i]=new float [n];

cout<<"vvedite matrix A"<<endl;

for(i=0;i<n;i++)

{for(j=0;j<n;j++)

{cin>>A[i][j];}}

result=INVERSE(A,n,B);

if (result==0)

{ cout<<"Inverse matrix"<<endl;

for(i=0;i<n;cout<<endl,i++)

for(j=0;j<n;j++)

cout<<B[i][j]<<"\t";

}

else cout<<"No Inverse matrix"<<endl;

E=new float *[n];

for(i=0;i<n;i++)

E[i]=new float [n];

for(i=0;i<n;i++)

for(j=0;j<n;j++)

for(k=0;k<n;k++)

E[i][j]+=A[i][k]*B[k][j];

cout<<"proverka Inverse"<<endl;

for(i=0;i<n;cout<<endl,i++)

for(j=0;j<n;j++)

cout<<E[i][j]<<"\t";

}

Блок-схеми

Далі на рис.1, рис. 2 та рис.3 буде наведено використані у програмі блок-схеми

Рис 1.1 Блок-схема функції SLAU

Рис 1.2 Блок-схема функ функції SLAU

Рис. 2 Блок-схема функції INVERS

Рис.3 Блок-схема функції main

Результат роботи програми

Висновок

У даній роботі навчитився обчислювати матрицю, зворотню заданій за допомогою ЕОМ.




1. Мобильный Бюджет mx 100 номеров Что необходимо проверить при подключении нового клиента без ГВ
2. 2000 Печатается по постановлению Редакционноиздательского Совета МГУДТ
3. тема имен доменов DNS Domin Nme System позволяет обращаться к компьютерам не только по IP адресам но и по индивидуаль
4. База данных видеокарт
5. Теория вероятности
6. дер аралы~ сал~ындату ж~йесі жо~ ж~не жылуды ~айта ~алпына келтірмейтін ~олданылады
7. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата історичних наук Київ 1999 Дисертаціє.html
8. Разработка мероприятий по повышению эффективности маркетинговой деятельности предприятия
9.  Летние Олимпийский игры до первой мировой войны- историческое значение первых олимпийских игр современн
10. Реферат- Уход за плодоносящим садом