数值分析计算机作业 下载本文

内容发布更新时间 : 2024/5/7 1:11:09星期一 下面是文章的全部内容请认真阅读。

数值分析计算机作业

电信少41 刘星辰 2120406102

1.用列主元高斯消去法求解线性方程组

4?2?38??3?56?11??1??2?1?9151?92?????2?17?29?5?1611?????A???11327?1?2?,b??9?

?4?5?31?7211?????29?811?1?4?1???8??7?25?2?127?19?????解:代码如下

function x=nagauss2(a,b,flag) a=[3 -5 6 4 -2 -3 8; 1 1 -9 15 1 -9 2; 2 -1 7 5 -1 6 11; -1 1 3 2 7 -1 -2; 4 3 1 -7 2 1 1; 2 9 -8 11 -1 -4 -1; 7 2 -1 2 7 -1 9]; b=[11;2;29;9;5;8;25]; if nargin<3,flag=0;end n=length(b); a=[a b]; for k=1:n-1

%选主元

[ap,p]=max(abs(a(k:n,k))); p=p+k-1; if p>k t=a(k,:); a(k,:)=a(p,:); a(p,:)=t; end

%消元

a((k+1):n,(k+1):(n+1))=a((k+1):n,(k+1):(n+1))-a((k+1):n,k)/a(k,k)*a(k,(k+1):(n+1));

a((k+1):n,k)=zeros(n-k,1); if flag==0,a,end end

%回代

x=zeros(n,1);

x(n)=a(n,n+1)/a(n,n);

for k=n-1:-1:1

x(k,:)=(a(k,n+1)-a(k,(k+1):n)*x((k+1):n))/a(k,k); end

过程截图:

结果为:

2.分别用Jacobi迭代和Gauss-Seidel迭代求解线性方程组

??28?3000??10??338?100???0?A??5??0?1025?150??,b???0??00?15450????

???0??0?50030????0??解:(1)Jacobi迭代 代码如下:

function x=najb(a,b,x0,e,N) a=[28 -3 0 0 0; -3 38 -10 0 -5; 0 -10 25 -15 0; 0 0 -15 45 0; 0 -5 0 0 30];