作业帮 > 综合 > 作业

matlab中用高斯消元法接方程组程序

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 05:52:35
matlab中用高斯消元法接方程组程序
方程组如下:
10 -1 2 0】 6
-1 11 -1 3】 25
2 -1 10 -1】 -11
0 3 -1 8】 15
左边的是矩阵A,右边的是b
function [X]=gaussian(A,B,n)
C=[A B];
for i=2:n
[r,c]=max(abs(C(i-1:n,i-1)));
VEC=C(i-1,:);C(i-1,:)=C(c+i-2,:);C(c+i-2,:)=VEC;
if C(i-1,i-1)==0
return
end
for k=(i-1):(n-1)
C(k+1,:)=C(i-1,:)*-C(k+1,i-1)/C(i-1,i-1)+C(k+1,:);
end
end
D=C;
B2=C(:,n+1);
D(:,n+1)=[];
X=zeros(1,n);
for i=1:n
X(n+1-i)=(B2(n+1-i)-D(n+1-i,:)*X')/C(n+1-i,n+1-i);
end
运行:
>>A=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8];
>>B=[6,25,-11,15]';
>>gaussian(A,B,4)
ans =
1.0000 2.0000 -1.0000 1.0000