数值分析资料报告课程设计

数值分析资料报告课程设计
数值分析资料报告课程设计

工业大学

课程设计

资料袋

理学院学院(系、部) 2013-2014 学年第 2 学期

课程名称数值分析指导教师职称副教授

学生专业班级信计1102 学号 114111002

题目超松弛迭代法解线性方程组

成绩起止日期 2014 年 06 月 09 日~ 2014 年 06 月 13 日

目录清单

工业大学

课程设计任务书

2013-2014学年第 2 学期

理学院学院(系、部)信息与计算科学专业 1102 班级课程名称:数值分析

设计题目:超松弛迭代法解线性方程组

完成期限:自 2014 年 06 月 09 日至 2014 年 06 月 13 日共 1 周

指导教师(签字):年月日

系(教研室)主任(签字):年月日

数值分析课程设计说明书

超松弛迭代法求解线性方程组

起止日期: 2014 年 06月 09 日至 2014 年 06 月 13 日

学生

班级信息与计算科学11级

学号

成绩

指导教师(签字)

理学院

2014年06月 13 日

目录

第1章超松弛迭代法的论述 (4)

1.1 理论依据 (4)

1.2 收敛性判别条件 (5)

1.3 收敛速度的估计 (5)

第2章程序设计及结果 (6)

2.1 MATLAB程序 (6)

2.2 运行结果及分析 (7)

第三章对题目进行变化 (9)

3.1改进方法 (9)

3.2改进题目 (13)

第四章对算法进行展望 (13)

结论 (14)

参考文献 (15)

附录 (15)

应用SOR 方法(取5.1,2..1=ω)解 ??

?

??=+-=-+-=-8

102,7210,9103232121x x x x x x x

的方程组.要求3*10||||-∞<-x x k ,T x ]1,1,1[*=

第1章 超松弛迭代法的论述

1.1 理论依据

超松弛迭代法定义

[1]

超松弛(Successive Over Relaxation)迭代法,简称SOR 迭代法,它是在Gauss-Seidel 法基础上为提高收敛速度,采用加权平均而得到的新算法.设解方程组的Gauss-Seidel 法记为

1(1)(1)()11

1(),1,2,,i n

k k k i

i ij j ij j j j i ii x

b a x a x i n

a -++==+=--=∑∑ (1)

再由()

k i x 与(1)

k i

x +加权平均得

(1)

(1)(1)()()()(1)(),1,2,

,k k k k k k i i i i i x x x x x x i n ωωω+++=-+=+-=

这里ω>0称为松弛参数,将(1)代入则得

1

(1)

()

(1)

()1

1

(1)(),1,2,

,i n

k k k k i

i

i ij j

ij

j j j i ii

x x b a x a

x i n

a ω

ω-++==+=-+

--

=∑∑ (2)

称为SOR 迭代法,ω>0称为松弛因子,当ω=1时(2)即为Gauss-Seidel 法,将

(2)写成矩阵形式,则得

(1)()(1)()(1)()k k k k Dx Dx b Lx Ux ωω++=-+++

于是得SOR 迭代的矩阵表示[3]

(1)()k k i x G x f ωω

+=+ (3)

其中

1()[(1)]

G D L D U ωωωω-=--+

1()f D L b ωωω-=-

1.2 收敛性判别条件

根据迭代法收敛性定理[2],SOR 法收敛的充分必要条件为()1G ωρ<,但要计

算()G ωρ比较复杂,通常都不用此结论,而直接根据方程组的系数矩阵A 判断SOR 迭代收敛性,下面先给出收敛必要条件.

定理1]4[ 设(),0(1,2,...,)n n ij ii A a R a i n ?=∈≠=,则解方程Ax b =的SOR 迭代法收

敛的必要条件是0<ω<2.

定理2]5[ 若n n A R ?∈对称正定,且0<ω<2,则解Ax=b 的SOR 迭代法(3)对

n x R ?∈迭代收敛.

对于SOR 迭代法,松弛因子的选择对收敛速度影响较大,关于最优松弛因子研究较为复杂,且已有不少理论结果.下面只给出一种简单且便于使用的结论.

第2章 程序设计及结果

2.1 MATLAB 程序

2.1=ω时:

ω时:

=

5.1

2.2 运行结果及分析w = 1.2时:

w = 1.5时:

分析:当w=1.2时,原问题只需迭代9次就已经快收敛到正解,而当w=1.5时,原问题迭代了13次才趋于收敛到正解,而且收敛效果没有w=1.2时的效果好。

第三章 对题目进行变化 3.1寻找最优的ω

可以通过将设置围,(]2,0∈ω,并取步长1.0=h ,将原题进行迭代:

迭代代码如下: clear clc

a=[10 -1 0;-1 10 -2;0 -2 10]; b=[9;7;8];

x1(1)=0.5;x2(1)=0.5;x3(1)=0.5; eps=1e-3; h=0.1;

for j=1:20

w(j)=0+h*j;

for k=1:1000

x1(k+1)=w(j)*(b(1)-a(1,2)*x2(k)-a(1,3)*x3(k))/a(1,1)+(1-w(j))*x1(k);

x2(k+1)=w(j)*(b(2)-a(2,1)*x1(k+1)-a(2,3)*x3(k))/a(2,2)+(1-w(j))*x2(k) ;

x3(k+1)=w(j)*(b(3)-a(3,1)*x1(k+1)-a(3,2)*x2(k+1))/a(3,3)+(1-w(j))*x3( k);

%[x1',x2',x3']

if norm([(x1(k)'-1),(x2(k)'-1),(x3(k)'-1)],inf)

k

break

end

end

[x1',x2',x3']

end

运行结果如下:

取几个 的值迭代得到的结果展示:

ω=0.5

ω=0.7

=0.4

=0.6

3.2改进题目

题目:

-4x1+x2+x3+x4=1

x1-4x2+x3+x4=1

x1+x2-4x3+x4=1

x1+x2+x3-4x4=1

clear

clc

a=[-4 1 1 1;1 -4 1 1;1 1 -4 1;1 1 1 -4]; b=[1;1;1;1];

x1(1)=0;x2(1)=0;x3(1)=0;x4=0;

eps=1e-3;

w=1.5;

for k=1:20

x1(k+1)=w*(b(1)-a(1,2)*x2(k)-a(1,3)*x3(k)-a(1,4)*x4(k))/a(1,1)+(1-w)* x1(k);

x2(k+1)=w*(b(2)-a(2,1)*x1(k+1)-a(2,3)*x3(k)-a(2,4)*x4(k))/a(2,2)+(1-w )*x2(k);

x3(k+1)=w*(b(3)-a(3,1)*x1(k+1)-a(3,2)*x2(k+1)-a(3,4)*x4(k))/a(3,3)+(1 -w)*x3(k);

x4(k+1)=w*(b(4)-a(4,1)*x1(k+1)-a(4,2)*x2(k+1)-a(4,3)*x3(k+1))/a(4,4)+ (1-w)*x4(k);

if norm([(x1(k)'-1),(x2(k)'-1),(x3(k)'-1),(x4(k)'-1)])

break

end

end

[x1',x2',x3',x4']

运行结果:

第四章对算法进行展望

逐次超松弛(Successive Over Relaxation)迭代法,简称SSOR迭代法,它是在GS法基础上为提高收敛速度,采用加权平均而得到的新算法,设解方程(7.1.3)的GS法记为

(7.3.1)

再由与加权平均得

这里ω>0称为松弛参数,将(7.3.1)代入则得

(7.3.2)

称为SOR迭代法,[WTBX]ω>0称为松弛因子,当ω=1时(7.3.2)即为GS法,将(7.3.2)写成矩阵形式,则得

于是得SOR迭代的矩阵表示

(7.3.3)

其中

(7.3.4)

按(7.1.7)分解,有

结论

超松弛迭代法(SOR)是在高斯-赛德尔方法和Jacobi迭代法的基础上运用加权得到的,它相对于其他两种方法具有更快的收敛速度,但是ω得值不同,它的收敛速度也会不同,所以这个方法需要求出一个收敛速度最快的ω的值。

参考文献

[1]黄云清等.2009.数值计算方法.:科学.

[2]何道坤等.1985.实用线性规划及计算机程序.:清华大学.

[3]威尔金森J H.2001.代数特征值问题.石钟慈,邓键译.:科学.

附录

w = 1.2或1.5时:

clear

clc

a=[10 -1 0;-1 10 -2;0 -2 10];

b=[9;7;8];

x1(1)=0.5;x2(1)=0.5;x3(1)=0.5;

eps=1e-3;

w=1.2(1.5);

for k=1:20

x1(k+1)=w*(b(1)-a(1,2)*x2(k)-a(1,3)*x3(k))/a(1,1)+(1-w)*x1(k);

x2(k+1)=w*(b(2)-a(2,1)*x1(k+1)-a(2,3)*x3(k))/a(2,2)+(1-w)*x2(k); x3(k+1)=w*(b(3)-a(3,1)*x1(k+1)-a(3,2)*x2(k+1))/a(3,3)+(1-w)*x3(k); if norm([(x1(k)'-1),(x2(k)'-1),(x3(k)'-1)])

break

end

end

[x1',x2',x3']

w需要循环时:

clear

clc

a=[10 -1 0;-1 10 -2;0 -2 10];

b=[9;7;8];

x1(1)=0.5;x2(1)=0.5;x3(1)=0.5;

eps=1e-3;

h=0.1;

for j=1:20

w(j)=0+h*j;

for k=1:1000

x1(k+1)=w(j)*(b(1)-a(1,2)*x2(k)-a(1,3)*x3(k))/a(1,1)+(1-w(j))*x1(k); x2(k+1)=w(j)*(b(2)-a(2,1)*x1(k+1)-a(2,3)*x3(k))/a(2,2)+(1-w(j))*x2(k); x3(k+1)=w(j)*(b(3)-a(3,1)*x1(k+1)-a(3,2)*x2(k+1))/a(3,3)+(1-w(j))*x3(k);

%[x1',x2',x3']

if norm([(x1(k)'-1),(x2(k)'-1),(x3(k)'-1)],inf)

k

break

end

end

[x1',x2',x3']

end

数值分析课程设计

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

数值分析课程设计 课程设计要求 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 ,然后利用标准差:

相关文档
最新文档