回覆列表
-
1 # 使用者6518681440059
-
2 # 使用者566759068971
function [x,XA]=GaussXQByOrder(A,b)
%高斯順序消元法
N = size(A);
n = N(1);
for i=1:(n-1)
for j=(i+1):n
if(A(i,i)==0)
disp("對角元素為0!"); %防止對角元素為0
return;
end
l = A(j,i);
m = A(i,i);
A(j,1:n)=A(j,1:n)-l*A(i,1:n)/m; %消元方程
b(j)=b(j)-l*b(i)/m;
end
end
x=SolveUpTriangle(A,b); %通用的求上三角係數矩陣線性方程組的函式
XA = A; %消元后的係數矩陣
function x=SolveUpTriangle(A,b)
N=size(A);
n=N(1);
for i=n:-1:1
if(i
function[x,XA]=GaussXQByOrder(A,b)
%高斯順序消元法
N=size(A);
n=N(1);
fori=1:(n-1)
forj=(i+1):n
if(A(i,i)==0)
disp("對角元素為0!");%防止對角元素為0
return;
end
l=A(j,i);
m=A(i,i);
A(j,1:n)=A(j,1:n)-l*A(i,1:n)/m;%消元方程
b(j)=b(j)-l*b(i)/m;
end
end
x=SolveUpTriangle(A,b);%通用的求上三角係數矩陣線性方程組的函式
XA=A;%消元后的係數矩陣
functionx=SolveUpTriangle(A,b)
N=size(A);
n=N(1);
fori=n:-1:1
if(i<n)
s=A(i,(i+1):n)*x((i+1):n,1);
else
s=0;
end
x(i,1)=(b(i)-s)/A(i,i);
end
程式如上,自己算吧。這個東西應該嘗試自己程式設計