free(js); printf("fail\n"); return(0); } d=a[k*n+k]; for (j=k+1;j<=n-1;j++) { p=k*n+j; a[p]=a[p]/d; } for (j=0;j<=m-1;j++) { p=k*m+j; b[p]=b[p]/d; } for (j=k+1;j<=n-1;j++) { for (i=0;i<=n-1;i++) { p=i*n+j; if (i!=k) { a[p]=a[p]-a[i*n+k]*a[k*n+j]; } } } for (j=0;j<=m-1;j++) { for (i=0;i<=n-1;i++) { p=i*m+j; if (i!=k) { b[p]=b[p]-a[i*n+k]*b[k*m+j]; } } } } for (k=n-1;k>=0;k--) { if (js[k]!=k) { for (j=0;j<=m-1;j++) { p=k*m+j; q=js[k]*m+j; t=b[p]; b[p]=b[q]; b[q]=t; } } } free(js); return(1); }
//复系数全选主元高斯-约当消去法 //ar-n*n 存放方程组的系数矩阵的实部,返回时将被破坏 //ai-n*n 存放方程组的系数矩阵的虚部,返回时将被破坏 //br-n*m常数向量的实部,每列为一组,返回时存放m组解向量的实部 //bi-n*m常数向量的虚部,每列为一组,返回时存放m组解向量的虚部 //n-方程组的阶数 //m-方程组右端常数向量的个数 //返回0表示原方程组的系数矩阵奇异 int cdcgj(double ar[],double ai[],double br[],double bi[],int n,int m) { int *js,l,k,i,j,is,u,v; double p,q,s,d; js=malloc(n*sizeof(int)); for (k=0;k<=n-1;k++) { d=0.0; for (i=k;i<=n-1;i++) { for (j=k;j<=n-1;j++) { u=i*n+j; p=ar[u]*ar[u]+ai[u]*ai[u]; if (p>d)
上一篇:IIS 6.0配置HTTP压缩
下一篇:微软怎么设计Exchange 2003的体系结构
|