-
it's working :)!!
thanks for the help
enjoy:
Code:
int m,n,maxrow;
double max[30], maxi=0,temp2;
double* temp;
for(m=order;m<i;m++)
max[m]=0;
for (m=order;m<i;m++)
for(n=order;n<j;n++)
if (max[m]< fabs(P[m][n]))
max[m]=fabs(P[m][n]);
for (m=order;m<i;m++)
if ((fabs(P[m][order])/max[m])>maxi)
{
maxi=(fabs(P[m][order]/max[m]));
maxrow=m;
}
if(maxrow!=order)
{
temp=P[maxrow];
P[maxrow]=P[order];
P[order]=temp;
temp2=B[maxrow];
B[maxrow]=B[order];
B[order]=temp2;
}
}
void printP(double* P[30], double B[30], int m,int n)
{
int i,j;
printf("current matrix:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%f ",P[i][j]);
printf("| %f",B[i]);
printf("\n");
}
printf("\n");
}
void diagonal(double* P[30],double B[30],int m,int order)//diagonal b!!
{
int i,j;
double r;
for (i=order;i<m-1;i++)
{
r=P[i+1][order]/P[order][order];
for (j=order;j<m;j++)
{
P[i+1][j]-=P[order][j]*r;
}
B[i+1]-=B[order]*r;
}
}
void calc(double* P[30], double B[30], int m,int n)
{
int i,j;
double x[30],y[30];
for (i=0;i<m;i++)
y[i]=B[i];
for (i=0;i<m;i++)
x[i]=0;
for (i=m-1;i>=0;i--)
{
for (j=m-1;j>i;j--)
y[i]-=P[i][j]*x[j];
x[i]=y[i]/P[i][i];
printf("x[%d]=%f\n",i,x[i]);
}
}