給定乙個有n組方程的線性方程組。
每個方程的係數a1,a2…an以及常數項已給出。
對其求解,無唯一解則輸出」no solution「。
1≤n≤100,∣ai∣≤10^4,∣b∣≤10^4
高斯消元模板
這裡講的挺清楚的,
高斯消元其實就是加減加減的將係數消掉…
時間複雜度:o(n^3)
var
a:array [0..101,0..101] of double;
x:array [0..101] of double;
i,j,k,n:longint;
rp:double;
begin
readln(n);
for i:=1
to n do
begin
for j:=1
to n+1
doread(a[i,j]);
readln;
end;
for i:=1
to n do
begin
for j:=i to n do
if a[j,i]>a[i,i] then
begin
a[0]:=a[i];
a[i]:=a[j];
a[j]:=a[0];
end;
if a[i,i]=0
then
begin
writeln('no solution');
halt;
end;
for j:=i+1
to n do
begin
rp:=a[j,i]/a[i,i];
a[j,i]:=0;
for k:=i+1
to n+1
do a[j,k]:=a[i,k]*rp-a[j,k];
end;
end;
x[n]:=a[n,n+1]/a[n,n];
for i:=n-1
downto1do
begin
rp:=0;
for j:=i+1
to n do
rp:=rp+a[i,j]*x[j];
x[i]:=(a[i,n+1]-rp)/a[i,i];
end;
for i:=1
to n do writeln(x[i]:0:2);
end.
luogu P3389 模板 高斯消元法
高斯消元法 這裡的好像叫約旦消元?可以用來求線性方程組的唯一解 如果無解或有多解輸出 no solution 具體方法就是乙個乙個變數的掃,每次處理乙個變數的時候找出乙個係數不為 0 的方程,用這個方程把其他方程的 這個變數的係數給消掉 具體看 吧感覺不太能解釋清楚 然後每個變數處理完以後最後就剩那...
LG3389 模板 高斯消元法 高斯消元
lg3389 高斯消元,是用來解 n 元一次方程組的演算法,時間複雜度 o n 3 這樣就構造出了這個方程組的矩陣 目標就是把這個矩陣左邊 n times n 消為單位矩陣 mathrm includeusing namespace std void read int x x fh define m...
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...