寒假前,小導師給我們布置了三道程式設計題,其中有一道是利用高斯消元法解線性方程組的。在網上搜了些資料,自己照葫蘆畫瓢編出乙個簡單的高斯消元法(利用矩陣的初等行變換):
/*--------------------
高斯消元法解線性方程組
--------------------*/
#include
#include
#include
#define dim 10
double a[dim+1][dim+1],b[dim+1],x[dim+1];
mprint(int,int,double[dim+1][dim+1],double);
int main(void)
printf("開始輸入各元素的值:");
for(i=1;i<=n;i++)
printf("請輸入常數b[%d]",i);
scanf("%lf",&b[i]);
}mprint(n,n,a,b);
/*開始用高斯法計算*/
for(j=1;j<=n-1;j++)
b[i]=b[i]-temp*b[j];}}
printf("\n\n\n");
mprint(n,n,a,b);
/*開始反代*/
for(i=n;i>=1;i--)
x[i]=temp/a[i][i];}/*
x[n]=b[n]/a[n][n];
for(j=n-1;j>=1;j--)
x[j]=x[j]/a[j][j];}*/
for(i=1;i<=n;i++)
printf("x[%d]=%10.2f\n",i,x[i]);
}/* 列印結果函式*/
mprint(int m,int n,double a[dim+1][dim+1],double b[dim+1])
printf("%10.2f",b[i]);
printf("\n");
}}
還有很多不完善的地方,比如非滿秩,無窮解或者無解的情況該如何處理。
高斯消元法(二) 高斯消元法原理
高斯消去法是一種常用的求解線性方程組的方法,通過逐次消元後,在回代求解,實際計算中常用的一種方法。順序消去法 將ax b按照從上至下 從左至右的順序化為上三角方程組,中間過程不對矩陣進行交換,主要步驟如下。step1 將第2行至第n行,每行分別與第一行做運算,消掉每行第乙個引數。公式如 形成如下圖所...
高斯消元法
學過至少一元二次方程解法的同學們肯定知道,最常用的求根方法是加減消元法。所謂加減消元法,就是通過方程的等式性質,將某一未知數的係數同一化,再通過兩個等式的加減消去乙個元,從而將多元方程不斷降元,從而解出乙個未知數,不斷代回,從而求出所有根。此加減消元法就是高斯消元法。所以程式思路也盡可知。以下直接附...
高斯消元法
高斯消元法。直接附 了,這個 沒有回帶的。1 writer hsz wjmzbmr tourist hzwer 2 include3 include4 include5 include6 include7 include8 include 9 include10 include11 include1...