数值分析编程及运行结果(高斯顺序消元法)..doc

数值分析编程及运行结果(高斯顺序消元法)..doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析编程及运行结果(高斯顺序消元法).

高斯消元法 1.程序: clear format rat A=input(输入增广矩阵A=) [m,n]=size(A); for i=1:(m-1) numb=int2str(i); disp([第,numb,次消元后的增广矩阵]) for j=(i+1):m A(j,:)=A(j,:)-A(i,:)*A(j,i)/A(i,i); end A end %回代过程 disp(回代求解) x(m)=A(m,n)/A(m,m); for i=(m-1):-1:1 x(i)=(A(i,n)-A(i,i+1:m)*x(i+1:m))/A(i,i); end x 2.运行结果: 高斯选列主元消元法 程序: clear format rat A=input(输入增广矩阵A=) [m,n]=size(A); for i=1:(m-1) numb=int2str(i); disp([第,numb,次选列主元后的增广矩阵]) temp=max(abs(A(i:m,i))); [a,b]=find(abs(A(i:m,i))==temp); tempo=A(a(1)+i-1,:); A(a(1)+i-1,:)=A(i,:); A(i,:)=tempo disp([第,numb,次消元后的增广矩阵]) for j=(i+1):m A(j,:)=A(j,:)-A(i,:)*A(j,i)/A(i,i); end A end %回代过程 disp(回代求解) x(m)=A(m,n)/A(m,m); for i=(m-1):-1:1 x(i)=(A(i,n)-A(i,i+1:m)*x(i+1:m))/A(i,i); end x 2.运行结果: 追赶法 程序: function [x,L,U]=zhuiganfa(a,b,c,f) a=input(输入矩阵-1对角元素a=); b=input(输入矩阵对角元素b=); c=input(输入矩阵+1对角元素c=); f=input(输入增广矩阵最后一列元素f=); n=length(b); % 对A进行分解 u(1)=b(1); for i=2:n if(u(i-1)~=0) l(i-1)=a(i-1)/u(i-1); u(i)=b(i)-l(i-1)*c(i-1); else break; end end L=eye(n)+diag(l,-1); U=diag(u)+diag(c,1); x=zeros(n,1); y=x; % 求解Ly=b y(1)=f(1); for i=2:n y(i)=f(i)-l(i-1)*y(i-1); end % 求解Ux=y if(u(n)~=0) x(n)=y(n)/u(n); end for i=n-1:-1:1 x(i)=(y(i)-c(i)*x(i+1))/u(i); end 2.运行结果: 高斯-塞德尔迭代格式 1.程序: function x=Gauss_Seidel(a,b) a=input(输入系数矩阵a=) b=input(输入增广矩阵最后一列b=); e=0.5e-7; n=length(b); N=50; x=zeros(n,1); t=zeros(n,1); for k=1:N sum=0; E=0; t(1:n)=x(1:n); for i=1:n x(i)=(b(i)-a(i,1:(i-1))*x(1:(i-1))-a(i,(i+1):n)*t((i+1):n))/a(i,i); end if norm(x-t)e k break; end end 运行结果: 雅戈比迭代格式 1.程序: function x=Jocabi(a,b) a=input(输入系数矩阵a=); b=input(输入增广矩阵最后一列b=); e=0.5e-7; n=length(b); N=100; x=zeros(n,1); y=zeros(n,1); for k=1:N sum=0; for i=1:n y(i)=(b(i)-a(i,1:n)*x(1:n)+a(i,i)*x(i))/a(i,i); e

文档评论(0)

vc5gv1x + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档