Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Moy_otchyot2.docx
Скачиваний:
8
Добавлен:
25.03.2015
Размер:
269.22 Кб
Скачать

Решение:

int main(){

int n;

float a[4][4],a2[10][10],b[4],oq[4],q,s,x[4],sum,op=1;

printf("vvedite razmer matrix\n");

scanf("%d",&n);

printf("vvedite matrix and svobodnie elem\n");

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

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

scanf("%f",&a[i][j]);

scanf("%f",&b[i]);

}

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

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

a2[i][j]=a[i][j];

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

q=a[i][i];

oq[i]=q;

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

a[i][j]/=q;

b[i]/=q;

for(int k=i+1;k<n;k++){

s=a[k][i];

for(int j=i;j<n;j++)

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

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

}

}

x[n-1]=b[n-1];

for(int i=n-2;i>=0;i--){

sum=0;

for(int j=i+1;j<n;j++)

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

x[i]=b[i]-sum;

}

printf("poluchennie korni\n");

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

printf("%.2f\n",x[i]);

getch();

}

Введенные данные

Полученный результат

Проверка

0.77

1.79

0.26

2.21

-0.41

1.02

void main(){

int n,l;

float a[4][4],b[4],y,max,q,s,x[4],sum,op=1,oq[4],a2[10][10];

printf("vvedite razmernost\n");

scanf("%d",&n);

printf("vvedite matrix and svobodnie elem\n");

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

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

scanf("%f",&a[i][j]);

scanf("%f",&b[i]);

}

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

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

a2[i][j]=a[i][j];

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

l=i;

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

for(int j=i;j<n;j++)

if(fabs(a[j][i])>max){

max=fabs(a[j][i]);

l=j;

}

if(i!=l){

for(int j=i;j<n;j++){

y=a[i][j];

a[i][j]=a[l][j];

a[l][j]=y;

}

y=b[i];

b[i]=b[l];

b[l]=y;

}

q=a[i][i];

oq[i]=q;

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

a[i][j]/=q;

b[i]/=q;

for(int k=i+1;k<n;k++){

s=a[k][i];

for(int j=i;j<n;j++)

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

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

}

}

x[n-1]=b[n-1];

for(int i=n-2;i>=0;i--){

sum=0;

for(int j=i+1;j<n;j++)

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

x[i]=b[i]-sum;

}

printf("poluchennie korni\n");

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

printf("%.2f\n",x[i]);

Введенные данные

Полученный результат

Проверка

0.77

1.79

0.26

2.21

-0.41

1.02

  1. – Г.

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

op*=oq[i];

printf("opredelitel raven\n%.2f\n",op);

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

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

a2[i][j+n]=0;

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

a2[i][i+n]=1;

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

q=a2[i][i];

for(int j=0;j<2*n;j++)

a2[i][j]/=q;

for(int k=i+1;k<n;k++){

s=a2[k][i];

for(int j=0;j<2*n;j++)

a2[k][j]-=a2[i][j]*s;

}

float r;

for(int i=0;i<n-1;i++)

for(int k=1+i;k<n;k++){

r=a2[i][k];

for(int j=0;j<2*n;j++)

a2[i][j]-=a2[k][j]*r;

}

}

printf("obratnaja matrix\n");

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

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

printf("%.2f ",a2[i][j+n]);

printf("\n");

}

getch();

}

Введенные данные

Определитель

Обратная матрица

-1.31

0.2061 0 0.5044

0.2142 0 0.0825

0.4396 0 0.6793

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]