《数值分析课程设计报告(95分).pdf》由会员分享,可在线阅读,更多相关《数值分析课程设计报告(95分).pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1数值分析课程设计报告设计题 1、2、3、5 学院、系:专业:姓名:学号:任课教师:提交日期:电子邮箱:2目录设计题一 .3 1.1 问题分析与设计思路.3 1.2 程序清单.4 1.4 结果分析.5 1.5 设计总结.6 设计题二 .6 2.1 问题分析与设计思路.7 2.2 程序清单.7 2.3 运行结果.9 2.4 结果分析与设计总结.9 设计题三 .10 3.1 问题分析与设计思路.10 3.2 程序清单.10 3.3 运行结果.12 3.4 结果分析与设计总结.12 设计题五 .13 4.1 问题分析与设计思路.13 4.2 程序清单.14 4.3 运行结果.19 4.4 结果分析.
2、20【数值分析课程设计总结】.21 31112111231111121nnHnnnn设计题一 设计实验验证Hilbert 矩阵的病态性。1.1 问题分析与设计思路在求解任何反问题的过程中通常会遇到病态矩阵问题,而且病态矩阵问题还未有很好的解决方法,尤其是长方形、大型矩阵。目前主要有 Tikhonov、奇异值截断、奇异值修正等方法。求解方程组时对数据的小扰动很敏感的矩阵就是病态矩阵。解线性方程组Ax=b 时,若对于系数矩阵A 及右端项 b 的小扰动 A、b,方程组(A+A)=b+b的解 与原方程组 Ax=b 的解差别很大,则称矩阵 A 为病态矩阵。方程组的近似解 一般都不可能恰好使剩余r=b-A
3、 为零,这时 亦可看作小扰动问题A=b-r(即 A=0,b=-r)的解,所以当 A 为病态时,即使剩余很小,仍可能得到一个与真解相差很大的近似解。因此,设计思路如下:令 x0=(1,1.1),计算出 b=Hx0,求出 b,然后再用高斯消去法球解Hx=b,得到近似解 x,然后利用标准差:4比较 x 与 x0 之间的误差。截图是取了几个n(程序中设置为 1 至 30)去计算,看一下随着 n 的增大误差的变化情况。1.2 程序清单共两个文件qm1.m gauss_liezhu1.m(在 qm1.m 中调用此程序)qm1.mgauss_liezhu1.m51.4 结果分析N=14 6按照 N 的递增顺
4、序取了9 个误差数据,制成散点折线图如上所示。由此可以看出,此矩阵求解方程组时对数据的小扰动很敏感实验验证 Hilbert 矩阵的病态性成立。1.5 设计总结(1)认识什么事矩阵的病态性(2)令 x0=(1,1.1),计算出 b=Hx0,求出 b,然后再用高斯消去法球解Hx=b,得到近似解 x,然后利用标准差公式比较 x 与 x0 之间的误差。(3)取几个点进行误差记录(4)绘制误差的散点图,形象分析设计题二 1225 年,达芬奇研究了方程32210200 xxx并得到它的一个近似根71()-(0,1,2,)(2.1)()nnnnf xxxnfx*1.368808107x。没有人知道他用什么方
5、法得到它。设计两种方法去计算,并比较这两种方法。2.1 问题分析与设计思路f(x)=0的根(或f(x)的零点),当 f(x)复杂时,很难求,需要找到有效简单的近似方法去求:(1)二分法理论:f(x)Ca,b,单调,f(a)f(b)0,f(x)=0在(a,b)中有惟一根。(2)迭代法(3)牛顿(Newton)法针对本题,采用了两种方法。第一种方法是二分法,得到的近似根与精确解的误差小于。第二种方法是用牛顿迭代法。二分法优点:条件和方法简单(只要求 f(x)连续即可),方法收敛;缺点:收敛速度慢,不易求偶数重根(如图).Newton 迭代法迭代公式2.2 程序清单二分法程序:erfen.m New
6、ton 迭代法程序:qm2_2.m nanewtom.m(在 qm2_2.m 中调用)8二分法Newton 迭代法92.3 运行结果二分法:Newton 迭代法2.4 结果分析与设计总结通过二分法与 Newton 迭代法得出的答案相同。(1)确定求方程近似根的三种方法(2)翻书了解编程步骤(3)总结本章重点知识:1.熟悉区间二分法;2.熟悉迭代法的建立,会使用收敛定理;3.熟悉Newton迭代法及其几何意义;4.熟悉收敛阶的定义;5.熟悉Newton迭代法的收敛阶;10设计题三 某飞机头部的光滑外形曲线的型值点坐标由下表给出:i0 1 2 3 4 5 6 7 8 9 10 ix0 70 130
7、 210 337 578 776 1012 1142 1462 1841 iy0 57 78 103 135 182 214 244 256 272 275 试建立其 合适的模拟曲线(未必是用拟合方法),并求在点x100,250,400,500,800 处的函数值y 及一阶、二阶导数值y,y”。绘出模拟曲线的图形。3.1 问题分析与设计思路曲线拟合的一般步骤(一)绘制散点图,选择合适的曲线类型一般根据资料性质结合专业知识便可确定资料的曲线类型,不能确定时,可在方格坐标纸上绘制散点图,根据散点的分布,选择接近的、合适的曲线类型。(二)进行变量变换,使变换后的两个变量呈直线关系。(三)按最小二乘法
8、原理求线性方程和方差分析(四)将直线化方程转换为关于原变量X、Y 的函数表达式此题用 三次样条插值三次样条函数定义:函数 S(x)C2a,b,且在每个小区间 xj,xj+1 上是三次多项式,其中a=x0 x1.xn=b 是给定节点,则称S(x)是节点 x0,x1,.xn上的三次样条函数。若在节点x j 上给定函数值Yj=f(Xj).(j=0,1,n),并成立 S(xj)=yj.(j=0,1,n),则称S(x)为三次样条插值函数。3.2 程序清单text5.m csfitf.m(function 文件)daos1.m(function 文件)11daos2.m(function 文件)Csfit
9、f.m 文件daos1.m文件daos2.m文件text5.m 文件123.3 运行结果3.4结果分析与设计总结用三次样条插值拟合出的曲线 及 计算结果如上图所示。实际计算是还需要引入边界条件才能完成计算。边界通常有自然边界(边界点的导数为0),夹持边界(边界点导数给定),非扭结边界(使两端点的三阶导与这两端点的邻近点的三阶导相等)。Matlab 把非扭结边界条件作为默认的边界条件。13设计题五 给定单摆方程初值问题.0sin,(0),(0)0gl其中 g=9.8,l=25.(1)取初始偏离角度0100.1745(2)取初始偏离角度0300.5236其精确解为0()cos,gttl。分别对上述
10、两种情况按照下列方法求出其数值解,比较各方法的优缺点,并将计算结果与精确解做比较(列表、画图)。(方案 I)欧拉法,步长h=0.025,h=0.1;(方案 II)改进的欧拉法,步长h=0.05,h=0.1;(方案 III)四阶经典龙格库塔法,步长h=0.1。4.1 问题分析与设计思路令,则可以将改写为:然后改写欧拉法、改进的欧拉法即龙格库塔公式。欧拉法:14改进的欧拉法:龙格库塔法:4.2 程序清单euler.m euler_gai.m f5_2.m orig6.m R-K.m text_1.m text_1_2.m text_2.m text_2_2.m text_3.m text_3_2.
11、m 15161718194.3 运行结果欧拉204.4 结果分析欧拉公式y(xi+1)=yi+h*f(xi,yi)且 xi=x0+i*h(i=0,1,2,n-1),局部截断误差为O(h2),欧拉格式仅为一阶方法。改进欧拉它的局部截断误差为O(h3),可见,改进欧拉格式较欧拉格式提高了精度,其截断误差比欧拉格式提高了一阶。欧拉法用差商y(xi+1)-y(xi)/h 近似代替y(xi)的导数,局部截断误差较大;改进欧拉法先用欧拉法求出预报值,再利用梯形公式求出校正值,局部截断误差比欧拉法低了一阶,较大程度地提高了计算精度。龙格-库塔法具有精度高,收敛,稳定(在一定条件下),计算过程中可以改变步长,
12、不需要计算 高阶导数 等优点,但仍需计算在一些点上的值,如四阶龙格-库塔法每计算一步需要计算四次的值,这给实际计算带来一定的复杂性。改进欧拉R|K 21【数值分析课程设计总结】假期在家整整做了一个星期,终于完成了以上四道题的所有内容。这次MATLAB课程设计为我们提供了与众不同的学习方法和学习机会,让我们从传统的被动授学转变为主动求学;从死记硬背的模式中脱离出来,转变为在实践中学习,增强了领悟、创新和推断的能力。掌握自学的方法,形成工程理论整体模式,使工作、学习、生活都步入系统化流程;思考方式成熟,逻辑性规范、明确。这些方法的提高是终身受益的,我认为这难得的一周,让我真正懂得了生活和学习的基本
13、规律。在对插值多项式的程序进行编辑过程中,遇到了很多方法不知道用什么函数表达的问题,通过查找有关 Matab 软件和现代数值计算的书籍得出本程序,在对程序调用时,不知道如何调用,通过上网查找方法知道了需要在Matlab 中的文件中新建一个 M文件,然后保存,然后到命令区直接调用就可以了。特别注意的是,在对 M文件保存时,要直接保存到默认的matlab 文件夹中,不可以随意更改保存路径。完成了课程设计的任务,但是从中发现的问题也是值得去深思的。我想经过这一个周的课程设计所发现的问题对我们会有很大的启示,在以后的学习中也会大有帮助。在以后的学习中我会不断的改进学习方法,在实践中学习,不断提高自我,完美自我,全面提高自己。我认为在编程方面,1、2、5 题自己独立完成的较好,给自己一个优秀吧。