为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

MATLAB计算方法3解线性方程组计算解法

2022-03-08 30页 ppt 685KB 2阅读

用户头像 个人认证

千千万万

暂无简介

举报
MATLAB计算方法3解线性方程组计算解法解线性方程组第三章线性方程组数值解法§3.1直接法一、Gauss 消去法设有消元:用Matlab实现顺序Gauss消去法在Matlab程序编辑器中输入:functionx=nagauss(a,b,flag)%解线形方程组ax=b,a为系数矩阵,b为右端列向量,flag若为0,则显示中间过程,否则不显示,默认为0,x为解向量ifnargin<3,flag=0;endn=length(b);a=[a,b];%消元fork=1:(n-1)a((k+1):n,(k+1):(n+1))=a((k+1):n,(k+1):(n+1))...
MATLAB计算方法3解线性方程组计算解法
解线性方程组第三章线性方程组数值解法§3.1直接法一、Gauss 消去法设有消元:用Matlab实现顺序Gauss消去法在Matlab程序编辑器中输入:functionx=nagauss(a,b,flag)%解线形方程组ax=b,a为系数矩阵,b为右端列向量,flag若为0,则显示中间过程,否则不显示,默认为0,x为解向量ifnargin<3,flag=0;endn=length(b);a=[a,b];%消元fork=1:(n-1)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);ifflag==0,a,endend%回代x=zeros(n,1);x(n)=a(n,n+1)/a(n,n);fork=n-1:-1:1x(k,:)=(a(k,n+1)-a(k,(k+1):n)*x((k+1):n))/a(k,k);end程序运行结果:二列主元素Gauss消去法---计算结果可靠到此原方程组化为(上三角方程组)(3.2)直到(n-1)原方程组化为以上为消元过程。(3.3)(n)回代求解公式系数矩阵为对称正定阵或严格对角占优阵的方程组按高斯消去法计算是数值稳定的,因而不必选主元。严格对角占优阵:至少有一个主对角线元素的绝对值严格大于此行或此列其他元素的绝对值之和。Gauss列主元消去法:优点------计算结果更可靠;缺点------挑主元花机时更多,次序有变动,程序复杂。说明:(1)也可采用无回代的列主元消去法(叫Gauss---Jordan消去法),但比有回代的列主元消去法的乘除运算次数多。(2)有回代的列主元消去法所进行的乘除运算次数为,量很小。用Matlab实现选列主元Gauss消去法解线性方程组在Matlab程序编辑器中输入:functionx=nagauss2(a,b,flag)%a为系数矩阵;b为右端列向量;flag若为0,则显示中间过程,否则不显示ifnargin<3,flag=0;endn=length(b);a=[a,b];%选主元fork=1:(n-1)[ap,p]=max(abs(a(k:n,k)));p=p+k-1;ifp>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);ifflag==0,a,endend%回代x=zeros(n,1);x(n)=a(n,n+1)/a(n,n);fork=n-1:-1:1x(k,:)=(a(k,n+1)-a(k,(k+1):n)*x((k+1):n))/a(k,k);end程序运行结果:记,则(三角因子分解)Gauss消元,初等行变换,化原方程组为上三角型。三.矩阵三角分解法定义3.1叫的三角(因子)分解,其中是是上三角。下三角,为单位下三角阵(对角元全为1),为上三角阵,则称为Doolittle分解;若是下三角,是单位上三角,则称定义3.2若为Crout分解。定义3.2若为什么要讨论三角分解?若在消元法进行前能实现三角分解,则从而容易回代求解。1.直接三角分解法(Doolittle分解为例)   由矩阵乘法…………………………….(k)例3.1用Matlab实现LU分解在Matlab程序编辑器中输入:function[L,U]=nalu(a)%a为可逆方阵;L返回单位下三角矩阵;U返回上三角矩阵n=length(a);U=zeros(n,n);L=eye(n,n);U(1,:)=a(1,:);L(2:n,1)=a(2:n,1)/U(1,1);fork=2:nU(k,k:n)=a(k,k:n)-L(k,1:k-1)*U(1:k-1,k:n);L(k+1:n,k)=(a(k+1:n,k)-L(k+1:n,1:k-1)*U(1:k-1,k))/U(k,k);end程序运行结果:2.平方根法定理3.1设A对称正定,则有非奇异下三角阵L,使分解方法:设3.列主元的三角分解法例4对下面的增广矩阵用列主元三角分解法分解。四、解三对角方程组——追赶法利用Gauss消元法得到同解的三角方程为,故有(3.1)解解(3.1)—(3.3)叫追赶法,工作量小,非常有效。Ex:第三章4(3.2)(3.3)用Matlab实现追赶法求解线性方程组在Matlab程序编辑器中输入:functionx=pursue(a,b,flag)%a为系数矩阵;b为右端列向量;flag为0则显示过程ifnargin<3,flag=0;end%nargin为计算输入变量个数n=length(b);a=[a,b];fork=1:(n-1)a(k+1,k+1)=a(k+1,k+1)-a(k+1,k)/a(k,k)*a(k,k+1);a(k+1,n+1)=a(k+1,n+1)-a(k+1,k)/a(k,k)*a(k,n+1);a(k+1,k)=zeros(1,1);ifflag==0,a,endend%回代x(n)=a(n,n+1)/a(n,n);fork=n-1:-1:1x(k)=(a(k,n+1)-a(k,k+1)*x(k+1))/a(k,k)end程序运行结果:用Matlab实现改进平方根法求解线性方程组在Matlab程序编辑器中输入:functionx=squareroot(a,b,flag)ifnargin<3,flag=0;endn=length(b);a=[a,b];fork=1:(n-1)a(k+1,1)=a(k+1,1)/a(1,1);endafork=1:(n-2)forj=k+1:n+1a(k+1,j)=a(k+1,j)-a(1:k,j)*a(k+1,1:k);endforl=k+2:na(l,k+1)=(a(l,k+1)-a(1:k,k+1)*a(l,1:k))/a(k+1,k+1);endaendfori=1:(n-1)a(n,n)=a(n,n)-a(i,n)*a(n,i);a(n,n+1)=a(n,n+1)-a(i,n+1)*a(n,i);endax=zeros(n,1);x(n)=a(n,n+1)/a(n,n);fork=n-1:-1:1x(k)=(a(k,n+1)-a(k,(k+1):n)*x((k+1):n))/a(k,k);end程序运行结果:基本要求1.熟悉Gauss消去法及列主元Gauss消去法。2.熟悉矩阵的直接三角分解法的过程;2.熟悉平方根法的计算过程及其优缺点。作业:第三章9,11§3.2向量范数和矩阵范数
/
本文档为【MATLAB计算方法3解线性方程组计算解法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索