Страница 1 из 1

Помогите с Обратной матрицей

Добавлено: 25 май 2009, 21:19
Aartemm
Пожалуйста помогите , вот написал а не пашет.
#include<stdio.h>
#include<math.h>
#include<conio.h>
float a[10][20],x[10][10],e[10][10],c,d[10][10];
int i,j,k,n,h;
main()
{
m2: Printf("\n vvedit n \n");
scanf("\n %d",&n);
printf("\n n=%d",n);
printf("\n vvedit matrizu a \n");
for (i=0;i<n;i++)
for (j=0;j<n;j++)
scanf("\n %f",&a[j]);
for(i=0;i<n;i++)
{
a[i+n]=1.0;
printf("\n");
for(j=0;j<n;j++)
printf("%f",a[j]);
}
for(i=0;i<n;i++)
for (j=0;j<n;j++)
{
d[j]=a[j];
}
for(j=0;j<n;j++)
{
for(i=j+1;i<n;i++)
{
c=a[j]/a[j];
for(k=0;k<2*n;k++)
{
a[k]=(c*a[k])-a[j][k];
}
}
}
c=1;
for(i=0;i<n;i++)c=c*a[j];
if(c==0)
{
printf("\n det=0");
}
for(j=0;j<n;j++)
{
for(i=n-1;i>=0;i--)
{
x[i][j]=a[i][j+n];
for(k=n-1;k>i;k--)
{
x[i][j]=x[i][j]-(a[i][k]*x[k][j]);
}
x[i][j]=x[i][j]/a[i][j];
}
}
printf("\n obernena matriza= ");
for(i=0;i<n;i++)
{
printf(" \n ");
for(j=0;j<n;j++)
printf(" %f", x[i][j]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
e[i][j]=0;
for(h=0;h<n;h++)
e[i][j]=e[i][j]+(d[i][j]*x[i][j]);
}
printf("\n e=a*x/n");
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<n;j++)
printf("%f",e[i][j]);
}
goto m2;
return 0;
getch ();



}

--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Задание таково.
Для заданной матрицы найти оборотную и сделать проверку.

1.6 1.6 1.7 1.8
1.6 2.6 1.3 1.3
1.7 1.5 3.6 1.4
1.8 1.3 1.4 4.6


ошибка в том что оно не правильно считает .

Re: Помогите с Обратной матрицей

Добавлено: 25 май 2009, 23:57
Naeel Maqsudov
Есть решения и ссылки по этой теме, но правда на Pascal.
Может поможет?

Re: Помогите с Обратной матрицей

Добавлено: 26 май 2009, 00:23
Aartemm
Дайте ссылочку пожалуйста , может и розберусь .

Re: Помогите с Обратной матрицей

Добавлено: 26 май 2009, 00:48
Naeel Maqsudov
Так в предыдущем же сообщений ссылка!