[問題] 程式問題
遇到的問題:我寫了一個有關運算反矩陣的程式碼
單獨使用這個程式碼的時候是沒問題的
跑出來的解果都與matlab跑出來一樣
可是當我把這一批程式碼放到另外一個我要使用的運算群裡
跑出來的反矩陣卻是錯的
這2個程式碼長的完全一模一樣 可是結果卻差很多
有問題的code:以下是我反矩陣的程式碼(DEV C++)
for(int i=0;i<6;i++){ //先假設N的反矩陣是單位矩陣
for(int j=0;j<6;j++){
if(i==j){IN[i][j]=1;}
else IN[i][j]=0;
}
}
for(int i=0;i<6;i++){ //產生下三角出來
if(N[i][i]==0){ //將此行往下移
double tmp1; //暫存
double tmp2;
for(int j=0;j<6;j++){
tmp1=N[i][j];
tmp2=IN[i][j];
for(int q=i;q<5;q++){
N[q][j]=N[q+1][j];
IN[q][j]=IN[q+1][j];
}
N[5][j]=tmp1;
IN[5][j]=tmp2;
}
}
for(int l=1;l+i<6;l++){
if (N[i+l][i]==0){continue;}
else {
double k;
k=(N[i+l][i]/N[i][i]);
for(int j=5;j>=0;j--){
IN[i+l][j]=(k*IN[i][j]-IN[i+l][j]);
N[i+l][j]=(k*N[i][j]-N[i+l][j]);
}
}
}
}
for(int i=5;i>=0;i--){ //產生上三角出來
for(int l=1;i-l>=0;l++){
if (N[i][i]==0 || N[i-l][i]==0){continue;}
else {
double k;
k=(N[i-l][i]/N[i][i]);
for(int j=0;j<6;j++){
IN[i-l][j]=(k*IN[i][j]-IN[i-l][j]);
N[i-l][j]=(k*N[i][j]-N[i-l][j]);
}
}
}
}
for(int i=0;i<6;i++){ //約分,化成單位矩陣
double k;
k=N[i][i];
for(int j=0;j<6;j++){
IN[i][j]=(IN[i][j]/k);
N[i][j]=(N[i][j]/k);
}
}
請大家幫我看一下可能是什麼問題
我找到眼睛快脫窗了@.@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.198.231
推
01/14 03:38, , 1F
01/14 03:38, 1F
→
01/14 03:39, , 2F
01/14 03:39, 2F
→
01/14 03:47, , 3F
01/14 03:47, 3F
→
01/14 03:48, , 4F
01/14 03:48, 4F
推
01/14 03:50, , 5F
01/14 03:50, 5F
→
01/14 03:50, , 6F
01/14 03:50, 6F
→
01/14 03:54, , 7F
01/14 03:54, 7F