////////////////////////////////////////////////////// // 逆行列を算出関数 ////////////////////////////////////////////////////// #include #include //---matrix inversion & determinant---// //逆行列の計算// int minver3(double xx[],double eps,int sat) { int work[500],i,j,k,l,m,r,iw,s,t,u,v; double w,wmax,pivot,api,w1,det; // extern double fabs(); // double a[]={xx[]}; l = sat; m = sat; if(m<2 || m>500 || eps<=0.0)return(999); w1 = 1.0; for(i=0;iwmax) { wmax=w; r=i; } } pivot=xx[r*l+k]; api=fabs(pivot); if(api<=eps) { det=w1; return(1); } w1*=pivot; u=k*l; v=r*l; if(r!=k) { w1=-w1; iw=work[k]; work[k]=work[r]; work[r]=iw; for(j=0;j