P3389 模板 高斯消元法

2022-05-20 02:18:48 字數 879 閱讀 5779

傳送門

把所有方程放到乙個二維陣列裡

樣例的陣列為[ 1,3,4,5 ]

[ 1,4,7,3 ]

[ 9,3,2,2 ]

考慮乙個乙個消元

拿乙個方程出來,把未知數 x 的係數化成1

用加減消元消去其他方程的 x

然後再消下乙個未知數

最後乙個未知數消完後再把值往上乙個方程代入

最後每個未知數都求出來了

如果消 x 的時候發現所有方程的 x 的係數都是 0

那麼 x 可以取任何值,就是有多個解

判一下就好了

拿方程時優先拿係數大的可以減小誤差(不會證明)

#include#include

#include

#include

using

namespace

std;

const

double eps=1e-7

;double mp[107][107],ans[107

];int

n;inline

void

slove()

double div=mp[i][i];

for(int j=i;j<=n+1;j++)

mp[i][j]/=div;//

把此方程未知數的係數化為1

for(int j=i+1;j<=n;j++)

}for(int i=n;i;i--)

}int

main()

slove();

for(int i=1;i<=n;i++)

printf(

"%.2lf\n

",ans[i]);

return0;

}

P3389 模板 高斯消元法

gauss消元 給定乙個線性方程組,對其求解 第一行,乙個正整數 nnn 第二至 n 1n 1n 1行,每行 n 1n 1n 1 個整數,為a1,a2 an a 1,a 2 cdots a na1 a2 an 和 bbb,代表一組方程。共n行,每行乙個數,第 iii行為 xix ixi 保留2位小數...

P3389 模板 高斯消元法

首先,乙個重要的概念 n個n元一次 不同 方程組可以解出唯一解 so 題意 給定乙個線性方程組,對其求解 qaq 高斯消元 首先,把未知數放左邊,常數放右邊,然後提取係數放在矩陣裡 找到當前元的係數最大的式子放在i的位置 當前行 主要是為了判斷無解,放不放都行 i行當前元的係數化一 i行所有數 當前...

P3389 模板 高斯消元法(模板,高斯消元法)

思路 沒學線代的可以去學一下,很簡單的。直接看落谷的解析吧,感覺很好了。include include const double eps 1e 8 double b 110 110 int n int main for register int i 0 iint pivot i for regist...