数值计算方法课程设计 计算连分数

数值计算方法课程设计 计算连分数
数值计算方法课程设计 计算连分数

目录

1:连分数相关知识 (2)

2:课程设计相关 (10)

1:题目: (10)

2:算法设计或算法分析: (11)

3:算法实现步骤: (11)

4:源程序代码:(建立) (12)

5:计算结果(包括相应的图形): (12)

6:结果分析(包括误差分析): (13)

7:心得体会: (13)

参考资料: (13)

1:连分数相关知识

连分数,它不仅历史悠久,而且是一个有力的工具,解决了不少很深入的问题,更难能可贵的,它还和我们日常生活中的历法有密切的关系。它欧几里德计算法(辗转相除法)有貌异实同之妙,这就是「连分数」法。

现在我们先回想一下欧几里德计算法:

设 a,b 为两整数,且 b>a,则

现在,我们把(甲)组里的式子全写为分式,如下所示:

再将乙组中第一式之以第三式之倒数代入,接着以第三式之倒数代入,依次类推,即得

上式之右边即所谓的「连分数」(更精确地说,有穷简单连分数)。我们简写为

现在考虑一般有穷连分数的几个基本关系式。设

为任意一个一般的有穷连分数(也就是说为任意非零之实数),由计算易得

一般地

称为此连分数之第 k 个渐近分数,我们有

公式 1:

证明:利用归纳法

公式 2:。证明:利用归纳法,n=1 时,

p 1q

-p0q1 = (a0a1+1) x 1-a0 x a0=1

公式 3:。证明:利用归纳法,n=2 时,

p 2q

-p0q2=(a2a1a0+a2+a0 x 1-a0 x (a2a1+1)=a2

在实际应用中,我们所遭遇的有穷连分数,就像(丙)式一样,其中的 a0 为整数,a1,a2,…,aN 皆为正整数,此种连分数特称为简单有穷连分数。由以上公式,我们可推论出有关此等简单有穷连分数的几个基本性质。

推论 1:当 k>1 时,,故。

证明:由公式 1,,又

由归纳法得。

推论 2:

证明:由公式 2,两边除以 qkqk-1 即得。

推论 3:

证明由公式 3,两边除以 qkqk-1,即得

当 n=2k 为偶数时,右式为正,故得

当 n=2k+1 为奇数时,右式为负,故得

推论 4:对所有,pn 与 qn 互质。

证明:由公式 1 立可得知。

从以上几个推论,我们知道渐近分数的分母一直增大,而两相邻渐近分数之差则愈来愈小。另外,偶数项部分形成单调严格上升数列而奇数项部分形成单调严格下降数列,在第4节讨论无穷连分数时,这些性质对收敛性非常重要。

Aryabhata 的方法是这样的:我们可假设正整数 a 与 b 互质,而且 a>b,将分

数展成连分数,假设。令与为最后两个渐近

值,则其中因两者俱为最简分数,故pN=a,qN=b,再由公式2,

,即,(为方便计,可取正号),代入方程式 ax+by=c=c(aqN-1-bpN-1),并展开、移项、化简,得

因而解得

古希腊之神殿 Parthenon 结构之美,叹为观止,常谓之「黄金比」或「黄金分割」,其确实意义如下:

假定有一个长方形,截掉一正方形后,所剩之小长方形与原长方形相似(见图一),则从此小长方形依样再截掉一小正方形,所剩之图形仍与原长方形相似,这种程序可无穷尽地做下去,这就叫做「黄金分割」,而具备此种特性之长方形之长宽比称为「黄金比」。

图一

那黄金分割又怎么和连分数扯上关系呢?

让我们先看一下黄金比的计算:

图二

设图二长方形之长边为单位长 1,而短边长为 x,则根据假设

1:x=x:(1-x),

x2+x-1=0

解出(另一根不合),此数即为黄金比,为一无理数,其近似值为 0.618。所以平常也有人说黄金比是 3:5=0.6 的。现在换一个角度来看 x 的求法:方程式 x2+x-1=0 可化为

将此式带入其本身右边的 x 中,便得

继续不断此步骤,则得

这就是无穷连分数的一个例子。我们看一下它的头几个渐近分数:

由此可知利用连分数来求此种二次方程式的无理数是一个非常有价值的办法。一般而言,一个型如

的式子称为无穷连分数,简写成

通常我们只考虑 a0 为整数而 a1,a2,… 为正整数的情形,这又特别叫做简单无穷连分数。每一个实数也都可以用简单无穷连分数表示,其法如下:

设ξ为任意一实数,则

其中a0为整数而(此种表法为唯一)。

若,则

其中a1为整数而(此种表法为唯一)。

这种步骤反复进行,若ξ非有理数,则程序不终止,而得一简单无穷连分数。无穷连分数之渐近分数推论中所有的性质,我们有:

命题:设表无穷连分数之第 n 个渐近分数,则数列

收敛。若其收敛值为ξ,则即为ξ之无穷连分数表示。

证明:由§2. 之推论,已知

而且由推论 2,所以数列(I)有一上界,而数列(II)有

一下界,由单调数列之收敛性,(I)与(II)皆收敛。再由推论 2,(I)与(II)之收敛值是相同的,这就证明了渐近分数数列 {pn/qn} 之收敛性。

命题后半之证明从略。事实上,渐近分数是所有分母不超过 qn 的分数中最接近者,也就是说它们是ξ的最佳渐近分数。(参考《数论导引》pp. 270-272)。我们也明白地看出所有偶数次项皆比收敛值小,而奇数次项皆比收敛值大。

2:课程设计相关

1:题目:

28. 计算连分数 1

02

123(/(/)

n n a f b a b b a a b =+

+

++

的值,011,,,,,,,,n n n b b b a a f 读入并输出的值

2:算法设计或算法分析:

3:算法实现步骤:

输入数组A和B;

判断数组A和B是否符合要求,否则退出并提示;计算数组B的长度,长度为n;

for i=n:-1:2

y=b(i-1)+a(i-1)/b(i);%

b(i-1)=y;

end

输出y;

4:源程序代码:(建立)

function y=fraction(a,b)

if(length(b)~=length(a)+1)

disp('数组A与数组B维数有错!');

return;

end

n=length(b);

for i=n:-1:2

y=b(i-1)+a(i-1)/b(i);% 注意数组A的维数 b(i-1)=y;

end

5:计算结果(包括相应的图形):

>> a,b

a =

1 2

b =

1 2 3

>> r=fraction(a,b)

r =

1.3750

>> a1,b1

a1 =

4 3 2 1

b1 =

5 4 3 2 1

>> r=fraction(a1,b1)

r =

5.8302

6:结果分析(包括误差分析):

因为算法只有一个循环,所以算法的时间复杂度为n。在y=b(i-1)+a(i-1)/b(i)的赋值运算中将分数化为小数,有小数精度的损失;且算术量越大时,误差越大。

7:心得体会:

通过本次数值计算的实验课程设计,我对连分数的历史,运算,应用有了一个通识的了解,它有一些可取的性质:

?一个数的连分数表示是有限的,当且仅当这个数是有理数。

?“简单”有理数的连分数表示是简短的。

?任何有理数的连分数表示是唯一的,如果它没有尾随的 1。(但是 [a0;

a1, ... an, 1] = [a0; a1, ... an + 1]。)

?无理数的连分数表示是唯一的。

?连分数的项将会重复,当且仅当它是一个二次无理数(即整数系数的二次方程的实数解)的连分数表示 [1]。

?数 x 的截断连分数表示很早产生 x 的在特定意义上“最佳可能”的有理数逼近。

参考资料:

《浅谈连分数》科学教育月刊第267期

《百度百科》 https://www.360docs.net/doc/c13591173.html,

数值计算方法课程设计(C语言)

数值计算方法课程设计 姓名 学号 成绩

课程实际报告 实验一:秦九韶算法 题目 用选列主元高斯消去法解线性方程组 ???????=+- =-+-=-+-=--02 02 0 21 34343232121x x x x x x x x x x 算法语言: 利用c 语言的知识编写该算法程序 算法步骤叙述: 秦九昭算法的基思路是v[0]=a[0]*x+a[1] v[i]=v[i-1]*x+a[i+1];利用秦九昭算法计算多项式函数。 程序清单: #include void main() { float a[5],x,sum; int i; printf("presase input the value of x="); scanf("%f",&x); for (i =5;i >=0;i --) { printf("please input the value of a%d=",i); scanf("%f",&a[i]); } sum =a[5];

for(i=5;i>=1;i--) {sum=sum*x+a[i-1]; } printf("f(x)=%f/n",sum); } 输出结果计算:

实验总结: 通过运用C 语言,解决了秦九韶算法手写的复杂。为以后的雪地打下基础。 实验二:用选列主元高斯消去法解线性方程组 题目 用选列主元高斯消去法解线性方程组 ???????=+- =-+-=-+-=--02 0 2 0 21 34343232121x x x x x x x x x x 算法步骤叙述 第一步消元——在增广矩阵(A,b )第一列中找到绝对值最大的元素,将其所在行与第一行交换,再对(A,b )做初等行变换使原方程组的第一列元素除了第一行的全变为0; 第二步消元——在增广矩阵(A,b )中第二列中(从第二行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A,b )做初等行变换使原方程组的第二列元素除了第一和第二行的全变为0; 第三步消元——在增广矩阵(A,b )中第三列中(从第三行开始)找到绝对值最大的元素,将其所在行与第三行交换,再对(A,b )做初等行变换使原方程组的第三列第四行元素为0; 第四,按x4-x3-x2-x1的顺序回代求解出方程组的解,x[n]=b[n]/a[n][n],x[i]=(b[i]-Σa[i][j]x[j])/a[i][i],i=n-1,…,2,1 程序清单: #include #include #define N 4 static double A[N][N] = {-3,-1,0,0,-1,2,-1,0,0,-1,2,-1,0,0,-1,2}; static double B[N]={1,0,0,0};

北师大网络教育 数值分析 期末试卷含答案

注:1、教师命题时题目之间不留空白; 2、考生不得在试题纸上答题,教师只批阅答题册正面部分,若考北师大网络教育——数值分析——期末考试卷与答案 一.填空题(本大题共4小题,每小题4分,共16分) 1.设有节点012,,x x x ,其对应的函数()y f x =的值分别为012,,y y y ,则二次拉格朗日插值基函数0()l x 为 。 2.设()2f x x =,则()f x 关于节点0120,1,3x x x ===的二阶向前差分为 。 3.设110111011A -????=--????-??,233x ?? ??=?? ???? ,则1A = ,1x = 。 4. 1n +个节点的高斯求积公式的代数精确度为 。 二.简答题(本大题共3小题,每小题8分,共24分) 1. 哪种线性方程组可用平方根法求解?为什么说平方根法计算稳定? 2. 什么是不动点迭代法?()x ?满足什么条件才能保证不动点存在和不动点迭代序列收敛于()x ?的不动点? 3. 设n 阶矩阵A 具有n 个特征值且满足123n λλλλ>≥≥≥ ,请简单说明求解矩阵A 的主特征值和特征向量的算法及流程。 三.求一个次数不高于3的多项式()3P x ,满足下列插值条件: i x 1 2 3 i y 2 4 12 i y ' 3 并估计误差。(10分) 四.试用1,2,4n =的牛顿-科特斯求积公式计算定积分1 01 1I dx x =+? 。(10分) 五.用Newton 法求()cos 0f x x x =-=的近似解。(10分) 六.试用Doolittle 分解法求解方程组:

注:1、教师命题时题目之间不留空白; 2、考生不得在试题纸上答题,教师只批阅答题册正面部分,若考 12325610413191963630 x x x -?????? ??????-=?????? ??????----?????? (10分) 七.请写出雅可比迭代法求解线性方程组1231231 23202324 812231530 x x x x x x x x x ++=?? ++=??-+=? 的迭代格式,并 判断其是否收敛?(10分) 八.就初值问题0(0)y y y y λ'=??=?考察欧拉显式格式的收敛性。(10分)

数值计算方法课程设计

重庆邮电大学 数学与应用数学 专业 《数值计算方法》课程设计 姓名: 李金徽 王莹 刘姝楠 班级: 1131001 1131002 1131002 学号: 2010213542 2010213570 2010213571 设计时间: 2012-6-4 指导教师: 朱伟

一、课程设计目的 在科学计算与工程设计中,我们常会遇到求解线性方程组的问题,对于系数矩阵为低阶稠密矩阵的线性方程组,可以用直接法进行消元,而对于系数矩阵为大型稀疏矩阵的情况,直接法就显得比较繁琐,而迭代法比较适用。比较常用的迭代法有Jacobi 迭代与Gauss - seidel 迭代。本文基于两种方法设计算法,并比较他们的优劣。 二、课程设计内容 给出Jacobi 迭代法和Gauss-Seidel 迭代法求解线性方程组的算法思想和MATLAB 程序实现,并对比分析这两种算法的优劣。 三、问题的分析(含涉及的理论知识、算法等) Jacobi 迭代法 方程组迭代法的基本思想和求根的迭代法思想类似,即对于线性 方程组Ax = b( 其中n n n R b R R A ∈?∈,),即方程组 )1(2211222221211 1212111?? ???? ?=+?++??=+?++=+?++n n nn n n n n n n b x a x a x a b x a x a x a b x a x a x a 将系数矩阵A 写为 )2(000000 21122 12122 11U L D a a a a a a a a a A n n n n nn --≡??? ?? ? ? ??---- ??????? ??----??????? ??= 若选取D M =,则U L A M N +=-=,方程组)1(转化为等价方程组 b x U L Dx ++=)(

数值计算方法学习心得

数值计算方法学习心得 ------一个代码的方法是很重要,一个算法的思想也很重要,但 在我看来,更重要的是解决问题的方法,就像爱因斯坦说的内容比 思维本身更重要。 我上去讲的那次其实做了挺充分的准备,程序的运行,pdf文档,算法公式的推导,程序伪代码,不过有一点缺陷的地方,很多细节 没有讲的很清楚吧,下来之后也是更清楚了这个问题。 然后一学期下来,总的来说,看其他同学的分享,我也学习到 许多东西,并非只是代码的方法,更多的是章胜同学的口才,攀忠 的排版,小冯的深入挖掘…都是对我而言比算法更加值得珍惜的东西,又骄傲地回想一下,曾同为一个项目组的我们也更加感到做项 目对自己发展的巨大帮助了。 同时从这些次的实验中我发现以前学到的很多知识都非常有用。 比如说,以前做项目的时候,项目导师一直要求对于要上传的 文件尽量用pdf格式,不管是ppt还是文档,这便算是对产权的一种 保护。 再比如代码分享,最基础的要求便是——其他人拿到你的代码 也能运行出来,其次是代码分享的规范性,像我们可以用轻量级Ubuntu Pastebin,以前做过一小段时间acm,集训队里对于代码的分享都是推荐用这个,像数值计算实验我觉得用这个也差不多了,其 次项目级代码还是推荐github(被微软收购了),它的又是可能更 多在于个人代码平台的搭建,当然像readme文档及必要的一些数据 集放在上面都更方便一些。

然后在实验中,发现debug能力的重要性,对于代码错误点的 正确分析,以及一些与他人交流的“正规”途径,讨论算法可能出 错的地方以及要注意的细节等,比如acm比赛都是以三人为一小组,讨论过后,讲了一遍会发现自己对算法理解更加深刻。 然后学习算法,做项目做算法一般的正常流程是看论文,尽量 看英文文献,一般就是第一手资料,然后根据论文对算法的描述, 就是如同课上的流程一样,对算法进一步理解,然后进行复现,最 后就是尝试自己改进。比如知网查询牛顿法相关论文,会找到大量 可以参考的文献。 最后的最后,想说一下,计算机专业的同学看这个数值分析, 不一定行云流水,但肯定不至于看不懂写不出来,所以我们还是要 提高自己的核心竞争力,就是利用我们的优势,对于这种算法方面 的编程,至少比他们用的更加熟练,至少面对一个问题,我们能思 考出对应问题的最佳算法是哪一个更合适解决问题。 附记: 对课程的一些小建议: 1. debug的能力不容忽视,比如给一个关于代码实现已知错误的代码给同学们,让同学们自己思考一下,然后分享各自的debug方法,一步一步的去修改代码,最后集全班的力量完成代码的debug,这往往更能提升同学们的代码能力。 2. 课堂上的效率其实是有点低的,可能会给学生带来一些负反馈,降低学习热情。 3. 总的来说还是从这门课程中学到许多东西。 数值分析学习心得体会

数值分析学期期末考试试题与答案(A)

期末考试试卷(A 卷) 2007学年第二学期 考试科目: 数值分析 考试时间:120 分钟 学号 姓名 年级专业 一、判断题(每小题2分,共10分) 1. 用计算机求 1000 1000 1 1 n n =∑时,应按照n 从小到大的顺序相加。 ( ) 2. 为了减少误差,进行计算。 ( ) 3. 用数值微分公式中求导数值时,步长越小计算就越精确。 ( ) 4. 采用龙格-库塔法求解常微分方程的初值问题时,公式阶数越高,数值解越精确。( ) 5. 用迭代法解线性方程组时,迭代能否收敛与初始向量的选择、系数矩阵及其演变方式有 关,与常数项无关。 ( ) 二、填空题(每空2分,共36分) 1. 已知数a 的有效数为0.01,则它的绝对误差限为________,相对误差限为_________. 2. 设1010021,5,1301A x -????????=-=-????????-???? 则1A =_____,2x =______,Ax ∞ =_____. 3. 已知5 3 ()245,f x x x x =+-则[1,1,0]f -= ,[3,2,1,1,2,3]f ---= . 4. 为使求积公式 1 1231 ()()(0)33 f x dx A f A f A f -≈- ++? 的代数精度尽量高,应使1A = ,2A = ,3A = ,此时公式具有 次的代数精度。 5. n 阶方阵A 的谱半径()A ρ与它的任意一种范数A 的关系是 . 6. 用迭代法解线性方程组AX B =时,使迭代公式(1) ()(0,1,2,)k k X MX N k +=+=产 生的向量序列{ }() k X 收敛的充分必要条件是 . 7. 使用消元法解线性方程组AX B =时,系数矩阵A 可以分解为下三角矩阵L 和上三角矩

数值计算方法课程报告

课程报告 课程名称______《数值计算》 __ 学生学院_____机电工程学院___ 专业班级_____微电子(1)班____ 学号________ 学生姓名_______________ 指导教师_____ ________ XXXX年XX月XX日

姓 名: 线 学 号 : 订 装专 业:学院: 广东工业大学考试试卷( A ) 课程名称: 数值计算试卷满分100 分考试时间: 2015 年 12 月 26 日(第 17 周星期六) 题号一二三四五六七八九十总分 评卷得分 评卷签名 复核得分 复核签名 “数值计算”考试要求 “数值计算”考试以开卷形式进行。在“数值计算”课程考试日(2015 年12 月 19 日,第 12 周星期五)考试时间,在考试教室领取试题,在 2015 年12 月 26 日(第 17 周星期六)进行答辩。不参加答辩者将取消考试成绩。 “数值计算”考试结果要求独立在计算机上完成,可使用Matlab或 C 程序编程实现。考试结果将以报告书形式提交,内容包括对问题描述、计算程序以及算例、计算结果、分析组成。计算程序要求具有通用性,能够处理异常情况,可以输入问题、算法参数、算例及初始值,在计算过程中显示当前计算状态、计算完成后显示计算结果。上述内容将作为试卷成绩的主要评定依据。特别提醒,不得使用教师在讲课和实验时的范例作为考试结果。报告书具体格式参考毕业设计手册。 以考生学号命名的文件夹存放程序及报告书电子版,以班级为单位刻录在一张光盘中,与打印版报告书一起由班长和学习委员一起上交任课教师。 数值计算课程总成绩将由试卷成绩(70%)、平时成绩(30%)组成。

数值分析课程设计

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

数值分析课程设计 课程设计要求 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];

数值分析期末考试复习题及其答案.doc

数值分析期末考试复习题及其答案 1. 已知325413.0,325413* 2* 1==X X 都有6位有效数字,求绝对误差限。(4分) 解: 由已知可知,n=6 5.01021 ,0,6,10325413.0016*1=?= =-=?=ε绝对误差限n k k X 2分 620* 21021,6,0,10325413.0-?=-=-=?=ε绝对误差限n k k X 2分 2. 已知?????=001A 220 - ???? ?440求21,,A A A ∞ (6分) 解: {},88,4,1max 1==A 1分 {},66,6,1max ==∞A 1分 () A A A T max 2λ= 1分 ?????=001A A T 420 ?? ?? ? -420?????001 220 - ?????440=?????001 080 ???? ?3200 2分 {}3232,8,1max )(max ==A A T λ 1分 24322==A 3. 设3 2 )()(a x x f -= (6分) ① 写出f(x)=0解的Newton 迭代格式 ② 当a 为何值时,)(1k k x x ?=+ (k=0,1……)产生的序列{}k x 收敛于2 解: ①Newton 迭代格式为: x a x x x a x a x x a x x x f x f x x k k k k k k k k k k 665)(665)(6)()(')(2 2 32 1 += +=---=-=+? 3分

②时迭代收敛即当222,112 10)2(',665)('2<<-<-=-=a a x a x ?? 3分 4. 给定线性方程组Ax=b ,其中:? ??=1 3A ??? 22,??????-=13b 用迭代公式)()()()1(k k k Ax b x x -+=+α(k=0,1……)求解Ax=b ,问取什么实数α,可使迭代收 敛 (8分) 解: 所给迭代公式的迭代矩阵为?? ? --? ??--=-=ααααα21231A I B 2分 其特征方程为 0) 21(2)31(=----= -αλα ααλλB I 2分 即,解得αλαλ41,121-=-= 2分 要使其满足题意,须使1)(

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

数值分析实验报告总结

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

如果 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 ,那 外,还规定其必须满足相容性: 所以

MATLAB与数值分析课程总结

MATLAB与数值分析课程总结 姓名:董建伟 学号:2015020904027 一:MATLAB部分 1.处理矩阵-容易 矩阵的创建 (1)直接创建注意 a中括号里可以用空格或者逗号将矩阵元素分开 b矩阵元素可以是任何MATLAB表达式,如实数复数等 c可以调用赋值过的任何变量,变量名不要重复,否则会被覆盖 (2)用MATLAB函数创建矩阵如:a空阵[] b rand/randn——随机矩阵 c eye——单位矩阵 d zeros ——0矩阵 e ones——1矩阵 f magic——产生n阶幻方矩阵等 向量的生成 (1)用冒号生成向量 (2)使用linspace和logspace分别生成线性等分向量和对 数等分向量 矩阵的标识和引用 (1)向量标识 (2)“0 1”逻辑向量或矩阵标识 (3)全下标,单下标,逻辑矩阵方式引用 字符串数组 (1)字符串按行向量进行储存 (2)所有字符串用单引号括起来 (3)直接进行创建 矩阵运算 (1)注意与数组点乘,除与直接乘除的区别,数组为乘方对应元素的幂

(2)左右除时斜杠底部靠近谁谁是分母 (3)其他运算如,inv矩阵求逆,det行列式的值, eig特征值,diag 对角矩阵 2.绘图-轻松 plot-绘制二维曲线 (1)plot(x)绘制以x为纵坐标的二维曲线 plot(x,y) 绘制以x为横坐标,y为纵坐标的二维曲线 x,y为向量或矩阵 (2)plot(x1,y1,x2,y2,。。。。。。)绘制多条曲线,不同字母代替不同颜色:b蓝色,y黄色,r红色,g绿色 (3)hold on后面的pl ot图像叠加在一起 hold off解除hold on命令,plot将先冲去窗口已有图形(4)在hold后面加上figure,可以绘制多幅图形 (5)subplot在同一窗口画多个子图 三维图形的绘制 (1)plot3(x,y,z,’s’) s是指定线型,色彩,数据点形的字 符串 (2)[X,Y]=meshgrid(x,y)生成平面网格点 (3)mesh(x,y,z,c)生成三维网格点,c为颜色矩阵 (4)三维表面处理mesh命令对网格着色,surf对网格片着色 (5)contour绘制二维等高线 (6)axis([x1,xu,y1,yu])定义x,y的显示范围 3.编程-简洁 (1)变量命名时可以由字母,数字,下划线,但是不得包含空格和标点 (2)最常用的数据类型只有双精度型和字符型,其他数据类型只在特殊条件下使用 (3)为得到高效代码,尽量提高代码的向量化程度,避免使用循环结构

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

《数值分析》课程设计实验报告 龙格—库塔法分析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

数值计算方法期末考试题

一、单项选择题(每小题3分,共15分) 1. 3.142和3.141分别作为的近似数具有( )和( )位有效数字. A .4和3 B .3和2 C .3和4 D .4和4 2. 已知求积公式 ,则=( ) A . B . C . D . 3. 通过点 的拉格朗日插值基函数满足( ) A . =0, B . =0, C .=1, D . =1, 4. 设求方程 的根的牛顿法收敛,则它具有( )敛速。 A .超线性 B .平方 C .线性 D .三次 5. 用列主元消元法解线性方程组 作第一次消元后得到的第3个方程( ). A . B . C . D . π()()2 1 121 1()(2)636f x dx f Af f ≈ ++? A 1613122 3()()0011,,,x y x y ()()01,l x l x ()00l x ()110l x =() 00l x ()111 l x =() 00l x ()111 l x =() 00l x ()111 l x =()0 f x =12312312 20 223332 x x x x x x x x ++=?? ++=??--=?232 x x -+=232 1.5 3.5 x x -+=2323 x x -+=

单项选择题答案 1.A 2.D 3.D 4.C 5.B 二、填空题(每小题3分,共15分) 1. 设, 则 , . 2. 一阶均差 3. 已知时,科茨系数 ,那么 4. 因为方程 在区间 上满 足 ,所以 在区间内有根。 5. 取步长,用欧拉法解初值问题 的计算公 式 . 填空题答案 230.5 1.5 x x -=-T X )4,3,2(-==1||||X 2||||X =()01,f x x = 3n =()()() 33301213,88C C C === () 3 3C =()420 x f x x =-+=[]1,2()0 f x =0.1h =()211y y y x y ?'=+?? ?=?

数值分析心得体会

数值分析心得体会 篇一:学习数值分析的经验 数值分析实验的经验、感受、收获、建议班级:计算131 学号:XX014302 姓名:曾欢欢 数值分析实验主要就是学习MATLAB的使用以及对数值分析类容的应用,可以使学生更加理解和记忆数值分析学得类容,也巩固了MATLAB的学习,有利于以后这个软件我们的使用。在做实验中,我们需要具备较好的编程能力、明白MATLAB软件的使用以及掌握数值分析的思想,才能让我们独立自主的完成该作业,如果是上述能力有限的同学,需要借助MATLAB的书以及网络来完成实验。数值分析实验对于我来说还是有一定难度,所以我课下先复习了MATLAB的使用方法以及编写程序的基本类容,借助互联网和同学老师资源完成了数值分析得实验的内容。在实验书写中,我复习了各种知识,所以我认为这门课程是有必要且是有用处的,特别是需要处理大量实验数据的人员,很有必要深入了解学习它,这样在以后的工作学习里面就减少了很多计算问题也提高了实验结果的精确度。 学习数值分析的经验、感受、收获、建议数值分析的内容包括插值与逼近,数值微分与数值积分,非线性方程与线性方程组的数值解法,矩阵的特征值与特征向量计算,常微分方程数值解等。

首先我们必须明白数值分析的用途。通常所学的其他数学类学科都是由公式定理开始,从研究他们的定义,性质再到证明与应用。但实际上,尤其是工程,物理,化学等其它具体的学科。往往我们拿到 手的只是通过实验得到的数据。如果是验证性试验,需要代回到公式 进行分析,验证。但往往更多面对的是研究性或试探性试验,无具体 公式定理可代。那就必须通过插值,拟合等计算方法进行数据处理以得到一个相对可用的一般公式。还有许多计算公式理论上非常复杂,在工程中不实用,所以必须根据实际情况把它转化成多项式近似表 示。学习数值分析,不应盲目记公式,因为公事通常很长且很乏味。其次,应从公式所面临的问题以及用途出发。比如插值方法,就 是就是把实验所得的数据看成是公式的解,由这些解反推出一个近似公式,可以具有局部一般性。再比如说拟合,在插值的基础上考虑实 验误差,通过拟合能将误差尽可能缩小,之后目的也是得到一个具有 一定条件下的一般性的公式。。建议学习本门课程要结合知识与实际,比如在物理实验里面很多

数值计算方法总结计划复习总结提纲.docx

数值计算方法复习提纲 第一章数值计算中的误差分析 1 2.了解误差 ( 绝对误差、相对误差 ) 3.掌握算法及其稳定性,设计算法遵循的原则。 1、误差的来源 模型误差 观测误差 截断误差 舍入误差 2误差与有效数字 绝对误差E(x)=x-x * 绝对误差限x*x x* 相对误差E r (x) ( x x* ) / x ( x x* ) / x* 有效数字 x*0.a1 a2 ....a n10 m 若x x*110m n ,称x*有n位有效数字。 2 有效数字与误差关系 ( 1)m 一定时,有效数字n 越多,绝对误差限越小; ( 2)x*有 n 位有效数字,则相对误差限为E r (x)1 10 (n 1)。 2a1 选择算法应遵循的原则 1、选用数值稳定的算法,控制误差传播; 例 I n 11n x dx e x e I 0 1 1 I n1nI n1 e △ x n n! △x0 2、简化计算步骤,减少运算次数; 3、避免两个相近数相减,和接近零的数作分母;避免

第二章线性方程组的数值解法 1.了解 Gauss 消元法、主元消元法基本思想及算法; 2.掌握矩阵的三角分解,并利用三角分解求解方程组; (Doolittle 分解; Crout分解; Cholesky分解;追赶法) 3.掌握迭代法的基本思想,Jacobi 迭代法与 Gauss-Seidel 4.掌握向量与矩阵的范数及其性质, 迭代法的收敛性及其判定。 本章主要解决线性方程组求解问题,假设n 行 n 列线性方程组有唯一解,如何得到其解? a 11x 1 a 12 x 2... a 1n x n b1 a 21x 1 a 22 x 2... a 2n x n b2 ... a n1x 1 a n 2 x 2... a nn x n b n 两类方法,第一是直接解法,得到其精确解; 第二是迭代解法,得到其近似解。 一、Gauss消去法 1、顺序G auss 消去法 记方程组为: a11(1) x1a12(1) x2... a1(1n) x n b1(1) a21(1) x1a22(1) x2... a2(1n) x n b2(1) ... a n(11) x1a n(12) x2... a nn(1) x n b n(1) 消元过程: 经n-1步消元,化为上三角方程组 a11(1) x1b1(1) a 21(2) x1a22(2 ) x2b2( 2 ) ... a n(1n) x1a n(n2) x2...a nn(n ) x n b n( n ) 第k步 若a kk(k)0 ( k 1)( k) a ik(k )(k )( k 1)( k )a ik(k )( k) a ij a ij a kk(k ) a kj b i b i a kk(k )b k k 1,...n 1 i, j k 1,....,n 回代过程:

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

课 程 设 计 我再也回不到大二了, 大学是那么短暂 设计题目 数值分析 学生姓名 李飞吾 学 号 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.已知 ln(2.0)=0.6931;ln(2.2)=0.7885,ln(2.3)=0 .8329,试用线性插值和抛物插值计算.ln2.1的值并估计误差 2.已知x=0,2,3,5对应的函数值分别为y=1,3,2,5.试求三次多项式的插值 3. 分别求满足习题1和习题2 中插值条件的Newton插值 (1) (2)

3()1(2)(2)(3) 310 N x x x x x x x =+--+--4. 给出函数f(x)的数表如下,求四次Newton 插值多项式,并由此计算f(0.596)的值 解:

5.已知函数y=sinx的数表如下,分别用前插和后插公式计算sin0.57891的值

6.求最小二乘拟合一次、二次和三次多项式,拟合如下数据并画出数据点以及拟合函数的图形。 (a) (b)

7.试分别确定用复化梯形、辛浦生和中矩形 求积公式计算积分2 14dx x +?所需的步长h ,使得精度达到5 10 -。 8.求A 、B 使求积公式 ?-+-++-≈1 1)] 21()21([)]1()1([)(f f B f f A dx x f 的 代数精度尽量高,并求其代数精度;利用 此公式求? =2 1 1dx x I (保留四位小数)。 9.已知 分别用拉格朗日插值法和牛顿插值法求

) (x f 的三次插值多项式)(3 x P ,并求)2(f 的近 似值(保留四位小数)。 10.已知 求)(x f 的二次拟合曲线)(2 x p ,并求)0(f 的近似值。 11.已知x sin 区间[0.4,0.8]的函数表

(整理)数值分析计算方法超级总结

工程硕士《数值分析》总复习题(2011年用) [由教材中的习题、例题和历届考试题选编而成,供教师讲解和学生复习用] 一. 解答下列问题: 1)下列所取近似值有多少位有效数字( 注意根据什么? ): a) 对 e = 2.718281828459045…,取* x = 2.71828 b) 数学家祖冲之取 113355 作为π的近似值. c) 经过四舍五入得出的近似值12345,-0.001, 90.55000, 它们的有效 数字位数分别为 位, 位, 位。 2) 简述下名词: a) 截断误差 (不超过60字) b) 舍入误差 (不超过60字) c) 算法数值稳定性 (不超过60字) 3) 试推导( 按定义或利用近似公式 ): 计算3 x 时的相对误差约等于x 的相对 误差的3倍。 4) 计算球体积3 34r V π= 时,为使其相对误差不超过 0.3% ,求半径r 的相对 误差的允许范围。 5) 计算下式 341 8 )1(3)1(7)1(5)1(22345+-+---+---=x x x x x x P )( 时,为了减少乘除法次数, 通常采用什么算法? 将算式加工成什么形式? 6) 递推公式 ?????=-==- ,2,1,1102 10n y y y n n 如果取 * 041.12y y =≈= ( 三位有效数字 ) 作近似计算, 问计算到 10y 时误差为初始误差的多少倍? 这个计算过程数值稳定吗 ? 二. 插值问题: 1) 设函数 )(x f 在五个互异节点 54321,,,,x x x x x 上对应的函数值为 54321,,,,f f f f f ,根据定理,必存在唯一的次数 (A ) 的插值多项式 )(x P ,满足插值条件 ( B ) . 对此,为了构造Lagrange 插值多项式 )(x L ,由5个节点作 ( C ) 个、次数均为 ( D ) 次的插值基函数

数值计算方法课程设计123

数值计算方法课程设计 学号 班级

实验要求 1.应用自己熟悉的算法语言编写程序,使之尽可能具有通用性。2.上机前充分准备,复习有关算法,写出计算步骤,反复检查,调试程序。(注:在练习本上写,不上交) 3.完成计算后写出实验报告,容包括:所用的算法语言,CPU时间,算法步骤叙述,变量说明,程序清单,输出计算结果,结构分析和小结等。(注:具体题目具体分析,并不是所有的题目的实验报告都包含上述容!) 4.至少需要选择5道必做题目。其余的也可以选择,如果多选,可酌情加分! 5.独立完成,如有雷同,一律判为零分! 6.上机期间不允许做其他任何与课程设计无关的事情,否则被发现一次扣10分,被发现三次判为零分!

上机实习题目 1. 编写九韶算法程序,并用该程序计算多项式623)(3 5+-+=x x x x f 在1.3 1.2, ,1.1=x 的值。 public class Qinjiushao { public double result; public double x=-2;//定义一个未知数x public double[] b; public double[] c; public int i; public String abc; public void calculate(){ // abc="x^5+3*x^3-2*x+6";多项式,可以截取字符串获取系数 double[] a={2,0,-3,3,-4};//多项式的系数 double[] b=new double[a.length]; double[] c=new double[b.length]; for(i=0;i

相关文档
最新文档