我創建按照這個算法解決了使用高斯 - 喬丹法線性系統的程序:我的for循環不起作用?
for each row ri of the matrix (i from 1 to n)
replace ri with ri/rii
for each row rk of the matrix (k!=i)
replace rk with rk - rki * ri
顯然,我不這樣做是正確的,因爲只有該行的第一個元素被除以本身。我還是C新手,所以任何幫助,將不勝感激。謝謝!
for (k = 0; k < n; k++) {
for (m = 0; m < n+1; m++) {
if (matrix[k][m] < TOLERANCE) {
printf("Error, pivot is 0\n");
exit(0);
}
matrix[k][m] = matrix[k][m]/matrix[k][k];
}
for (l = 0; l != k; l++) {
printMatrix(n, n+1, matrix);
for (o = 0; o < n+1; o++) {
matrix[l][o] = matrix[l][o] - matrix[l][k] * matrix[k][o];
}
}
}
還有其他的意見嗎?它仍然是不完全正確,我拉我的頭髮笑
什麼是'n'和'm'?只是變量被傳遞給函數? – 2011-03-01 01:29:52
n是系統中的行數。米是一個計數器。它應該是一個增廣矩陣,所以也有n + 1列。 – Manske 2011-03-01 01:31:35