高斯消去法
1. a=200;
2. A=diag(ones(1,a)*6)+diag(ones(1,a-1)*1,1)+diag(ones(1,a-
1)*8,-1);
3. b=ones(a-1,1);
4. b(1)=7;
5. b(2:a-1)=15;
6. b(a)=14;
7. y=inv(A)*b; %matlab 的计算结果
8. n=length(b);%方程个数n
9. x=zeros(n,1);%未知向量
10. %-------------消去-----------
11. for k=1:n-1
12. % if A(k,k)==0;
13. % error('Error');
14. % end
15. for i=k+1:n
16. % A(i,k)=A(i,k)/A(k,k);
17. Aik=A(i,k)/A(k,k);
18. for j=k:n
19. A(i,j)=A(i,j)-Aik*A(k,j);
20. end
21.
22. b(i)=b(i)-Aik*b(k);
23. end
24. end
25. %-------------回代----------- x(n)=b(n)/A(n,n)
26. for k=n-1:-1:1
27. S=b(k);
28. for j=k+1:n
29. S=S-A(k,j)*x(j);
30. end
31. x(k)=S/A(k,k)
32. end
33. x %程序的计算结果
评论0