文档库 最新最全的文档下载
当前位置:文档库 › 数值分析课程设计

数值分析课程设计

数值分析课程设计
数值分析课程设计

数值分析课程设计姓名:刘善梅

学号:11207210142

系:数理系

班级:11信息专升本

专业:信息与计算机科学

时间:2012年1月7号

一、 题目 复化Simplson 数值积分公式和复化梯形数值积分公

式的比较

二、 摘要 在matlab 的环境下熟悉的运用计算机的编程语言并

结合复化梯形公式和复化辛普森公式的理论基础对函数积

分,在运行完程序后对结果做出各方面的分析和比较。

三、 设计目的 用熟悉的计算机语言(这里特指MATLAB )编程

上机完成复化梯形公式和复化辛普森公式积分法积分。

四、 问题描述 (1)利用复化Simpson 公式计算积分dx

x x )ln(10?,其中ln(x)表示自然对数。(2)通过理论分析,得到dx

x x )ln(10?值;选取10个步长h=0.2,0.1,0.05,0.025,0.02,0.0125,0.01,0.005, 0.0025,0.001.对每一个步长,分别用复化梯形中点公式和复

化Simpson 公式计算上述定积分,并将计算结果和理论分析

所得的值做比较(给出计算所得值和理论所得的值差)。(3)

对比复化梯形公式和复化Simpson 公式的优劣,可以先对

dx x x )ln(1

0?运用复化梯形公式选取相应步长进行计算,再用复

化Simpson 公式进行计算。将计算结果和理论分析的值进行

差值比较,通过计算机编程实现可视化的优劣对比结果。

五、复化梯形公式和复化辛普森公式的理论基础

复化梯形公式:将区间【a,b 】化为n 等份,分点-1k x

a k =+()h ,

b a

h n -=,k=1,……n,n+1,在每个子区间[]1,k k x x +(k=1.....n )采用梯形公式1111()()[()()]()2k k n n x b

a x k k n k k h I f x dx f x dx f x

f x R f ++====?

=++?∑∑,

把112[()()][()2()()]

22n n n k k k k k h h T f x f x f a f x f b +===+=++∑∑称为复化梯形

公式,其余项为2''()()12n b a R f h f η-=- (,)a b η∈

复化辛普森公式:将区间[a,b]划分为n 等份,且n=2m,在每个子区间上采用辛普森公式,若记

22k k x x h +=+,则得

2211()()k k m x b

a x k I f x dx f x dx -==?=?

∑=2122112[()4()()]6m k k k k h f

x f x f x -+=++∑+()n R f 记

n S =212211[()4()()]3m k k k k h f x f x f x -+=++∑=22112

[()4()2()()]

3m m k k k k h f a f x f x f b -==+++∑∑称为复化辛普森求积公式,其余项为4(4)()(2)()180n b a R f h f η-=- (,)

a b η∈六、复化梯形公式和复化Simpson 程序(matalb )

复化梯形公式:主函数(以tixing_main.m 保存):%%复合中点计算函数积分主函数

disp('步长为0.2数值积分为') s_1=tixing(0.2) disp('步长为0.1数值积分为') s_2=tixing(0.1) disp('步长为0.05数值积分为') s_3=tixing(0.05) disp('步长为0.025数值积分为') s_4=tixing(0.025) disp('步长为0.02数值积分为') s_5=tixing(0.02) disp(步长为0.0125数值积分为') s_6=tixing(0.0125) disp('步长为0.01数值积分为') s_7=tixing(0.01) disp('步长为0.005数值积分为') s_8=tixing(0.005) disp(步长为0.0025数值积分为') s_9=tixing(0.0025) disp(步长为0.001数值积分为') s_10=tixing(0.001) %采用符号法计算出积分的严格结果

disp( ‘真实结果为:‘) fenxi_s=int('sqrt(x)*log(x)',0,1) s=vpa(fenxi_s,12) %取前12位有效数字

%误差情况

TOL=[s_1-s;s_2-s;s_3-s;s_4-s;s_5-s;s_6-s;s_7-s;s_8-s;s_9-s; s_10-s;]

方法函数(以tixing.m保存)%复合中的计算法计算积分

function s=tixing(h) % a,b为积分区间 % h为区间步长a=0; b=1; n=(b-a)/h; s=0;

%循环 for k=0:(n-1)

s=s+fun_tixing(a+h/2+k*h);

end s=h*s;

函数文件(以fun_tixing.m保存):

%计算函数 function f=fun_tixing(x) f=sqrt(x)*log(x); 复化Simpon公式主函数(以xps_main.m保存)

disp('步长为0.2数值积分为') s_1=xps(0.2)

disp('步长为0.1数值积分为') s_2=xps(0.1)

disp('步长为0.05数值积分为') s_3=xps(0.05)

disp('步长为0.025数值积分为') s_4=xps(0.025)

disp('步长为0.02数值积分为') s_5=xps(0.02)

disp('步长为0.0125数值积分为') s_6=xps(0.0125)

disp('步长为0.01数值积分为') s_7=xps(0.01)

disp('步长为0.005数值积分为') s_8=xps(0.005)

disp('步长为0.0025数值积分为') s_9=xps(0.0025)

disp('步长为0.001数值积分为') s_10=xps(0.001)

%采用符号法计算出积分的严格结果

disp('真实结果为:')fenxi_s=int('sqrt(x)*log(x)',0,1)

%取前12位有效数字

s=vpa(fenxi_s,12)

%误差情况

TOL=[s_1-s;s_2-s;s_3-s;s_4-s;s_5-s;s_6-s;s_7-s;s_8-s;s_9-s; s_10-s;]

方法函数(以xps.m保存):

function s=xps(h)% a,b为积分区间% h为区间步长

a=0;b=1;n=(b-a)/h;

s=4*fun_xps(a+h/2)+fun_xps((a+1)*h);

%循环

for k=1:(n-1)

s=s+4*fun_xps(a+h/2+k*h)+fun_xps(a+(k+1)*h)+fun_xps(a+k*h); end

s=(h/6)*s;

函数文件(以fun_xps.m保存):

%计算函数

function f=fun_xps(x) f=sqrt(x)*log(x);

七、实验结果

复化梯形公式:步长为0.2数值积分为s_1 = -0.4552 步长为0.1数值积分为 s_2 =-0.4494

步长为0.05数值积分为 s_3 =-0.4466

步长为0.025数值积分为 s_4 =-0.4454

步长为0.02数值积分为 s_5 =-0.4451

步长为0.0125数值积分为 s_6 =-0.4448

步长为0.01数值积分为 s_7 =-0.4447

步长为0.005数值积分为 s_8 =-0.4446

步长为0.0025数值积分为 s_9 =-0.4445

步长为0.001数值积分为 s_10 =-0.4445

真实结果为: fenxi_s =-4/9

s =-.444444444444

TOL = -.1077213652518227176530535871279e-1

-.497042669493058280567061046895e-2

-.218601770558979085452028812142e-2

-.92891520798687759425411059055e-3

-.70113981405950125919707716093e-3

-.38470720121302786582168664609e-3

-.28836912308538325506196997594e-3

-.11644401170862488898455922026e-3

-.4633689080157681844957551220e-4

-.1346247868288823996158498630e-4

复化Simpon公式:步长为0.2数值积分为 s_1 = -0.4298 步长为0.1数值积分为 s_2 = -0.4386

步长为0.05数值积分为 s_3 = -0.4422

步长为0.025数值积分为 s_4 = -0.4436

步长为0.02数值积分为 s_5 = -0.4438

步长为0.0125数值积分为 s_6 = -0.4441

步长为0.01数值积分为 s_7 = -0.4442

步长为0.005数值积分为 s_8 = -0.4443

步长为0.0025数值积分为 s_9 = -0.4444

步长为0.001数值积分为 s_10 = -0.4444

真实结果为: fenxi_s = -4/9 s = -0.444444444444 TOL =

0.014663714171479738349491029475447

0.0058135953768720074729130405100097

0.0022778570007535272866632143629051

0.0008839879795395047233923409291112

0.00065064614329415595739324398860681

0.00034034172384741736883161447591029

0.00024993362548861000382903821415148

0.000095398992342090841334723699818099

0.000036215571143441119717366200037034

0.0000099935864512315207845889741822276

八、结果分析

我们选取10个不同的步长,从结果中可以看出步长越细积分精度越高。分别用复合中点公式和复合Simpson公式计算上述定积分,并将计算结果和理论分析所得的值做差值比较。我们不难发现复合Simpson公式比复合中点公式的误差要小。可以看出复合Simpson公式比复合中点公式能更好的逼近被积函数f(x)。

九、总结

通过这次课程设计,提高了我们对理论知识的理解并且掌握了使用计算机软件的基本技能。同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。这次的课程设计中不仅检验了所学习的知识,也培养了我们如何去把握一件事情,如何去做一件事情,又如何完成一件事情。

十、参考文献

[1] 张平文,李铁军. 数值分析. 北京:北京大学出版社,2007.

[2] 徐瑞,黄兆东,等. MATLAB2007 科学与工程分析. 北京:科学出版社,2007.

[3] 宋叶志,贾东永. MATLAB数值分析与应用. 北京:机械工业出版社,2009.

数值分析课程设计

淮海工学院计算机工程学院课程设计报告书 课程名:《数值分析》 题目:数值分析课程设计 班级: 学号: 姓名:

数值分析课程设计 课程设计要求 1、研究第一导丝盘速度y与电流周波x的关系。 2、数据拟合问题运用样条差值方法求出温度变化的拟合曲线。 课程设计目的 1、通过编程加深对三次样条插值及曲线拟合的最小二乘法的理解; 2、学习用计算机解决工程问题,主要包括数据处理与分析。 课程设计环境 visual C++ 6.0 课程设计内容 课程设计题目1: 合成纤维抽丝工段中第一导丝盘的速度对丝的质量有很大的影响,第一丝盘的速度和电流周波有重要关系。下面是一组实例数据: 其中x代表电流周波,y代表第一导丝盘的速度 课程设计题目3: 在天气预报网站上获得你家乡所在城市当天24小时温度变化的数据,认真观察分析其变化趋势,在此基础上运用样条差值方法求出温度变化的拟合曲线。然后将该函数曲线打印出来并与原来的温度变化数据形成的曲线进行比较,给出结论。写出你研究的心得体会。 课程设计步骤 1、利用最小二乘法写出题1的公式和算法; 2、利用excel表格画出数据拟合后题1的图像; 3、在Visual C++ 6.0中编写出相应的代码; 4、搜索11月12日南通当地一天的温度变化数据; 5、在Visual C++ 6.0中编写出相应的代码; 6、利用excel表格画出数据拟合后题3的图像 课程设计结果 课程设计题目1 数值拟合

解:根据所给数据,在excel窗口运行: x=[49.2 50.0 49.3 49.0 49.0 49.5 49.8 49.9 50.2 50.2] y=[16.7 17.0 16.8 16.6 16.7 16.8 16.9 17.0 17.0 17.1] 课程设计题目3 数据为:X=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]; Y=[12,12,11,12,12,12,12,12,13,15,16,17,17,18,17,17,17,16,15,15,15,15,14,14]; 源代码为: 第一题: #include #include"math.h" using namespace std; //double x[100],y[100]; int main(){ int i; double k,b; double sum1=0,sum2=0,sum3=0,sum4=0; double x[10]={49.2,50.0,49.3,49.0,49.0,49.5,49.8,49.9,50.2,50.2}; double y[10]={16.7,17.0,16.8,16.6,16.7,16.8,16.9,17.0,17.0,17.1}; for(i=0;i<10;i++){ sum1+=x[i]*y[i]; sum2+=x[i];

数值分析课程设计题目与要求

数值分析课程设计题目与要求 (10级应数及创新班) [设计题一] 编写顺序Gauss消去法和列主元Gauss消去法的函数,再分别调用这两个函数求解下面的84阶方程组: = , 然后考虑将方程组的阶数取为10至100之间多个值进行求解。将你的计算结果与方程组的精确解进行比较。从“快”、“准”、“省”三个方面分析以上两个算法,试提出改进的算法并加以实现和验证。 [设计题二] 编写平方根法和改进的平方根法(参见教材《计算方法》P54的例题2.5)的函数,然后分别调用这两个函数求解对称正定方程组Ax=b,其中A和b分别为: (1)系数矩阵A为矩阵(阶数取为10至100之间多个值): , 向量b随机地选取; (2)系数矩阵A为Hilbert矩阵(阶数取为5至40之间多个值),即A的第i行第j列元素,向量b的第i个分量取为。将你的计算结果与方程组的精确解进 行比较。 若出现问题,分析其原因,提出改进的设想并尝试实现之。

对于迭代法 ,......)2,1,0(99.021=-=+k x x x k k k , 它显然有不动点0* =x 。试设计2个数值实验 得到收敛阶数的大概数值(不利用判定收敛阶的判据定理): (1) 直接用收敛阶的定义; (2) 用最小二乘拟合的方法。 [设计题四] 湖水在夏天会出现分层现象,接近湖面温度较高,越往下温度变低。这种上热下冷的现象影响了水的对流和混合过程,使得下层水域缺氧,导致水生鱼类的死亡。如果把水温T 看成深度x 的函数T(x),有某个湖的观测数据如下: 环境工程师希望: 1) 用三次样条插值求出T(x)。 2) 求在什么深度处dx dT 的绝对值达到最大( 即02 2=dx T d )。 [设计题五] 某飞机头部的光滑外形曲线的型值点坐标由下表给出: ...值y 及一阶、二阶导数值y ’,y ”。绘出模拟曲线的图形。

《数值分析课程设计》教学大纲

《数值分析课程设计》教学大纲 课程编号:1512110303 课程名称: 数值分析课程设计 周数/学分:3/3 先修课程:《数值分析》 适用专业: 信息与计算科学 开课教研室:应用数学教研室 一、目的与要求: 《数值分析课程设计》是实践性教学内容之一,是《数值分析》课程的辅助教学过程,是信息与计算科学专业的必修课。通过设计,使学生深化对所学理论知识的理解,掌握数值计算方法的程序设计能力,初步具备解决实际数值计算问题的能力。 二、课程设计内容: 1.掌握数值分析的基本内容。误差的基本概念,插值与拟合,数值积分,线性代数方程组的解法,非线性方程求根,常微分方程初值问题的数值解法。 2.对每部分内容设计一定难度的问题,要求学生对问题进行分析,确定解决方案。 3.进行模拟与仿真,进行结果分析,编写课程设计报告 三、课程设计步骤与方法 1.教师向学生讲解课程设计目的和要求,补充相关基本知识,布置课程设计任务。 2.学生查找资料,编程、调试程序。本步骤是课程设计的核心内容之一,要求学生分析算法,写出相应程序,并对结果进行解释 3.撰写课程设计报告。 四、课程设计的基本要求 1.算法说明正确无误,图表符合技术规范要求。 2.毎生一台计算机,要求学生使用Matlab软件或Mathematica软件编写相关程序。 3.按要求完成一篇的课程设计报告。 4.课程设计的方式:以集中学习为主;独立完成课程设计阶段规定的全部工作任务。 五、课程设计进度表 序号 内 容 所用时间 1 教师讲解,布置任务 1天 2 学生编写程序并撰写设计报告 11天

3 教师反馈意见,学生修改设计报告 3天 合计 15天 六、课程设计考核方式 平时设计环节中的表现占总成绩30%,课程设计报告和软件运行情况占总成绩70%。 执笔:赵国喜 审定:朱耀生 梁桂珍

数值计算课程设计任务书

数值计算课程设计任务书 学院信息与计算科学/应用数学专业班级学生: 题目:典型数值算法的C++语言程序设计 课程设计从2017 年 6 月12 日起到2017 年7月 1 日 1、课程设计的内容和要求(包括原始数据、技术要求、工作要求等): 每人需作10个算法的程序、必做6题、自选4题。 对每个算法要求用C++语言进行编程。 必选题: 1、高斯列主元法解线性方程组 2、牛顿法解非线性方程组 3、经典四阶龙格库塔法解一阶微分方程组 4、三次样条插值算法(压紧样条)用C++语言进行编程计算 依据计算结果,用Matlab画图并观察三次样条插值效果。 5、龙贝格求积分算法 6、M次多项式曲线拟合,据计算结果,用Matlab画图并观察拟合效果。 自选题:自选4道其他数值算法题目.每道题目重选次数不得超过5次. 2、对课程设计成果的要求〔包括图表、实物等硬件要求〕: 2.1 提交课程设计报告 按照算法要求,应用C++语言设计和开发算法程序,提交由: 1)每个算法的原理与公式说明; 2)每个算法相应的程序设计说明(程序中的主要变量语义说明,变量的数据类型说明,数据在内存中组织和存储结构说明,各函数的输入形参和输出形参说明,函数功能说明,函数中算法主要流程图,函数的调用方法说明); 3)每个程序使用的实例(引用的实例可以自拟,也可以借用相关数值计算参考书中的例题作为作为验证程序是否正确的实例,无论是自拟实例还是引用实例,实例都应详细写入报告的正文中); 4)每个算法的调试记录(包括程序调试(静态调试和动态调试)和程序修改记录、程序测试(可以手工计算进行测试、也可以利用Matlab的函数或

数值分析实验报告1

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b =

的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots + 上述简单的Matlab 程序便得到()的全部根,程序中的“ess ”即是()中的ε。 实验要求: (1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。 如果扰动项的系数ε很小,我们自然感觉()和()的解应当相差很小。计算中你有什么出乎意料的发现表明有些解关于如此的扰动敏感性如何 (2)将方程()中的扰动项改成18x ε或其它形式,实验中又有怎样的现象 出现 (3)(选作部分)请从理论上分析产生这一问题的根源。注意我们可以将 方程()写成展开的形式, ) 3.1(0 ),(1920=+-= x x x p αα 同时将方程的解x 看成是系数α的函数,考察方程的某个解关于α的扰动是否敏感,与研究它关于α的导数的大小有何关系为什么你发现了什么现象,哪些根关于α的变化更敏感 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。

偏微分方程数值解课程设计

课程设计报告 课程:偏微分方程数值解学号: 姓名: 班级: 教师:

《偏微分方程数值解》 课程设计指导书 一.课程设计的目的 1.帮助掌握偏微分方程数值解相关知识。 2.理解偏微分方程数值解差分隐格式解决自由振动方程问题的方法。 3.锻炼编写程序代码的能力。 二.设计名称 差分法求自由振动问题的周期解。 三.设计要求 1.要求写出差分隐格式的理论方法。 2.要求编写matlab 程序,画出函数图形。 3.要求写出实验总结及心得体会。 四.设计题目 用差分法求自由振动问题的周期解: 2222000,,0|0,|sin (0,)(2,)t t u u x t t x u u x t u t u t π==???-=-∞<<∞>???? ??==??? =??? 要求用差分隐格式求解,其中14 θ= 。 五.设计细则 1.区域剖分: 构造上式的差分逼近,取空间步长h 和时间步长τ,用两族平行直线 ?? ?===±±=== ,2,1,0,, ,2,1,0,n n t t j jh x x n j τ 作矩形网格。 2.离散格式: 显格式: 于网点),(n j t x 用Taylor 展式,并整理方程得: ??? ?? ??--++=+-++==-+-++-121121102 10102100 )1(2)(),()()1()]()([2),(n j n j n j n j n j j j j j j j j u u r u u r u x x r x x r u x u τ?????

隐格式: 上述显格式并不是绝对稳定的差分格式,为了得到绝对稳定的差分格式,用第1-n 层、 n 层、1+n 层的中心差商的权平均去逼近xx u ,得到下列差分格式: ? ??? ?? ???+-++--++-=+-+-++==----+-++-+++-++-]22)21(2[2), ()()1()]()([2),(2111112112111112 211102 10102100h u u u h u u u h u u u a u u u x x r x x r u x u n j n j n j n j n j n j n j n j n j n j n j n j j j j j j j j θθθττ?????其中10≤≤θ是参数。当0=θ时就是显格式,而当4 1 =θ时可以证明该格式绝对稳定。 隐格式的矩阵形式是: ??? ???????? ???????????=??????????????????????????????????????????????? ?-+-+-+-+--+-+-+++122111121121 12222 222 2222221212121J J j n J n J n j n n z z z z z u u u u u r r r r r r r r r r r r θθθθ θθθθθ θ θθ 其中: 1 111111122]2()2)(21[(-----+-+-++-++--=n j n j n j n j n j n j n j n j j u u u u u u u u r z θθ 3.格式稳定性: 1)显格式: 显格式稳定的充分必要条件是:网格比1

数值分析课程设计

课程设计报告 课程名称 课题名称 专业 班级 学号 姓名 指导教师 年月日

湖南工程学院课程设计任务书 课程名称数值分析 课题 专业班级 学生姓名 学号 指导老师 审批 任务书下达日期2009 年 5 月 4 日任务完成日期2009 年 5 月18日

一、设计内容与设计要求 1.设计内容: 对课程《计算方法》中的常见算法进行综合设计或应用(具体课题题目见后面的供选题目)。 2.设计要求: ●课程设计报告正文内容 a.问题的描述及算法设计; b.算法的流程图(要求画出模块图); c.算法的理论依据及其推导; d.相关的数值结果(通过程序调试),; e.数值计算结果的分析; f.附件(所有程序的原代码,要求对程序写出必要的注释)。 ●书写格式 a.要求用A4纸打印成册 b.正文格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。 c.正文的内容:正文总字数要求在3000字左右(不含程序原代码)。 d.封面格式如下页。 ●考核方式 指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分: a.平时出勤(占10%) b.系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%) c.程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%) d.设计报告(占30%) 注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。 e.独立完成情况(占10%)。 ●课程验收要求 a.判定算法设计的合理性,运行相关程序,获得正确的数值结果。

《数值分析》课程设计报告

《数值分析》课程设计实验报告 龙格—库塔法分析Lorenz 方程 200820302033 胡涛 一、问题叙述 考虑著名的Lorenz 方程 () dx s y x dt dy rx y xz dt dz xy bz dt ?=-???=--???=-?? 其中s ,r ,b 为变化区域内有一定限制的实参数,该方程形式简单,表面上看并无惊人之处,但由该方程揭示出的许多现象,促使“混沌”成为数学研究的崭新领域,在实际应用中也产生了巨大的影响。 二、问题分析 Lorenz 方程实际上是一个四元一阶常微分方程,用解析法精确求解是不可能的,只能用数值计算,最主要的有欧拉法、亚当法和龙格- 库塔法等。为了得到较高精度的,我们采用经典四阶龙格—库塔方法求解该问题。 三、实验程序及注释 (1)算法程序 function [T]=Runge_Kutta(f,x0,y0,h,n) %定义算法,其中f 为待解方程组, x0是初始自变量,y0是初始函数 值,h 是步长,n 为步数 if nargin<5 n=100; %如果输入参数个数小于5,则步数 n=100 end r=size(y0);r=r(1); %返回初始输出矩阵的行列数,并将 值赋给r(1) s=size(x0);s=s(1); %返回初始输入矩阵的行列数,并 将值赋给s(1) r=r+s; T=zeros(r,n+1); T(:,1)=[y0;x0]; for t=2:n+1 %以下是具体的求解过程 k1=feval(f,T(1:r-1,t-1)); k2=feval(f,[k1*(h/2)+T(1:r-1,t-1);x0+h/2]); k3=feval(f,[k2*(h/2)+T(1:r-1,t-1);x0+h/2]); k4=feval(f,[k3*h+T(1:r-1,t-1);x0+h]); x0=x0+h; T(:,t)=[T(1:r-1,t-1)+(k1+k2*2+k3*2+k4)*(h/6);x0]; end

12级数值分析课程设计

数值分析课程设计题目与要求 (12级应数及创新班) [设计题一] 编写顺序Gauss消去法和列主元Gauss消去法的函数,再分别调用这两个函数求解下面的84阶方程组: = , 然后考虑将方程组的阶数取为10至100之间多个值进行求解。将你的计算结果与方程组的精确解进行比较。从“快”、“准”、“省”三个方面分析以上两个算法,试提出改进的算法并加以实现和验证。 [设计题二] 编写平方根法和改进的平方根法(参见教材《计算方法》P54的例题2.5)的函数,然后分别调用这两个函数求解对称正定方程组Ax=b,其中A和b分别为: (1)系数矩阵A为矩阵(阶数取为10至100之间多个值): , 向量b随机地选取; (2)系数矩阵A为Hilbert矩阵(阶数取为5至40之间多个值),即A的第i行第j列元素,向量b的第i个分量取为。将你的计算结果与方程组的精确解进 行比较。 若出现问题,分析其原因,提出改进的设想并尝试实现之。

对于迭代法 ,......)2,1,0(99.02 1=-=+k x x x k k k , 它显然有不动点0*=x 。试设计2个数值实验 得到收敛阶数的大概数值(不利用判定收敛阶的判据定理): (1) 直接用收敛阶的定义; (2) 用最小二乘拟合的方法。 [设计题四] 湖水在夏天会出现分层现象,接近湖面温度较高,越往下温度变低。这种上热下冷的现象影响了水的对流和混合过程,使得下层水域缺氧,导致水生鱼类的死亡。如果把水温T 看成深度x 的函数T(x),有某个湖的观测数据如下: 环境工程师希望: 1) 用三次样条插值求出T(x)。 2) 求在什么深度处dx dT 的绝对值达到最大( 即02 2=dx T d )。 [设计题五] 某飞机头部的光滑外形曲线的型值点坐标由下表给出: ...值y 及一阶、二阶导数值y ’,y ”。绘出模拟曲线的图形。

数值分析课程课程设计汇总

课 程 设 计 我再也回不到大二了, 大学是那么短暂 设计题目 数值分析 学生姓名 李飞吾 学 号 x x x x x x x x 专业班级 信息计x x x x x 班 指导教师 设 计 题 目 共15题如下 成绩

数值分析课程设计 1.1 水手、猴子和椰子问题:五个水手带了一只猴子来到南太平洋的一个荒岛上,发现那里有一大堆椰子。由于旅途的颠簸,大家都很疲惫,很快就入睡了。第一个水手醒来后,把椰子平分成五堆,将多余的一只给了猴子,他私藏了一堆后便又去睡了。第二、第三、第四、第五个水手也陆续起来,和第一个水手一样,把椰子分成五堆,恰多一只猴子,私藏一堆,再去入睡,天亮以后,大家把余下的椰子重新等分成五堆,每人分一堆,正好余一只再给猴子,试问原先共有几只椰子?(15621) 试分析椰子数目的变化规律,利用逆向递推的方法求解这一问题 解:算法分析:解该问题主要使用递推算法,关于椰子数目的变化规律可以设起初的椰子数为0p ,第一至五次猴子在夜里藏椰子后,椰子的数目分别为01234,,,,p p p p p 再设最后每个人分得x 个椰子,由题: 14 (1)5 k k p p +=- (k=0,1,2,3,4)51(1)5 x p =- 所以551p x =+,11k k p p +=+利用逆向递推方法求解 15 1,4 k k p p +=+ (k=0,1,2,3,4) MATLAB 代码: n=input('n= '); n= 15621 for x=1:n p=5*x+1; for k=1:5 p=5*p/4+1; end if p==fix(p), break end end disp([x,p]) 1.2 设,1 5n n x I dx x =+? (1)从0I 尽可能精确的近似值出发,利用递推公式: 11 5(1,2,20)n n I I n n -=-+= 计算机从1I 到20I 的近似值; (2)从30I 较粗糙的估计值出发,用递推公式:

数值分析课程设计分析方案

郑州轻工业学院 《数值分析》 课程设计报告 题目: 1.非线性方程求解 8.最小二乘法 姓名:杨君芳 院<系):数学与信息科学学院 专业班 级:信科 11-01 学号:541110010148 指导教 师:汪远征 时间:2018年12月30日至2018年1月4日

摘要 本文的内容主要属于数值代数问题的迭代解法和差值问题。 在VC++6.0环境下对非线性方程求根的三种迭代解法<即一般迭代法,牛顿迭代法和弦截法)的算法实现,将抽象问题转化为计算机编程的一般解法思想,实现运用计算机解非线性方程的根。同时完成了运用最小二乘法的思想解决实际问题的简单设计, 本文也对该程序设计的难点、解决技巧、每种方法的理论基础、程序的算法分析、功能分析、模块设计以及算法的优点、缺点和主要参考文献等进行了详细的作答。 ,

目录 《数值分析》1 课程设计报告1 摘要2 目录3 1 理论基础4 1.1 非线性方程的迭代解法4 1.2最小二乘法4 2 算法分析5 2.1 功能分析5 2.1.1非线性方程的迭代解法5 2.2 算法分析5 3 程序设计8 3.1 选单和主窗口设计8 3.1.1非线性方程的迭代解法8 3.1.2最小二乘法10 3.2 模块设计14 3.2.1非线性方程的迭代解法14 3.2.2 最小二乘法18 4 总结24 5 参考文献25

1 理论基础 1.1 非线性方程的迭代解法 1、 一般迭代法:首先将方程f

数值分析课程课程设计

课程设计 我再也回不到大二了, 大学是那么短暂 设计题目________ 数值分析 学生姓名________ 李飞吾 _________ 学号 ______ XXXXXXXX 专业班级信息计XXXXX班 指导教师_________________________

数值分析课程设计 1.1水手、猴子和椰子问题:五个水手带了一只猴子来到南太平洋的 一个荒岛上,发现那里有一大堆椰子。由于旅途的颠簸,大家都很疲惫, 很快就入睡了。第一个水手醒来后,把椰子平分成五堆,将多余的一只 给了猴子,他私藏了一堆后便又去睡了。第二、第三、第四、第五个水 手也陆续起来,和第一个水手一样,把椰子分成五堆,恰多一只猴子, 私藏一堆,再去入睡,天亮以后,大家把余下的椰子重新等分成五堆, 每人分一堆,正好余一只再给猴子,试问原先共有几只椰子? ( 15621) 试分析椰子数目的变化规律,利用逆向递推的方法求解这一问题 解:算法分析:解该问题主要使用递推算法,关于椰子数目的变化规律 可以设起初的椰子数为p o ,第一至五次猴子在夜里藏椰子后,椰子的数 目分别为Pb ,p 1 ,p 2,P 3,P 4再设最后每个人分得x 个椰子,由题: 4 1 p k 1 ( p k 1) ( k=0,1,2,3,4 ) x -( p 5 1) 5 5 所以P 5 5x 1, p< p< 1 1利用逆向递推方法求解 P k - P k 1 1, ( k=0,1,2,3,4 ) 4 MATLAB^码: n 二in put(' n 二'); n= 15621 for x=1: n p=5*x+1; for k=1:5 p=5*p/4+1; end if P==fix(p), break end end disp([x,p]) 1 n 1. 2 设,I n — dx 05 x (1) 从I 。尽可能精确的近似值出发,利用递推公式: 1 I n 5I n 1 -(n 1,2,L 20) n 计算机从h 到I 20的近似值; (2) 从%较粗糙的估计值出发,用递推公式: 1 1 I n 1 —I n (n 30,29,L ,3,2) 5 5n 输出结果: 1023 15621 结果分析:此题的解题思想是在迭代法 中,判断p 为整数时,输出与p

数值分析课程设计(最终版)

本文主要通过Matlab 软件,对数值分析中的LU 分解法、最小二乘法、复化Simpon 积分、Runge-Kutta 方法进行编程,并利用这些方法在MATLAB 中对一些问题进行求解,并得出结论。 实验一线性方程组数值解法中,本文选取LU 分解法,并选取数据于《数值分析》教材第5章第153页例5进行实验。所谓LU 分解法就是将高斯消去法改写为紧凑形式,可以直接从矩阵A 的元素得到计算L 、U 元素的递推公式,而不需要任何步骤。用此方法得到L 、U 矩阵,从而计算Y 、X 。 实验二插值法和数据拟合中,本文选取最小二乘拟合方法进行实验,数据来源于我们课堂学习该章节时的课件中的多项式拟合例子进行实验。最小二乘拟合是一种数学上的近似和优化,利用已知的数据得出一条直线或者曲线,使之在坐标系上与已知数据之间的距离的平方和最小。利用excel 的自带函数可以较为方便的拟合线性的数据分析。 实验三数值积分中,本文选取复化Simpon 积分方法进行实验,通过将复化Simpson 公式编译成MATLAB 语言求积分∫e ;x dx 1 0完成实验过程的同时,也对复化Simpon 积分章节的知识进行了巩固。 实验四常微分方程数值解,本文选取Runge-Kutta 方法进行实验,通过实验了解Runge-Kutta 法的收敛性与稳定性同时学会了学会用Matlab 编程实现Runge-Kutta 法解常微分方程,并在实验的过程中意识到尽管我们熟知的四种方法,事实上,在求解微分方程初值问题,四阶法是单步长中最优秀的方法,通常都是用该方法求解的实际问题,计算效果比较理想的。 实验五数值方法实际应用,本文采用最小二乘法拟合我国2001年到2015年的人口增长模型,并预测2020年我国人口数量。 关键词:Matlab ;LU 分解法;最小二乘法;复化Simpon 积分;Runge-Kutta

数值分析实验报告总结

数值分析实验报告总结 随着电子计算机的普及与发展,科学计算已成为现代科 学的重要组成部分,因而数值计算方法的内容也愈来愈广泛和丰富。通过本学期的学习,主要掌握了一些数值方法的基本原理、具体算法,并通过编程在计算机上来实现这些算法。 算法算法是指由基本算术运算及运算顺序的规定构成的完 整的解题步骤。算法可以使用框图、算法语言、数学语言、自然语言来进行描述。具有的特征:正确性、有穷性、适用范围广、运算工作量少、使用资源少、逻辑结构简单、便于实现、计算结果可靠。 误差 计算机的计算结果通常是近似的,因此算法必有误差, 并且应能估计误差。误差是指近似值与真正值之差。绝对误差是指近似值与真正值之差或差的绝对值;相对误差:是指近似值与真正值之比或比的绝对值。误差来源见表 第三章泛函分析泛函分析概要 泛函分析是研究“函数的函数”、函数空间和它们之间 变换的一门较新的数学分支,隶属分析数学。它以各种学科

如果 a 是相容范数,且任何满足 为具体背景,在集合的基础上,把客观世界中的研究对象抽 范数 范数,是具有“长度”概念的函数。在线性代数、泛函 分析及相关的数学领域,泛函是一个函数,其为矢量空间内 的所有矢量赋予非零的正长度或大小。这里以 Cn 空间为例, Rn 空间类似。最常用的范数就是 P-范数。那么 当P 取1, 2 ,s 的时候分别是以下几种最简单的情形: 其中2-范数就是通常意义下的距离。 对于这些范数有以下不等式: 1 < n1/2 另外,若p 和q 是赫德尔共轭指标,即 1/p+1/q=1 么有赫德尔不等式: II = ||xH*y| 当p=q=2时就是柯西-许瓦兹不等式 般来讲矩阵范数除了正定性,齐次性和三角不等式之 矩阵范数通常也称为相容范数。 象为元素和空间。女口:距离空间,赋范线性空间, 内积空间。 1-范数: 1= x1 + x2 +?+ xn 2-范数: x 2=1/2 8 -范数: 8 =max oo ,那 外,还规定其必须满足相容性: 所以

数值分析-课程设计doc

课程设计报告 课程名称数值分析 课题名称数值积分 专业信息与计算科学 班级 学号 姓名 指导教师 2015 年12 月20 日

湖南工程学院 课程设计任务书 课程名称数值分析 课题数值积分 专业班级信息与计算科学0901班 学生姓名 学号 指导老师辉 审批 任务书下达日期2015 年12 月7 日任务完成日期2015 年12 月20日

设计内容与设计要求 1. 设计内容: 非奇异矩阵矩阵A ∈R n*n ,已知A -1的一个近似矩阵D (0)∈R n*n ,则由矩阵公式: ?????+=-=--)()1()1(K K K K K F I D D AD I F , K=0,1,2,3........... (1).已知矩阵A 及其逆矩阵的一个近似D (k)为: A=?? ??? ?? ?? ???--------7.49.43.49.19.47.11.88.78.26 .21.27.07.37.08.38.1 D= ???? ? ???? ???---------185.0061.0388.0293.0199.0009.0046.0230.0089.0016.0169.0035.0270.0163.0460.0211.0 用以上方法计算序列{D (k)}迭代次数超过100次时结束。 (2)分析最后得到的D (k)是否A 的一个较好的近似逆矩阵 2.设计要求: ● 课程设计报告正文内容 a. 问题的描述及算法设计; b. 算法的流程图(要求画出模块图); c. 算法的理论依据及其推导; d. 相关的数值结果(通过程序调试),; e. 数值计算结果的分析; f. 附件(所有程序的原代码,要求对程序写出必要的注释)。 ● 书写格式

数值分析实验报告

学生实验报告实验课程名称 开课实验室 学院年级专业班 学生姓名学号 开课时间至学年学期

if(A(m,k)~=0) if(m~=k) A([k m],:)=A([m k],:); %换行 end A(k+1:n, k:c)=A(k+1:n, k:c)-(A(k+1:n,k)/ A(k,k))*A(k, k:c); %消去end end x=zeros(length(b),1); %回代求解 x(n)=A(n,c)/A(n,n); for k=n-1:-1:1 x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k); end y=x; format short;%设置为默认格式显示,显示5位 (2)建立MATLAB界面 利用MA TLAB的GUI建立如下界面求解线性方程组: 详见程序。 五、计算实例、数据、结果、分析 下面我们对以上的结果进行测试,求解:

? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - - - 7 2 5 10 13 9 14 4 4 3 2 1 13 12 4 3 3 10 2 4 3 2 1 x x x x 输入数据后点击和,得到如下结果: 更改以上数据进行测试,求解如下方程组: 1 2 3 4 43211 34321 23431 12341 x x x x ?? ???? ?? ???? ?? ???? = ?? ???? - ?? ???? - ???? ?? 得到如下结果:

数值分析实验— MATLAB实现

数值分析实验 ——MATLAB实现 姓名sumnat 学号2013326600000 班级13级应用数学2班 指导老师 2016年1月

一、插值:拉格朗日插值 (1) 1、代码: (1) 2、示例: (1) 二、函数逼近:最佳平方逼近 (2) 1、代码: (2) 2、示例: (2) 三、数值积分:非反常积分的Romberg算法 (3) 1、代码: (3) 2、示例: (4) 四、数值微分:5点法 (5) 1、代码: (5) 2、示例: (6) 五、常微分方程:四阶龙格库塔及Adams加速法 (6) 1、代码:四阶龙格库塔 (6) 2、示例: (7) 3、代码:Adams加速法 (7) 4、示例: (8) 六、方程求根:Aitken 迭代 (8) 1、代码: (8) 2、示例: (9) 七、线性方程组直接法:三角分解 (9) 1、代码: (9) 2、示例: (10) 八、线性方程组迭代法:Jacobi法及G-S法 (11) 1、代码:Jacobi法 (11) 2、示例: (12) 3、代码:G-S法 (12) 4、示例: (12) 九、矩阵的特征值及特征向量:幂法 (13) 1、代码: (13) 2、示例: (13)

一、插值:拉格朗日插值 1、代码: function z=LGIP(x,y)%拉格朗日插值 n=size(x); n=n(2);%计算点的个数 syms a; u=0;%拉格朗日多项式 f=1;%插值基函数 for i=1:n for j=1:n if j==i f=f; else f=f*(a-x(j))/(x(i)-x(j)); end end u=u+y(i)*f;f=1; end z=expand(u);%展开 2、示例: >> x=1:6; y1=x.^5+3*x.^2-6; y2=sin(x)+sqrt(x); >> f1=LGIP(x,y1) f1 = -6+3*a^2+a^5 %可知多项式吻合得很好 >> f2=vpa(LGIP(x,y2),3) f2 = .962e-1*a^4+1.38*a+.300*a^2+.504-.436*a^3-.616e-2*a^5

数值分析实验报告1

实验一 误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对(1.1)中19x 的系数作一个小的扰动。我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b = 的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve =

数值分析课程设计学生题目

《数值分析》课程设计

本课程设计的内容为:每个小组的同学均应完成以下五个案例; 目标:能将数值分析课程中所学的算法知识熟练应用于实际问题中。 案例1 土木工程和环境工程师在设计一条排水渠道时必须考虑渠道的各种参数(如宽度,深度,渠道内壁光滑度)及水流速度、流量、水深等物理量之间的关系。 假设修一条横断面为矩形的水渠,其宽度为B ,假定水流是定常的,也就是说水流速度不随时间而变化。 根据质量守恒定律可以得到 Q=UBH (1.1) 其中Q 是水的流量(s m /3 ),U 是流速(s m /),H 是水的深度(m )。 在水工学中应用的有关流速的公式是 3 /23 /22/1)2()(1H B BH S n U += (1.2) 这里n 是Manning 粗糙系数,它是一个与水渠内壁材料的光滑性有关的无量纲量;S 是水渠 的斜度系数,也是一个无量纲量,它代表水渠底每米内的落差。 把(1.2)代入(1.1)就得到 3 /23 /52/1)2()(1H B BH S n U += (1.3) 为了不同的工业目的(比如说要把污染物稀释到一定的浓度以下,或者为某工厂输入一定量 的水),需要指定流量Q 和B ,求出水的深度。这样,就需要求解 0) 2()(1)(3 /23 /52/1=-+=Q H B BH S n H f (1.4) 一个具体的案例是 s m Q S n m B /5 ,0002.0 ,03.0 ,203==== 求出渠道中水的深度H 。 所涉及的知识——非线性方程解法。 案例2 在化学工程中常常研究在一个封闭系统中同时进行的两种可逆反应 C D A C B A ?+?+2 其中A ,B ,C 和D 代表不同的物质。反应达到平衡是有如下的平衡关系: d a c b a c C C C k C C C k == 22 1 , 其中2 24 1107.3 ,104--?=?=k k 称为平衡常数,),,,(d c b a n C n =代表平衡状态时该物质的浓度。假定反应开始时各种物质的浓度为:

数值分析课程设计报告(95分)

数值分析课程设计报告 设计题1、2、3、5 学院、系: 专业: 姓名: 学号: 任课教师: 提交日期: 电子邮箱:

目录 [设计题一] (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结果分析与设计总结 (13) [设计题五] (13) 4.1问题分析与设计思路 (14) 4.2程序清单 (15) 4.3 运行结果 (20) 4.4结果分析 (21) 【数值分析课程设计总结】 (22)

11121112 31 111121n n H n n n n ?? ? ? ? ?=+ ? ? ? ?+-?? [设计题一] 设计实验验证Hilbert 矩阵的病态性。 1.1问题分析与设计思路 在求解任何反问题的过程中通常会遇到病态矩阵问题,而且病态矩阵问题还未有很好的解决方法,尤其是长方形、大型矩阵。目前主要有Tikhonov 、奇异值截断、奇异值修正等方 法。 求解方程组时对数据的小扰动很敏感的矩阵就是病态矩阵。解线性方程组Ax =b 时,若对于系数矩阵A 及右端项b 的小扰动δA 、δb ,方程组(A +δA )χ=b +δb 的解χ与原方程组Ax =b 的解差别很大,则称矩阵A 为病态矩阵。方程组的近似解χ一般都不可能恰好使剩余r=b -A χ为零,这时χ亦可看作小扰动问题A χ=b -r(即δA =0,δb =-r)的解,所以当A 为病态时,即使剩余很小,仍可能得到一个与真解相差很大的近似解。 因此,设计思路如下: 令x0=(1,1…..1),计算出b=Hx0,求出b ,然后再用高斯消去法球解Hx=b ,得到近似解x ,然后利用标准差:

相关文档