数值分析学号姓名2016_2上机实习报告
数值分析上机实习报告
指导教师:姓名:学号:专业:联系电话:上海交通大学目录序言 (3)实验课题(一) 雅可比迭代法和高斯-塞得尔迭代法的收敛性和收敛速度 (4)数值分析 (6)实验课题(二) 松弛因子对SOR法收敛速度的影响 (6)数值分析 (12)总结 (13)附录(程序清单) (14)1.雅可比迭代法和高斯-塞得尔迭代法的收敛性和收敛速度 (14)雅可比迭代法: (14)高斯-塞得尔迭代法: (16)2.松弛因子对SOR法收敛速度的影响 (18)松弛法(SOR) (18)序言随着科学技术的发展,提出了大量复杂的数值计算问题,在实际解决这些计算问题的长期过程中,形成了计算方法这门学科,专门研究各种数学问题的数值解法(近似解法),包括方法的构造和求解过程的误差分析,是一门内容丰富,有自身理论体系的实用性很强的学科。
解决工程问题,往往需要处理很多数学模型,这就要花费大量的人力和时间,但是还有不少数学模型无法用解析法得到解。
使用数值方法并利用计算机,就可以克服这些困难。
事实上,科学计算已经与理论分析、科学实验成为平行的研究和解决科技问题的科学手段,经常被科技工作者所采用。
作为科学计算的核心内容——数值分析(数值计算方法),已逐渐成为广大科技工作者必备的基本知识并越来越被人重视。
由于数值方法是解数值问题的系列计算公式,所以数值方法是否有效,不但与方法本身的好坏有关,而且与数值问题本身的好坏也有关,因此,研究数值方法时,不但需要研究数值方法的好坏,即数值稳定性问题,而且还需要研究数值问题本身的好坏,即数值问题的性态,以及它们的判别问题。
数值计算的绝大部分方法都具有近似性,而其理论又具有严密的科学性,方法的近似值正是建立在理论的严密性基础上,根据计算方法的这一特点。
因此不仅要求掌握和使用算法,还要重视必要的误差分析,以保证计算结果的可靠性。
数值计算还具有应用性强的特点,计算方法的绝大部分方法如求微分方程近似解,求积分近似值,求解超越方程,解线性方程组等都具有较强的实用性,而插值法,最小二乘法,样条函数等也都是工程技术领域中常用的,有实际应用价值的方法。
西南交通大学-数值分析--报告
数值分析课程上机作业计算报告班级:学号:姓名:专业:大地测量学及测绘工程指导老师:联系电话:西南交通大学-数值分析--报告序言通过数值分析的理论知识的学习,此次实验将我们学过的理论知识运用于实践之中。
本次实验,我选用的计算机语言为MATLAB,其主要有一下几个特点。
1.编程效率高MATLAB是一种面向科学与工程计算的高级语言,允许使用数学形式的语言编写程序,且比BASIC、FORTRAN和C等语言更加接近我们书写计算公式的思维方式,用MATLAB编写程序犹如在演算纸上排列出公式与求解问题。
因此,MATLAB语言也可通俗地称为演算纸式科学算法语言。
由于它编写简单,所以编程效率高,易学易懂2. 用户使用方便MATLAB语言与其他语言相比,较好的解决了上述问题,把编辑、编译、链接和执行融为一体。
它能在同一画面上进行灵活操作,快速排除输入程序中的书写错误、语法错误以至语义错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。
3. 方便的绘图功能MATLAB的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标、半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。
另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。
这种为科学研究着想的设计是通用的编程语言所不能及的。
目录1.实验一 (1)1.1题目 (1)1.2计算思路 (1)1.3计算结果 (1)1.4总结 (6)2.第二题 (7)2.1题目 (7)2.2 松弛思想分析 (7)2.3问题的求解 (7)2.4总结 (10)3.第三题 (11)3.1题目 (11)3.2 Runge-Kutta法的基本思想 (11)3.3 问题的求解 (12)3.4问题的总结 (14)总结 (15)附件 (16)实验一程序设计 (16)实验二程序设计 (16)实验三程序设计 (17)实验一:插值问题1.1题目已知:a=-5,b=5, 以下是某函数f(x)的一些点(x k,y k), 其中x k=a+0.1(k-1) ,k=1,..,101;(数据略)。
数值分析上机实验报告
数值分析上机实验报告摘要:本报告是对数值分析课程上机实验的总结和分析,涵盖了多种算法和数据处理方法,通过对实验结果的分析,探究了数值计算的一般过程和计算的稳定性。
1. 引言数值计算是数学的一个重要分支,广泛应用于物理、金融、工程等领域。
本次实验是对数值分析课程知识的实际应用,通过上机实现算法,探究数值计算的可靠性和误差分析。
2. 实验方法本次实验中,我们实现了多种算法,包括:(1)牛顿迭代法求方程的根;(2)高斯消元法求线性方程组的解;(3)最小二乘法拟合数据点;(4)拉格朗日插值法估计函数值;(5)梯形公式和辛普森公式求积分近似值。
对于每个算法,我们都进行了多组数值和不同参数的实验,并记录了相关数据和误差。
在实验过程中,我们着重考虑了算法的可靠性和计算的稳定性。
3. 实验结果与分析在实验中,我们得到了大量的实验数据和误差分析,通过对数据的展示和分析,我们得到了以下结论:(1)牛顿迭代法求解非线性方程的根能够对算法的初始值和迭代次数进行适当的调整,从而达到更高的稳定性和可靠性。
(2)高斯消元法求解线性方程组的解需要注意到矩阵的奇异性和精度的影响,从而保证计算的准确性。
(3)最小二乘法拟合数据点需要考虑到拟合的函数形式和数据的误差范围,采取适当的数据预处理和拟合函数的选择能够提高计算的准确性。
(4)拉格朗日插值法估计函数值需要考虑到插值点的选择和插值函数的阶数,防止出现龙格现象和插值误差过大的情况。
(5)梯形公式和辛普森公式求积分近似值需要考虑到采样密度和拟合函数的选择,从而保证计算的稳定性和收敛速度。
4. 结论通过本次实验的分析和总结,我们得到了深入的认识和理解数值计算的一般过程和算法的稳定性和可靠性,对于以后的数值计算应用也提供了一定的指导和参考。
数值分析2016上机实验报告
序言数值分析是计算数学的范畴,有时也称它为计算数学、计算方法、数值方法等,其研究对象是各种数学问题的数值方法的设计、分析及其有关的数学理论和具体实现的一门学科,它是一个数学分支。
是科学与工程计算(科学计算)的理论支持。
许多科学与工程实际问题(核武器的研制、导弹的发射、气象预报)的解决都离不开科学计算。
目前,试验、理论、计算已成为人类进行科学活动的三大方法。
数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现。
现在面向数值分析问题的计算机软件有:C,C++,MATLAB,Python,Fortran等。
MATLAB是matrix laboratory的英文缩写,它是由美国Mathwork公司于1967年推出的适合用于不同规格计算机和各种操纵系统的数学软件包,现已发展成为一种功能强大的计算机语言,特别适合用于科学和工程计算。
目前,MATLAB应用非常广泛,主要用于算法开发、数据可视化、数值计算和数据分析等,除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
本实验报告使用了MATLAB软件。
对不动点迭代,函数逼近(lagrange插值,三次样条插值,最小二乘拟合),追赶法求解矩阵的解,4RungeKutta方法求解,欧拉法及改进欧拉法等算法做了简单的计算模拟实践。
并比较了各种算法的优劣性,得到了对数值分析这们学科良好的理解,对以后的科研数值分析能力有了极大的提高。
目录序言 (1)问题一非线性方程数值解法 (3)1.1 计算题目 (3)1.2 迭代法分析 (3)1.3计算结果分析及结论 (4)问题二追赶法解三对角矩阵 (5)2.1 问题 (5)2.2 问题分析(追赶法) (6)2.3 计算结果 (7)问题三函数拟合 (7)3.1 计算题目 (7)3.2 题目分析 (7)3.3 结果比较 (12)问题四欧拉法解微分方程 (14)4.1 计算题目 (14)4.2.1 方程的准确解 (14)4.2.2 Euler方法求解 (14)4.2.3改进欧拉方法 (16)问题五四阶龙格-库塔计算常微分方程初值问题 (17)5.1 计算题目 (17)5.2 四阶龙格-库塔方法分析 (18)5.3 程序流程图 (18)5.4 标准四阶Runge-Kutta法Matlab实现 (19)5.5 计算结果及比较 (20)问题六舍入误差观察 (22)6.1 计算题目 (22)6.2 计算结果 (22)6.3 结论 (23)7 总结 (24)附录问题一 非线性方程数值解法1.1 计算题目编写不动点迭代法求根程序:把方程010423=-+x x 写成至少四种x=g (x )的形式,取初值5.1x 0=,进行不动点迭代求根,并比较收敛性及收敛速度。
优质文档精选——数值分析上机实验报告
数值分析上机实验报告《数值分析》上机实验报告1.用Newton 法求方程 X 7-X 4+14=0在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001)。
1.1 理论依据:设函数在有限区间[a ,b]上二阶导数存在,且满足条件{}αϕ上的惟一解在区间平方收敛于方程所生的迭代序列迭代过程由则对任意初始近似值达到的一个中使是其中上不变号在区间],[0)(3,2,1,0,)(')()(],,[x |))(),((|,|,)(||)(|.4;0)(.3],[)(.20)()(.110......b a x f x k x f x f x x x Newton b a b f a f mir b a c x f ab c f x f b a x f b f x f k k k k k k ==-==∈≤-≠>+令)9.1()9.1(0)8(4233642)(0)16(71127)(0)9.1(,0)1.0(,1428)(3225333647>⋅''<-=-=''<-=-='<>+-=f f x x x x x f x x x x x f f f x x x f故以1.9为起点⎪⎩⎪⎨⎧='-=+9.1)()(01x x f x f x x k k k k 如此一次一次的迭代,逼近x 的真实根。
当前后两个的差<=ε时,就认为求出了近似的根。
本程序用Newton 法求代数方程(最高次数不大于10)在(a,b )区间的根。
1.2 C 语言程序原代码:#include<stdio.h>#include<math.h> main(){double x2,f,f1;double x1=1.9; //取初值为 1.9 do{x2=x1;f=pow(x2,7)-28*pow(x2,4)+14; f1=7*pow(x2,6)-4*28*pow(x2,3); x1=x2-f/f1;}while(fabs(x1-x2)>=0.00001||x1<0.1); //限制循环次数 printf("计算结果:x=%f\n",x1);}1.3 运行结果:1.4 MATLAB 上机程序function y=Newton(f,df,x0,eps,M) d=0;for k=1:Mif feval(df,x0)==0d=2;breakelsex1=x0-feval(f,x0)/feval(df,x0);ende=abs(x1-x0);x0=x1;if e<=eps&&abs(feval(f,x1))<=epsd=1;breakendendif d==1y=x1;elseif d==0y='迭代M次失败';elsey= '奇异'endfunction y=df(x)y=7*x^6-28*4*x^3;Endfunction y=f(x)y=x^7-28*x^4+14;End>> x0=1.9;>> eps=0.00001;>> M=100;>> x=Newton('f','df',x0,eps,M);>> vpa(x,7)1.5 问题讨论:1.使用此方法求方解,用误差来控制循环迭代次数,可以在误差允许的范围内得到比较理想的计算结果。
数值分析实验报告心得(3篇)
第1篇在数值分析这门课程的学习过程中,我深刻体会到了理论知识与实践操作相结合的重要性。
通过一系列的实验,我对数值分析的基本概念、方法和应用有了更加深入的理解。
以下是我对数值分析实验的心得体会。
一、实验目的与意义1. 巩固数值分析理论知识:通过实验,将课堂上学到的理论知识应用到实际问题中,加深对数值分析概念和方法的理解。
2. 培养实际操作能力:实验过程中,我学会了使用Matlab等软件进行数值计算,提高了编程能力。
3. 增强解决实际问题的能力:实验项目涉及多个领域,通过解决实际问题,提高了我的问题分析和解决能力。
4. 培养团队协作精神:实验过程中,我与同学们分工合作,共同完成任务,培养了团队协作精神。
二、实验内容及方法1. 实验一:拉格朗日插值法与牛顿插值法(1)实验目的:掌握拉格朗日插值法和牛顿插值法的原理,能够运用这两种方法进行函数逼近。
(2)实验方法:首先,我们选择一组数据点,然后利用拉格朗日插值法和牛顿插值法构造插值多项式。
最后,我们将插值多项式与原始函数进行比较,分析误差。
2. 实验二:方程求根(1)实验目的:掌握二分法、Newton法、不动点迭代法、弦截法等方程求根方法,能够运用这些方法求解非线性方程的根。
(2)实验方法:首先,我们选择一个非线性方程,然后运用二分法、Newton法、不动点迭代法、弦截法等方法求解方程的根。
最后,比较不同方法的收敛速度和精度。
3. 实验三:线性方程组求解(1)实验目的:掌握高斯消元法、矩阵分解法等线性方程组求解方法,能够运用这些方法求解线性方程组。
(2)实验方法:首先,我们构造一个线性方程组,然后运用高斯消元法、矩阵分解法等方法求解方程组。
最后,比较不同方法的计算量和精度。
4. 实验四:多元统计分析(1)实验目的:掌握多元统计分析的基本方法,能够运用这些方法对数据进行分析。
(2)实验方法:首先,我们收集一组多元数据,然后运用主成分分析、因子分析等方法对数据进行降维。
数值分析上机实践报告
数值分析上机实践报告一、实验目的本次实验主要目的是通过上机操作,加深对数值分析算法的理解,并熟悉使用Matlab进行数值计算的基本方法。
在具体实验中,我们将实现三种常见的数值分析算法:二分法、牛顿法和追赶法,分别应用于解决非线性方程、方程组和线性方程组的求解问题。
二、实验原理与方法1.二分法二分法是一种常见的求解非线性方程的数值方法。
根据函数在给定区间端点处的函数值的符号,不断缩小区间的长度,直到满足精度要求。
2.牛顿法牛顿法是求解方程的一种迭代方法,通过构造方程的泰勒展开式进行近似求解。
根据泰勒展式可以得到迭代公式,利用迭代公式不断逼近方程的解。
3.追赶法追赶法是用于求解三对角线性方程组的一种直接求解方法。
通过构造追赶矩阵,采用较为简便的向前追赶和向后追赶的方法进行计算。
本次实验中,我们选择了一组非线性方程、方程组和线性方程组进行求解。
具体的实验步骤如下:1.调用二分法函数,通过输入给定区间的上下界、截止误差和最大迭代次数,得到非线性方程的数值解。
2.调用牛顿法函数,通过输入初始迭代点、截止误差和最大迭代次数,得到方程组的数值解。
3.调用追赶法函数,通过输入追赶矩阵的三个向量与结果向量,得到线性方程组的数值解。
三、实验结果与分析在进行实验过程中,我们分别给定了不同的参数,通过调用相应的函数得到了实验结果。
下面是实验结果的汇总及分析。
1.非线性方程的数值解我们通过使用二分法对非线性方程进行求解,给定了区间的上下界、截止误差和最大迭代次数。
实验结果显示,根据给定的输入,我们得到了方程的数值解。
通过与解析解进行比较,可以发现二分法得到的数值解与解析解的误差在可接受范围内,说明二分法是有效的。
2.方程组的数值解我们通过使用牛顿法对方程组进行求解,给定了初始迭代点、截止误差和最大迭代次数。
实验结果显示,根据给定的输入,我们得到了方程组的数值解。
与解析解进行比较,同样可以发现牛顿法得到的数值解与解析解的误差在可接受范围内,说明牛顿法是有效的。
数值分析上机实践报告
数值分析上机实践报告一、实验目的本实验的目的是通过编写数值分析程序,掌握解决数学问题的数值计算方法,并通过实际应用来检验其有效性和准确性。
具体包括以下几个方面的内容:1.掌握二分法和牛顿迭代法的基本原理和实现方法;2.熟悉利用矩阵的LU分解和追赶法解线性方程组的过程;3.通过具体的实例应用,比较不同方法的计算效果和精度。
二、实验内容本实验分为三个部分,每个部分包括一个具体的数学问题和相应的数值计算方法。
1.问题一:求方程f(x)=x^3-5x^2+10x-80=0的近似解。
在问题一中,我们通过二分法和牛顿迭代法来求解方程的近似解,并比较两种方法的精度和收敛速度。
2.问题二:用LU分解解线性方程组。
问题二中,我们通过矩阵的LU分解方法解线性方程组Ax=b,然后和直接用追赶法解线性方程组进行对比,验证LU分解的有效性和准确性。
三、实验结果及分析1.问题一的结果分析:通过二分法和牛顿迭代法求解方程f(x)=x^3-5x^2+10x-80=0的近似解,得到的结果如下:从结果来看,两种方法得到的近似解均与真实解x≈5非常接近。
但是,通过比较可以发现,牛顿迭代法的计算速度比二分法更快,迭代的次数更少。
因此,在需要高精度近似解的情况下,牛顿迭代法是一个更好的选择。
2.问题二的结果分析:通过LU分解和追赶法解线性方程组Ax=b,得到的结果如下:-用LU分解解线性方程组得到的结果为x1≈1.0,x2≈2.0,x3≈3.0;-用追赶法解线性方程组得到的结果为x1≈1.0,x2≈2.0,x3≈3.0。
从结果来看,两种方法得到的结果完全一致,而且与真实解非常接近。
这表明LU分解方法和追赶法均可以有效地解决线性方程组问题。
但是,在实际应用中,当方程组规模较大时,LU分解方法的计算复杂度较高,因此追赶法更加适用。
四、实验总结通过本实验,我掌握了二分法和牛顿迭代法以及LU分解和追赶法的基本原理和实现方法。
通过具体的数学问题实例应用,我比较了不同方法的计算效果和精度,得出以下结论:1.在求解函数的近似解时,牛顿迭代法相对于二分法具有更快的收敛速度和更高的计算精度;2.在解决线性方程组问题时,LU分解方法在计算准确性方面与追赶法相当,但在处理较大规模的问题时,计算复杂度较高,追赶法更适合。
数值分析实习报告总结
一、实习背景数值分析是数学的一个重要分支,它研究如何用数值方法求解数学问题。
随着计算机技术的飞速发展,数值分析在各个领域得到了广泛的应用。
为了提高自己的实践能力,我选择了数值分析作为实习课题,希望通过这次实习,能够掌握数值分析的基本方法,并将其应用于实际问题中。
二、实习过程1. 实习初期在实习初期,我首先了解了数值分析的基本概念、理论和方法。
通过阅读相关教材和文献,我对数值分析有了初步的认识。
接着,我学习了数值分析的基本方法,如泰勒展开、牛顿法、高斯消元法等。
2. 实习中期在实习中期,我选择了几个实际问题进行数值计算。
首先,我使用泰勒展开法求解一个简单的微分方程。
通过编写程序,我得到了微分方程的近似解。
然后,我运用牛顿法求解一个非线性方程组。
在实际计算过程中,我遇到了一些问题,如收敛性、迭代次数过多等。
通过查阅资料和请教导师,我找到了解决方法,成功求解了方程组。
3. 实习后期在实习后期,我进一步学习了数值分析的高级方法,如复化梯形公式、复化Simpson公式、自适应梯形法等。
这些方法在解决实际问题中具有更高的精度和效率。
我选择了一个具体的工程问题,运用复化梯形公式求解定积分。
在计算过程中,我遇到了区间细分、精度控制等问题。
通过不断尝试和调整,我得到了较为精确的积分值。
三、实习收获与体会1. 理论与实践相结合通过这次实习,我深刻体会到理论与实践相结合的重要性。
在实习过程中,我不仅学习了数值分析的理论知识,还将其应用于实际问题中。
这使我更加深刻地理解了数值分析的基本方法,提高了自己的实践能力。
2. 严谨的学术态度在实习过程中,我养成了严谨的学术态度。
在编写程序、进行数值计算时,我注重细节,力求精确。
这使我更加注重学术规范,提高了自己的学术素养。
3. 团队合作精神实习过程中,我与其他同学进行了交流与合作。
在解决实际问题时,我们互相学习、互相帮助,共同完成了实习任务。
这使我更加懂得团队合作的重要性,提高了自己的团队协作能力。
数值分析上机实习报告
数值分析上机实习报告随着现代科学技术的迅猛发展,计算机科学的应用日益广泛,数值分析作为计算机科学中重要的分支之一,其在工程、物理、生物学等领域的应用也越来越受到重视。
本学期,我们在数值分析课程的学习中,进行了多次上机实习,通过实习,我们对数值分析的基本方法和算法有了更深入的理解和掌握。
在实习过程中,我们使用了MATLAB软件作为主要的工具,MATLAB是一种功能强大的数学软件,它提供了丰富的数值计算函数和图形显示功能,使我们能够更加方便地进行数值计算和分析。
第一次实习是线性插值和函数逼近。
我们学习了利用已知数据点构造插值函数的方法,并通过MATLAB软件实现了线性插值和拉格朗日插值。
通过实习,我们了解了插值的基本原理,掌握了插值的计算方法,并能够利用MATLAB软件进行插值计算。
第二次实习是解线性方程组。
我们学习了高斯消元法、列主元高斯消元法和克莱姆法则等解线性方程组的方法,并通过MATLAB软件实现了这些算法。
在实习过程中,我们通过实际例子了解了这些算法的应用,掌握了它们的计算步骤,并能够利用MATLAB软件准确地求解线性方程组。
第三次实习是求解非线性方程和方程组。
我们学习了二分法、牛顿法、弦截法和迭代法等求解非线性方程的方法,以及雅可比法和高斯-赛德尔法等求解非线性方程组的方法。
通过实习,我们了解了非线性方程和方程组的求解方法,掌握了它们的计算步骤,并能够利用MATLAB软件求解实际问题。
通过这次上机实习,我们不仅深入学习了数值分析的基本方法和算法,而且锻炼了利用MATLAB软件进行数值计算和分析的能力。
同时,我们也认识到了数值分析在实际问题中的应用价值,增强了解决实际问题的能力。
总之,这次上机实习使我们受益匪浅,对我们学习数值分析课程起到了很好的辅助作用。
数值分析上机实习报告(西南交通大学)
数值分析上机实习报告姓名:学号:专业:大地测量学与测量工程电话:序言1.所用程序语言:本次数值分析上机实习采用Visual c#作为程序设计语言,利用Visual c#可视化的编程实现方法,采用对话框形式进行设计计算程序界面,并将结果用表格或文档的格式给出。
2.程序概述:(1)第一题是采用牛顿法和steffensen法分别对两个题进行分析,编好程序后分别带入不同的初值,观察与真实值的差别,分析出初值对结果的影响,分析两种方法的收敛速度。
(2)第二题使用Visual c#程序设计语言完成了“松弛因子对SOR法收敛速度的影响”,通过在可视化界面下输入不同的n和w值,点击按钮直接可看到迭代次数及计算结果,观察了不同的松弛因子w对收敛速度的影响。
目录一.用牛顿法,及牛顿-Steffensen法............ 错误!未定义书签。
1. 计算结果.................................... 错误!未定义书签。
2. 结果分析 (5)3. 程序清单 (5)二.松弛因子对SOR法收敛速度的影响 (8)1. 迭代次数计算结果 (8)2. 计算X()结果 (10)3. 对比分析 (12)4. 程序清单: (12)三.实习总结 (14)实验课题(一)用牛顿法,及牛顿-Steffensen法题目:分别用牛顿法,及牛顿-Steffensen法(1)求ln(x+sin x)=0的根。
初值x0分别取0.1, 1,1.5, 2, 4进行计算。
(2)求sin x=0的根。
初值x0分别取1,1.4,1.6, 1.8,3进行计算。
分析其中遇到的现象与问题。
1、计算结果由于比较多每种方法中只选取了其中两个的图片例在下面:2、结果分析通过对以上的牛顿法和steffensen法的练习,我发现在初值的选取很重要,好的初值选出后可以很快的达到预定的精度,要是选的不好就很慢,而且在有的时候得出的还是非数字,所以初始值的选取很重要。
(完整版)MATLAB数值分析实例
2016-2017 第一学期数值分析上机实验报告姓名: xxx学号: 20162…….学院:土木工程学院导师:………..联系电话:…………..指导老师:………..目录第一题 (1)1.1题目要求 (1)1.2程序编写 (1)1.3计算结果及分析 (2)第二题 (4)2.1题目要求 (4)2.2程序编写 (4)2.3计算结果及分析 (6)第三题 (7)3.1题目要求 (7)3.2程序编写 (7)3.3计算结果及分析 (8)第四题 (9)4.1题目要求 (9)4.2程序编写 (9)4.3计算结果及分析 (10)第五题 (11)5.1题目要求 (11)5.2程序编写 (12)5.3计算结果及分析 (13)第六题 (17)6.1题目要求 (17)6.2程序编写 (17)6.3计算结果及分析 (18)6.4程序改进 (18)第一题选做的是第(1)小问。
1.1题目要求编出不动点迭代法求根的程序;把??3+4??2-10=0写成至少四种??=g(??)的形式,取初值??0=1.5,进行不动点迭代求根,并比较收敛性及收敛速度。
1.2程序编写1.3计算结果及分析①第一种迭代公式:??=??3+4??2+??-10;matlab计算结果如下:(以下为命令行窗口的内容)2;matlab计算结果如下:②第二种迭代公式:??=√(10-??3)/4(以下为命令窗口内容)2;matlab计算结果如下:③第三种迭代公式:??=√10(??+4)?(以下为命令窗口内容)④第四种迭代公式:??=10(??2+4??)?;matlab计算结果如下:(以下为命令窗口内容)上述4种迭代公式,1、4两种由于在x真实值附近|g`(x)|>1,不满足迭代局部收敛条件,所以迭代序列不收敛。
对于2、3两种式子,由于在x真实值附近|g`(x)|<=L<1,满足迭代局部收敛条件,所以迭代序列收敛。
对于2、3两迭代公式,由于L3<L2,所以第3个迭代公式比第2个迭代公式收敛更快。
数值分析实习报告
数值分析实习报告姓名:***学号:***班级:***1.题目取h=0.1,利用Euler公式求解dy/dx=y-2*x/y (0<=x<=1)y(0)=12.思路利用左矩形公式得到的公式yn+1=yn+hf(xn,yn)进行迭代,在进行迭代的过程使用for循环,让n从1取到10,每迭代一次输出一个x与y,同时x加0.1再进行下一次迭代,一直到循环结束。
3.程序clear; y=1, x=0, %初始化for n=1:10y=1.1*y-0.2*x/y, x=x+0.1,end4.运行结果y =1 x =0y =1.1000 x =0.1000y =1.1918 x =0.2000y =1.2774 x =0.3000y =1.3582 x =0.4000y =1.4351 x = 0.5000y =1.5090 x = 0.6000y =1.5803 x = 0.7000y =1.6498 x = 0.8000y =1.7178 x =0.9000y =1.7848 x =1.00001.题目取h=0.1,利用Euler公式求解dy/dx=y-2*x/y (0<=x<=1)y(0)=12.思路利用右矩形公式得到的公式yn+1=yn+hf(xn+1,yn+1)进行迭代,在进行迭代的过程使用for 循环,让n从1取到10,每迭代一次输出一个x与y,同时x加0.1再进行下一次迭代,一直到循环结束。
3.程序clear; y0=1, x0=0, %初始化for n=1:10yp=y0+0.1*(y0-2*x0/y0);x=x0+0.1;x0=xyp=y0+0.1*(yp-2*x/yp)y0=ypend4.运行结果y =1 x =0y =1.0918 x =0.1000y =1.1763 x =0.2000y =1.2546 x =0.3000y =1.3278 x =0.4000y =1.3964 x =0.5000y =1.4609 x =0.6000y =1.5216 x =0.7000y =1.5786 x =0.8000y =1.6321 x =0.9000y =1.6819 x =1.00001.题目取h=0.1,利用梯形法求解dy/dx=y-2*x/y (0<=x<=1)y(0)=12.思路利用右矩形公式得到的公式yn+1=yn+hf(xn+1,yn+1)进行迭代,在进行迭代的过程使用for 循环,让n从1取到10,每迭代一次输出一个x与y,同时x加0.1再进行下一次迭代,一直到循环结束。
《数值分析》上机实验报告
数值分析上机实验报告《数值分析》上机实验报告1.用Newton 法求方程 X 7-X 4+14=0在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001)。
1.1 理论依据:设函数在有限区间[a ,b]上二阶导数存在,且满足条件{}αϕ上的惟一解在区间平方收敛于方程所生的迭代序列迭代过程由则对任意初始近似值达到的一个中使是其中上不变号在区间],[0)(3,2,1,0,)(')()(],,[x |))(),((|,|,)(||)(|.4;0)(.3],[)(.20)()(.110......b a x f x k x f x f x x x Newton b a b f a f mir b a c x f ab c f x f b a x f b f x f k k k k k k ==-==∈≤-≠>+令)9.1()9.1(0)8(4233642)(0)16(71127)(0)9.1(,0)1.0(,1428)(3225333647>⋅''<-=-=''<-=-='<>+-=f f x x x x x f x x x x x f f f x x x f故以1.9为起点⎪⎩⎪⎨⎧='-=+9.1)()(01x x f x f x x k k k k 如此一次一次的迭代,逼近x 的真实根。
当前后两个的差<=ε时,就认为求出了近似的根。
本程序用Newton 法求代数方程(最高次数不大于10)在(a,b )区间的根。
1.2 C语言程序原代码:#include<stdio.h>#include<math.h>main(){double x2,f,f1;double x1=1.9; //取初值为1.9do{x2=x1;f=pow(x2,7)-28*pow(x2,4)+14;f1=7*pow(x2,6)-4*28*pow(x2,3);x1=x2-f/f1;}while(fabs(x1-x2)>=0.00001||x1<0.1); //限制循环次数printf("计算结果:x=%f\n",x1);}1.3 运行结果:1.4 MATLAB上机程序function y=Newton(f,df,x0,eps,M)d=0;for k=1:Mif feval(df,x0)==0d=2;breakelsex1=x0-feval(f,x0)/feval(df,x0);ende=abs(x1-x0);x0=x1;if e<=eps&&abs(feval(f,x1))<=epsd=1;breakendendif d==1y=x1;elseif d==0y='迭代M次失败';elsey= '奇异'endfunction y=df(x)y=7*x^6-28*4*x^3;Endfunction y=f(x)y=x^7-28*x^4+14;End>> x0=1.9;>> eps=0.00001;>> M=100;>> x=Newton('f','df',x0,eps,M);>> vpa(x,7)1.5 问题讨论:1.使用此方法求方解,用误差来控制循环迭代次数,可以在误差允许的范围内得到比较理想的计算结果。
数值分析学习报告
数值分析学习心得报告班级:************姓名:***学号: ***********学习数值分析的心得体会数值分析是一门利用计算机求解数学问题数值解的课程,有很强的理论性和实践性,无意中的一次选择,让我接触了数值分析。
随着科学技术的发展,提出了大量复杂的数值计算问题,在建立电子计算机成为数值计算的主要工具以后,它以数字计算机求解数学问题的理论和方法为研究对象。
有可靠的理论分析,要有数值实验,并对计算的结果进行误差分析。
数值分析的主要内容包括插值法,函数逼近,曲线拟和,数值积分,数值微分,解线性方程组的直接方法,解线性方程组的迭代法,非线性方程求根,常微分方程的数值解法。
作为这学期的选修课,我从内心深处来讲,数值分析真的有点难。
感觉它是在高等数学和线性代数的基础上,又加深了探讨。
虽然这节课很难,我学的不是很好,但我依然对它比较感兴趣。
下面就具体说说我的学习体会,让那些感兴趣的同学有个参考。
学习数值分析,我们首先得知道一个软件——MATLAB。
MATrix LABoratory,即矩阵实验室,是Math work公司推出的一套高效率的数值计算和可视化软件。
它是当今科学界最具影响力、也是最具活力的软件,它起源于矩阵运算,并高速发展成计算机语言。
它的优点是强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面、便捷的与其他程序和语言接口。
根据上网搜集到的资料,你就会发现MATLAB有许多优点:首先,编程简单使用方便。
到目前为止,我已经学过C语言,机器语言,JAVA 语言,这三个语言相比,我感觉C语言还是很简单的一种编程语言。
只要入门就很好掌握,但是想学精一门语言可不是那么容易的。
惭愧的说,到目前为止,我依然处于入门阶段,只会编写小的简单的程序,但是班里依然还是有学习好的。
C语言是简单且容易掌握的,但是,MATLAB的矩阵和向量操作功能是其他语言无法比拟的。
在MATLAB环境下,数组的操作与数的操作一样简单,基本数据单元是不需要指定维数的,不需要说明数据类型的矩阵,而其数学表达式和运算规则与通常的习惯相同。
数值分析实习报告
一、实习背景数值分析是数学的一个重要分支,它主要研究如何利用计算机来求解数学问题。
随着计算机技术的飞速发展,数值分析在各个领域都得到了广泛的应用。
为了更好地了解数值分析在工程、科学和商业领域的应用,提高自己的实际操作能力,我参加了为期一个月的数值分析实习。
二、实习内容1. 学习数值分析基本理论实习期间,我首先系统地学习了数值分析的基本理论,包括插值、数值微分、数值积分、矩阵运算、线性方程组求解、优化方法等。
通过学习,我对数值分析有了更加全面的认识。
2. 实践操作(1)插值法:我学习了Lagrange插值、Newton插值等插值方法,并使用MATLAB进行编程实现。
通过插值,我能够根据已知数据点预测未知点,为工程、科学和商业领域提供数据支持。
(2)数值微分:我学习了有限差分法、辛普森法等数值微分方法,并使用MATLAB进行编程实现。
通过数值微分,我能够求解函数在某一点的导数,为工程、科学和商业领域提供计算支持。
(3)数值积分:我学习了梯形法、辛普森法等数值积分方法,并使用MATLAB进行编程实现。
通过数值积分,我能够求解函数在某一区间上的定积分,为工程、科学和商业领域提供计算支持。
(4)矩阵运算:我学习了矩阵的初等变换、矩阵的逆、矩阵的秩等矩阵运算方法,并使用MATLAB进行编程实现。
通过矩阵运算,我能够求解线性方程组、特征值和特征向量等问题。
(5)线性方程组求解:我学习了高斯消元法、矩阵分解法等线性方程组求解方法,并使用MATLAB进行编程实现。
通过线性方程组求解,我能够求解工程、科学和商业领域中的各种问题。
(6)优化方法:我学习了梯度下降法、牛顿法等优化方法,并使用MATLAB进行编程实现。
通过优化方法,我能够求解各种优化问题,为工程、科学和商业领域提供解决方案。
3. 项目实践在实习期间,我参与了一个实际项目——某公司产品的成本优化。
该项目要求根据产品的各项参数,计算出最优的生产方案,以降低成本。
数值分析实验报告
《数值分析》实验报告学院:计算机科学与软件学院姓名:XXX班级:计算机XX班学号:XXXXXX实验一:舍入误差与数值稳定性实验目的:1、 通过上机编程,复习巩固以前所学程序设计语言;2、 通过上机计算,了解舍入误差所引起的数值不稳定性。
3、 通过上机计算,了解运算次序对计算结果的影响,从而尽量避免大数吃小数的现象。
实验内容:用两种不同的顺序计算644834.11000012≈∑=-n n ,分析其误差的变化。
实验流程图:实验源程序:#include <stdio.h>#include <math.h>void main(){ int i;float s1=0,s2=0,d1,d2;for (i=1;i<=10000;i++)s1=s1+1.0f/(i*i);for (i=10000;i>=1;i--)s2=s2+1.0f/(i*i);d1=(float)(fabs(1.644834-s1));d2=(float)(fabs(1.644834-s2));printf("正向求和结果为%f\n 误差为%f\n\n",s1,d1);printf("反向求和结果为%f\n 误差为%f\n\n",s2,d2);if(d1<d2)printf("正向求和误差小于负向求和误差\n");else if(d1==d2)printf("正向求和误差等于负向求和误差\n"); elseprintf("正向求和误差大于负向求和误差\n");}实验结果:实验分析:第一次做数值实验,又一次使用C语言编程,没有了刚学习C语言的艰难,能够将实验步骤转换成流程图并编写出完整的实验代码,在经过多次调试、改正后得到正确的程序和结果。
这个实验较简单,计算误差时如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法是稳定的,否则称此算法是数值不稳定的,减少运算次数可以减小舍入误差。
数值分析实习报告总结
数值分析实习报告总结首先,我想对我所参加的数值分析实习课程表示由衷的感谢。
这次实习让我对数值分析这门学科有了更深入的理解,并且让我在实际操作中掌握了许多有用的技能和知识。
在这篇实习报告总结中,我将回顾我在实习过程中的学习经历,总结我在实习中学到的主要内容,并分享我的一些感悟。
实习的第一周,我主要学习了数值分析的基本概念和方法。
通过阅读教材和参加课堂讨论,我了解了数值分析的重要性以及在工程、科学和商业领域中的应用。
我学习了插值、线性代数、微分方程等数值方法的原理和实现方式。
此外,我还通过实际编程练习,掌握了使用数值分析方法解决实际问题的基本技能。
在实习的第二周,我深入学习了Lagrange插值和数值线性代数。
我了解到Lagrange插值是一种构造多项式以通过一组给定的点的方法,它在插值和逼近方面有广泛的应用。
通过编写代码实现Lagrange插值算法,我学会了如何利用已知的数据点来预测未知的点。
此外,我还学习了数值线性代数中的矩阵运算、特征值问题和线性方程组的求解方法,这些方法对于解决实际问题非常重要。
在实习的第三周,我学习了数值微积分和数值求解微分方程的方法。
我了解到数值微积分是利用数值方法近似计算积分和导数的过程,它在信号处理和物理模拟等领域有广泛应用。
通过编写代码实现数值积分和数值导数算法,我学会了如何近似计算函数的积分和导数。
此外,我还学习了如何使用数值方法求解常微分方程和偏微分方程,这些方法对于解决工程和科学领域中的问题非常重要。
在实习的过程中,我也遇到了一些困难和挑战。
例如,在实现数值算法时,我常常会遇到编程错误和数值误差的问题。
通过与同学和老师的讨论和交流,我学会了如何调试代码和减小数值误差的方法。
这些经验让我更加熟悉编程和数值分析的方法,并且提高了我的问题解决能力。
通过这次数值分析实习,我不仅学到了许多关于数值分析的知识和技能,还提高了自己的编程能力和问题解决能力。
我相信这些知识和技能将在我未来的学习和工作中发挥重要作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值分析2016上机实习报告要求
1.应提交一份完整的实习报告。
具体要求如下:
(1) 报告要排版,美观漂亮;要标明姓名、学号、专业和联系电话;
(2) 要有目录,指明题目、程序、计算结果,图标和分析等内容所在位置,作
到信息简明而完全;
(3)要有总结,全方位总结机编程计算的心得体会;
(4)尽量使报告清晰明了,一般可将计算结果、图表及对比分析放在前面,程序
清单作为附录放在后面,程序中关键部分要有中文说明或标注,指明该部分的功能和作用。
2.程序需完好保存到期末考试后的一个星期,以便老师索取用于验证、询问或质疑部分内容。
3.认真完成实验内容,可以达到既学习计算方法又提高计算能力的目的,还可以切身体会书本内容之精妙所在,期间可以得到很多乐趣。
4.拷贝或抄袭他人结果是不良行为,将视为不合格。
5.请按任课老师要求的时间和载体(电子或纸质)提交给任课老师。
6.提交电子邮件请务必按述格式命名邮件主题和文档名,以方便统计
学号姓名2016_2上机实习报告
如:2015201597张帅哥数值分析2016-2计算报告
数值分析上机试题
1. 编程计算∑∞11=n cn , 其中c= 4.4942⨯10307, 给出并观察计算结果,若有问题,分析之。
2. 利用牛顿法求方程ln 2x x -=(x-ln x=2)于区间[2,4]的根,考虑不同初值下牛顿法的收敛情况。
3. 给出1251
2+=x y 在xk=0+0.25k 处的值yk, k=0,1,2,3,4. 请给出由节点 xk 确定的三次样
条插值函数S(x), 使其满足条件:S /(0)=0, S /(1)=-0.074, 分析逼近效果如何?
4. 松弛因子对SOR 法收敛速度的影响。
用SOR 法求解方程组Ax =b ,其中
3-2-.2-2-3-B ,41141......14114 要求程序中不存系数矩阵A ,分别对不同的阶数取w=1.1, 1.2, ...,1.9进行迭代,记录近似解x (k)达到||x (k)-x (k-1)||<10-6时所用的迭代次数k ,观察松弛因子对收敛速度的影响,并观察当w ≤0或w ≥2会有什么影响?
5. 用Ru n ge-Kutt a 4阶算法对初值问题y /=-20*y ,y (0)=1按不同步长求解,用于观察稳定区间的
作用,推荐两种步长h=0.1,0.2。
注:此方程的精确解为:y =e -20x。