数值分析课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计(论文)任务书学院理学院专业信息与计算科学学生姓名班级学号课程名称数值分析课程设计课程设计(论文)题目数值分析算法设计与应用案例设计要求(技术参数):1、熟练掌握Matlab软件。2、运用Matlab软件进行各种数值算法编程。3、每个同学至少做四个算法编程实验,每种算法最少有一个实例。4、每种算法在关键语句中要有注释。设计任务:实验一:LU分解法解线性方程组实验二:Lagrange插值法数值求解实验三:龙贝格求积公式求数值积分实验四:用Runge-Kutta方法求常微分方程数值解实验五:线性规划任务分配问题实验六:求电阻问题计划与进度安排:第一周:查阅资料学习使用Matlab软件完成实验一、实验二第二周:完成实验三、实验四、实验五攥写课程设计报告答辩成绩:指导教师(签字):年月日专业负责人(签字):年月日主管院长(签字)年月日目录实验一LU分解法解线性方程组........................................11.1实验目的与要求...............................................11.2实验基本原理.................................................11.3算法程序.....................................................21.4实例及结果分析...............................................3实验二Lagrange插值法数值求解......................................42.1实验目的与要求...............................................42.2实验基本原理.................................................42.3算法程序.....................................................42.4实例及结果分析...............................................5实验三龙贝格求积公式求数值积分....................................53.1实验目的与要求...............................................53.2实验基本原理.................................................53.3算法程序.....................................................63.4实例及结果分析...............................................7实验四用Runge-Kutta方法求常微分方程数值解........................74.1实验目的与要求...............................................74.2实验基本原理.................................................74.3算法程序.....................................................84.4实例及结果分析...............................................8实验五线性规划任务分配问题.......................................115.1问题提出....................................................115.2模型分析....................................................115.3模型建立....................................................125.4模型求解....................................................12实验六求电阻问题.................................................136.1问题提出....................................................136.2问题分析与模型建立..........................................135.3模型求解....................................................146.4结果分析....................................................151实验一LU分解法解线性方程组1.1实验目的与要求1.了解LU分解法解线性方程组的基本原理;2.熟悉计算方法的技巧和过程,能用LU分解法解实际问题;3.用matlab实现LU分解。1.2实验基本原理1.若一个线性方程组系数矩阵为n阶方阵A且各阶顺序主子式均不为0则A的LU分解存在且唯一。2.在满足1的条件下课推导得出以下公式(1)ijjkijikijijuulal/)(1111jkkijkjiijulau(2)11ikkikiiylbyiinikkikiiuxuyx/)(13.公式(1)用于求解矩阵L、U,公式(2)用于会带求解y、x。从公式中可以看出:L对角线上元素为1,U第一行与A第一行相同。4.LU分解的具体过程和顺序如下:(1)第一步分解:1111au(2)第二步分解:112121/ual1212au12212222ulau(3)第三步分解:113131/ual2212313232/)(uulal1313au13212323ulau233213313333ululau(n)第n步分解:依次计算:1nl、2nl......1nnl,inu......nnu2nnnnnnuuuuuulll....1.1.1.12221121121211.3算法程序function[L,U,x]=Lu_x(A,d)[n,m]=size(A);ifn~=merror('TherowsandcolumnsofmatrixAmustbeequal!');return;endforii=1:nfori=1:iiforj=1:iiAA(i,j)=A(i,j);endendif(det(AA)==0)error('ThematrixcannotbedividedbyLU!')return;endendA[n,n]=size(A);L=zeros(n,n);U=zeros(n,n);fori=1:nL(i,i)=1;endfork=1:nforj=k:nU(k,j)=A(k,j)-sum(L(k,1:k-1).*U(1:k-1,j)');endfori=k+1:nL(i,k)=(A(i,k)-sum(L(i,1:k-1).*U(1:k-1,k)'))/U(k,k);endendy(1)=d(1);fori=2:nforj=1:i-1d(i)=d(i)-L(i,j)*y(j);end3y(i)=d(i);endx(n)=y(n)/U(n,n);fori=(n-1):-1:1forj=n:-1:i+1y(i)=y(i)-U(i,j)*x(j);endx(i)=y(i)/U(i,i);end1.4实例及结果分析1795123166721057891826534321432143214321xxxxxxxxxxxxxxxxMATLAB命令窗体输入如下:A=[3562;9875;2716;31259];b=[18101617]';[L,U,x]=Lu_x(A,b)得到的结果如下:A=35629875271631259L=1.00000003.00001.0000000.6667-0.52381.000001.0000-1.00001.36961.0000U=3.00005.00006.00002.00000-7.0000-11.0000-1.000000-8.76194.14290000.3261x=44.750054.2500-25.2500-58.0000实验二Lagrange插值法数值求解2.1实验目的与要求1.了解拉格朗日插值的基本概念;2.了解插值公式的基本原理,运用插值公式求解实际问题;3.编写matlab程序,实现拉格朗日插值法,观察所得结果的精确性。2.2实验基本原理设已知0x,1x,2x,...,nx及iy=f(ix)(i=0,1,.....,n),)(xLn为不超过n次多项式且满足iinyxL)((i=0,1,...n).易知nnnyxlyxlxL)(...)()(00其中,)(xli均为n次多项式,再由jx(ji)为n次多项式)(xli的n个根知niijjixxcxl0)(.最后,由1)()(0nijjjijixxcxlnijjjixxc0)(1,i=0,1,...,n.总之,)(xLn=iniiyxl0)(,)(xli=.0nijjjijxxxx式为n阶Lagrange插值公式,其中,)(xli(i=0,1,...n)称为n阶Lagrange插值的基函数。2.3算法程序functionyy=nalagr(x,y,xx)m=length(x);n=length(y);ifm~=n,error('向量x与y的长度必须一致');ends=0;fori=1:nt=ones(1,length(xx));forj=1:nifj~=it=t.*(xx-x(j))/(x(i)-x(j));5endends=s+t*y(i);endyy=s;2.4实例及结果分析给出xxfln)(的数值表,如下图所示,用Lagrange插值计算)54.0ln(的近似值。x0.40.50.60.70.8)ln(x-0.91629-0.69315-0.51083-0.35777-0.22314MATLAB命令窗体输入如下:x=[0.40.50.60.70.8];y=[-0.91629-0.69315-0.51083-0.35777-0.22314]xx=0.54;nalagr(x,y,xx)得到的结果如下:ans=-0.6160用Lagrange插值法求得)54.0ln(的近似值为-0.6160,与计算机求得的值-0.6162,比较,是极为相近的。实验三龙贝格求积公式求数值积分3.1实验目的与要求1.掌握龙贝格求积的基本思路和步骤;2.培养编程与上机调试能力。3.2实验基本原理(1)取0k,abh,求)]()([2)0(0bfafhT。令k1(k记为区间ba,的二分次数)。(2)求梯形值)2(0kabT,即按递推公式10212)(221nkknnxfhTT计算)(0kT。6(3)求加速值,按公式)(1)1(1)(141144kmmkmmmkmTTT(k=1,2……)逐个求出T表的第k行其余各元素)1(kjT(j=1,2……)。(4)若)0(1)0(kkTT(预先给出的精度),则终止计算,并取ITk)0(;否则令kk1转(2继续计算)。()ikT排成三角数表3.3算法程序functionR=romberg(f,a,b,e)%参数介绍:%f-被积函数f(x)%a-x的左区间.%b-x

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功