//高斯消元
//概念什麼的都理解,具體實現?
//先打板子
#include #include
#include
#include
#include
using
namespace
std;
const
int mx=200
;const
double eps=1e-7;//
處理double的精度
intn;
double
g[mx][mx];
double
ans[mx];
void
gausswork1()}//
這個地方理解,我們要消掉第一列,就找到第一列裡係數最大的那一行
//要消掉第二列,就從第二行開始到第二列係數最大的那一行
//不從第一行找是因為第一行是上次找的那個,已經被我們移上去了,不需再修改
//最終構成乙個上三角矩陣
//係數絕對值最大的方程轉移到被減的這一行,這樣就可以減小誤差,說是減小誤差,其實好像
//也沒有什麼別的意義的
if(fabs(g[r][i])if(i!=r)swap(g[i],g[r]);//
這個操作記住,這裡應該是預設對換行
double div=g[i][i];
//將正在處理的方程式化簡,讓正被處理的係數化1
for(int j=i;j<=n+1;++j)
//使用加減法,將下面的所有行的當前i列(也是處理行的行),的值都化為0
for(int j=i+1;j<=n;++j)}}
//下面就是回帶
ans[n]=g[n][n+1];//
消到最後這個值就是xn的答案了,因為它這一行就剩它了
for(int i=n-1;i>=1;i--)
}for(int i=1;i<=n;++i)
//這個時間複雜度是n的三次方
}void
solve()
}gausswork1();
}int
main()
高斯消元 浮點高斯消元
浮點數高斯消元 問題描述 給出乙個線性方程組,有n個方程組,m個未知數。解這個線性方程組。輸入格式 第1行 2個整數n和m,n,m 400,且n不一定等於m 接下來n行,每行m 1個整數,表示乙個方程的m個未知數的係數和常數 輸出格式 如果無解,輸出 no solution 如果有唯一解,輸出m行,...
矩陣消元 高斯消元
安利一波高斯消元的部落格,內容很詳細。看完這個相信你已經理解了大概,高斯消元求線性方程組,在學習線性代數 大學課程 的時候我們都接觸過。原理是先把執行緒組轉換成矩陣,然後把它等價變換成上三角矩陣,這樣從下到上依次可以求出解集。高斯消元模板 模板題 include define n 205 using...
矩陣乘 高斯消元專題小結 高斯消元
i p其它題太水了就不寫了,這裡說一下o和p。我太懶不想寫 op這兩個題是高斯消元求期望的題。對於p題,求從 點到 點的步數期望,先從 點bfs一遍找到所有可以到達的點,對於可達點每個點是乙個變數。因為終點有任意多而起點只有乙個,這裡可以反過來求從任意乙個終點走到起點的期望。於是對於每乙個終點的期望...