用LU分解求解线性方程组数值 课程设计设计.doc
《用LU分解求解线性方程组数值 课程设计设计.doc》由会员分享,可在线阅读,更多相关《用LU分解求解线性方程组数值 课程设计设计.doc(25页珍藏版)》请在沃文网上搜索。
1、 目 录实验一:用LU分解求解线性方程组11.1实验目的与要求11.2原理与程序11.2.1算法原理11.2.2程序21.3实例31.4算法总结5实验二:Lagrange插值52.1实验目的与要求52.2原理与程序52.2.1算法原理52.2.2程序62.3实例62.4算法总结8实验三:变步长的梯形积分公式83.1实验目的与要求83.2原理与程序93.2.1算法原理93.2.1程序93.3实例103.4算法总结12实验四:常微分方程数值解(Runge-Kutta方法)124.1实验目的与要求134.2原理与程序134.2.1算法原理134.2.2程序134.3实例144.4算法总结15实验五:
2、数值方法实际应用165.1实验目的与要求165.2实例165.2.1具体问题165.2.2问题假设165.2.3建立模型175.2.4模型求解175.2.5模型分析215.3模型总结22参考文献22实验一:用LU分解求解线性方程组1.1实验目的与要求1.熟悉LU分解求解线性方程组的基本原理2.了解LU分解求解线性方程组的计算流程3.能编程实现LU分解并求解线性方程组1.2原理与程序1.2.1算法原理由数值分析与实验学习指导第31页定理2.1有:只有矩阵A的各阶顺序主子行列式都不等于零时才能用LU分解。LU分解思想如下:所以:a11= u11,a12=u12, a1n= u1n ; u11=a1
3、1,u12=a12, ,u1n=a1na21 = l21u11, , an1 = ln1u11 ; l21=a21/u11, , ln1=an1/u11a22=l21u12+ u22, , a2n =l21u1n+ u2n ; u22=a22 - l21u12, , u2n=a2n- l21u1na32=l31u12+ l32u22, , an2=ln1u12+ ln2u22 ; l32=(a32- l31u12)/u22, , ln2=(an2- ln1u12)/u22对A的元素aij ,当 jk 和 ik时 矩阵L和矩阵U的元素计算公式 1.2.2程序function L,U,x=lux(
4、A,b) n,n=size(A); %LU 分解法解线性方程组(列主元LU分解)for k=1:n-1 for i=k+1:n m=A(i,k)/A(k,k); for j=k+1:n A(i,j)=A(i,j)-m*A(k,j); end A(i,k)=m; endendA %输出紧凑型LU矩阵%解下三角矩阵 Ly=b for i=2:n s=0; for j=1:i-1 s=s+A(i,j)*b(j); end b(i)=b(i)-s;endb %输出中间向量y%解上三角方程组 Ux=yb(n)=b(n)/A(n,n);for i=n-1:-1:1 s=0; for j=i+1:n s=s
5、+A(i,j)*b(j); end b(i)=(b(i)-s)/A(i,i);endb1.3实例例1:用LU分解法求解性线方程组:在命令窗口键入: A=2,3,4;3,5,2;4,3,30; b=6;5;32; lux(A,b)回车得到:A = 2.0000 3.0000 4.0000 1.5000 0.5000 -4.0000 2.0000 -6.0000 -2.0000b = 6 -4 -4b = -13 8 2故原方程组的解为:x=-13,8,2T例2:解下列线性方程组解:在matlab中新建m文件,输入如下代码,并保存为LU1.mfunction L,U,x=lU(A,b)A=10,-
6、7,0;-3,2,6;5,-1,5; %系数矩阵b=7;4;6;%n,r=size(A);for k=1:n-1 %LU 分解法解线性方程组(列主元LU分解) for i=k+1:n m=A(i,k)/A(k,k); for j=k+1:n A(i,j)=A(i,j)-m*A(k,j); end A(i,k)=m; endendA %输出紧凑型LU矩阵%解下三角矩阵 Ly=bfor i=2:n s=0; for j=1:i-1 s=s+A(i,j)*b(j); end b(i)=b(i)-s;endb %输出中间向量y%解上三角方程组 Ux=yb(n)=b(n)/A(n,n);for i=n-
7、1:-1:1 s=0; for j=i+1:n s=s+A(i,j)*b(j); end b(i)=(b(i)-s)/A(i,i);endb %输出解向量x得到如下结果:A = 10.0000 -7.0000 0 -0.3000 -0.1000 6.0000 0.5000 -25.0000 155.0000b = 7.0000 6.1000 155.0000b = -0.0000 -1.00001.0000故原方程组的解为:x=0,-1,1T1.4算法总结LU分解法可以使用于任何矩阵,从使用范围来说LU分解法有点相当明显,从编程复杂度来说,LU分解法也比较简单。LU分解法在适用范围、编写繁简以
8、及计算速度方面都比较优越。实验二:Lagrange插值2.1实验目的与要求(1)熟悉Lagrange插值多项式的基本原理。(2)通过编程得出Lagrange插值多项式。(3)绘制函数图像,比较计算结果。2.2原理与程序2.2.1算法原理:设函数在个互不相同的点上的值为已知(既不一定按大小排列,也不一定是等距离的),现求作一个次数不高于的插值多项式使 -(1)我们作出个基本次插值多项式,也就是插值基函数,问题就可以解决了,这个基函数在各节点上的值为 -(2)容易归纳得出-(3)于是取-(4)它应满足条件(1)。事实上,由(2)公式(4)叫做插值多项式。2.2.2程序function y=lagr
9、ange(X,Y,x); YXxn=length(X);m=length(Y); for i=1:m z=X(i); s=0.0; for k=1:n p=1.0; for j=1:n if j=k p=p*(x-X(j)/(X(k)-X(j); end end s=p*Y(k)+s; end y=s; end 2.3实例已知如下数据表,利用Lagrange插值公式计算f(2.5)的值。123456161821171512在命令窗口键入: X=1 2 3 4 5 6; Y=16 18 21 17 15 12; x=2.5; y=lagrange(X,Y,x)回车得到:Y = 16 18 21
10、17 15 12X = 1 2 3 4 5 6x = 2.5000y = 20.61332.4算法总结 对Lagrange插值多项式,增加节点个数n时,虽然“中间”部分对函数f的逼近程度更高,但“边缘”的变得误差更大,反应了高次差值的病态性质。实验三:变步长的梯形积分公式3.1实验目的与要求1.熟悉变步长的梯形积分公式的基本原理2.了解变步长的梯形积分公式求积分的计算流程3.能编程实现用变步长的梯形积分公式求积分4.绘制函数图像3.2原理与程序3.2.1算法原理先将积分区间分为n等分,则一共有n+1个分点,i=0,1,n ;先考察一个子段,其中点,该子段上二分前后两个梯形值,。显然有下列关系将
11、这一关系式关于i从0到 n-1累加求和,即可导出如下递推算。式中为二分前的步长3.2.1程序方法函数bbctx.m:function T ,n,TOL=bbctx(f,a,b,eps)h=b-a;fa=feval( f,a);fb=feval(f,b);T1=h*(fa+fb)/2; T2=T1/2+h*feval(f,a+h/2)/2;n=1;while abs(T2-T1)=epsh=h/2;T1=T2;S=0;x=a+h/2;while xbfx=feval(f,x);S=S+fx;x=x+h;endT2=T1/2+S*h/2;n=n+1;endT=T2;fenxi_s=int(-2*x
12、2+5*sin(x), -2, 2); s=vpa(fenxi_s,16);TOL=T-s;函数文件bbctx_f:function f=bbctx_f(x)f=-2*x2+5*sin(x);主函数bbctx_main:clear;clc;f=bbctx_f;T,n,TOL=bbctx(f,-2, 2,1e-1) T,n,TOL=bbctx(f,-2, 2,1e-4)T,n,TOL=bbctx(f,-2, 2,1e-7)T,n,TOL=bbctx(f,-2, 2,1e-10)T,n,TOL=bbctx(f,-2, 2,1e-11)T,n,TOL=bbctx(f,-2, 2,1e-12) dis
13、p(真实结果为:);fenxi_s=int(-2*x2+5*sin(x),-2,2);s=vpa(fenxi_s,16)x=-2:0.05:2;y=-2*x.2+5*sin(x);area(x,y)title(x from -2 to 2);xlabel(Variable X);ylabel(Variable Y);text(-1,4,曲线 -2*x2+5*sin(x);grid on 3.3实例用变步长梯形求积分法计算积分解:在malab中新建如下bbctx.m,bbctx_f.m,bbctx.mian文件:运行结果如下:T = -10.6875n =5TOL = -.20833333333
14、330000000000000000e-1T = -10.6667n =10TOL =-.20345052080000000000000000e-4 T = -10.6667n =15TOL = -.19868193828228480997495e-7T = -10.6667n =20TOL = -.19557316063195758034e-10 T = -10.6667n =22TOL = -.635563009904290084e-12T = -10.6667n = 23TOL = -.107985028602415696e-12 真实结果为: s = -10.6666666666666
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用LU分解求解线性方程组数值 课程设计设计 LU 分解 求解 线性方程组 数值 课程设计 设计
