当前位置:文档之家› 力学中的计算方法(数值积分).

力学中的计算方法(数值积分).

力学中的计算方法(数值积分).
力学中的计算方法(数值积分).

几种定积分的数值计算方法

几种定积分的数值计算方法 摘要:本文归纳了定积分近似计算中的几种常用方法,并着重分析了各种数值方法的计 算思想,结合实例,对其优劣性作了简要说明. 关键词:数值方法;矩形法;梯形法;抛物线法;类矩形;类梯形 Several Numerical Methods for Solving Definite Integrals Abstract:Several common methods for solving definite integrals are summarized in this paper. Meantime, the idea for each method is emphatically analyzed. Afterwards, a numerical example is illustrated to show that the advantages and disadvantages of these methods. Keywords:Numerical methods, Rectangle method, Trapezoidal method, Parabolic method, Class rectangle, Class trapezoid

1. 引言 在科学研究和实际生产中,经常遇到求积分的计算问题,由积分学知识可知,若函数 )(x f 在区间],[b a 连续且原函数为)(x F ,则可用牛顿-莱布尼茨公式 ?-=b a a F b F x f ) ()()( 求得积分.这个公式不论在理论上还是在解决实际问题中都起到了很大的作用. 在科学研究和实际生产中,经常遇到求积分的计算问题,由积分学知识可知,若函数)(x f 在区间],[b a 连续且原函数为)(x F ,则可用牛顿-莱布尼茨公式 ?-=b a a F b F x f ) ()()( 求得积分.这个公式不论在理论上还是在解决实际问题中都起到了很大的作用.另外,对于求导数也有一系列的求导公式和求导法则.但是,在实际问题中遇到求积分的计算,经常会有这样的情况: (1)函数)(x f 的原函数无法用初等函数给出.例如积分 dx e x ?-1 02 , ? 1 sin dx x x 等,从而无法用牛顿-莱布尼茨公式计算出积分。 (2)函数)(x f 使用表格形式或图形给出,因而无法直接用积分公式或导数公式。 (3)函数)(x f 的原函数或导数值虽然能够求出,但形式过于复杂,不便使用. 由此可见,利用原函数求积分或利用求导法则求导数有它的局限性,所以就有了求解数值积分的很多方法,目前有牛顿—柯特斯公式法,矩形法,梯形法,抛物线法,随机投点法,平均值法,高斯型求积法,龙贝格积分法,李查逊外推算法等等,本文对其中部分方法作一个比较. 2.几何意义上的数值算法 s 在几何上表示以],[b a 为底,以曲线)(x f y =为曲边的曲边梯形的面积A ,因此,计 算s 的近似值也就是A 的近似值,如图1所示.沿着积分区间],[b a ,可以把大的曲边梯形分割成许多小的曲边梯形面积之和.常采用均匀分割,假设],[b a 上等分n 的小区间 ,x 1-i h x i +=b x a x n ==,0,其中n a b h -= 表示小区间的长度. 2.1矩形法

数值计算方法课程设计(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、了解并掌握matlab软件的基本编程、操作方法; 2、初步了解matlab中的部分函数,熟悉循环语句的使用; 3、通过上机进一步领悟用复合梯形、复合辛普森公式,以及用龙贝格求积 方法计算积分的原理。 一、用不同数值方法计算积分 10x ln xdx=-94. (1)取不同的步长h.分别用复合梯形及辛普森求积计算积分,给出误差中关 于h的函数,并与积分精确值比较两个公式的精度,是否存在一个最小 的h,使得精度不能再被改善? (2)用龙贝格求积计算完成问题(1)。 二、实现实验 1、流程图: 下图是龙贝格算法框图:

2、 算法: (1) 复合梯形公式:Tn=++)()([2b f a f h 2∑-=1 1 )](n k xk f ; (2) 复合辛普森公式:Sn=6h [f(a)+f(b)+2∑-=11)](n k xk f +4∑-=+1 )2/1(n k x f ]; 以上两种算法都是将a-b 之间分成多个小区间(n ),则h=(b-a)/n,x k =a+kh, x k+1/2=a+(k+1/2)h,利用梯形求积根据两公式便可。 (3) 龙贝格算法:在指定区间内将步长依次二分的过程中运用如下公式 1、Sn= 34T2n-31 Tn 2、 Cn=1516S2n-151 Sn 3、 Rn=6364C2n-631 Cn 从而实现算法。 3、 程序设计 (1)、复合梯形法: function t=natrapz(fname,a,b,n) h=(b-a)/n; fa=feval(fname,a);fb=feval(fname,b);f=feval(fname,a+h:h:b-h+0. 001*h); t=h*(0.5*(fa+fb)+sum(f)); (2)、复合辛普森法: function t=natrapz(fname,a,b,n) h=(b-a)/n; fa=feval(fname,a);fb=feval(fname,b);f1=feval(fname,a+h:h:b-h+0 .001*h); f2=feval(fname,a+h/2:h:b-h+0.001*h); t=h/6*(fa+fb+2*sum(f1)+4*sum(f2)); (3)龙贝格法: function [I,step]=Roberg(f,a,b,eps) if(nargin==3) eps=1.0e-4; end; M=1; tol=10; k=0; T=zeros(1,1); h=b-a; T(1,1)=(h/2)*(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),

数值计算方法课程设计

重庆邮电大学 数学与应用数学 专业 《数值计算方法》课程设计 姓名: 李金徽 王莹 刘姝楠 班级: 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 ++=)(

数值分析课程设计

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

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

计算流体力学常用数值方法简介[1]

计算流体力学常用数值方法简介 李志印 熊小辉 吴家鸣 (华南理工大学交通学院) 关键词 计算流体力学 数值计算 一 前 言 任何流体运动的动力学特征都是由质量守恒、动量守恒和能量守恒定律所确定的,这些基本定律可以由流体流动的控制方程组来描述。利用数值方法通过计算机求解描述流体运动的控制方程,揭示流体运动的物理规律,研究流体运动的时一空物理特征,这样的学科称为计算流体力学。 计算流体力学是一门由多领域交叉而形成的一门应用基础学科,它涉及流体力学理论、计算机技术、偏微分方程的数学理论、数值方法等学科。一般认为计算流体力学是从20世纪60年代中后期逐步发展起来的,大致经历了四个发展阶段:无粘性线性、无粘性非线性、雷诺平均的N-S方程以及完全的N-S方程。随着计算机技术、网络技术、计算方法和后处理技术的迅速发展,利用计算流体力学解决流动问题的能力越来越高,现在许多复杂的流动问题可以通过数值计算手段进行分析并给出相应的结果。 经过40年来的发展,计算流体力学己经成为一种有力的数值实验与设计手段,在许多工业领域如航天航空、汽车、船舶等部门解决了大量的工程设计实际问题,其中在航天航空领域所取得的成绩尤为显著。现在人们已经可以利用计算流体力学方法来设计飞机的外形,确定其气动载荷,从而有效地提高了设计效率,减少了风洞试验次数,大大地降低了设计成本。此外,计算流体力学也己经大量应用于大气、生态环境、车辆工程、船舶工程、传热以及工业中的化学反应等各个领域,显示了计算流体力学强大的生命力。 随着计算机技术的发展和所需要解决的工程问题的复杂性的增加,计算流体力学也己经发展成为以数值手段求解流体力学物理模型、分析其流动机理为主线,包括计算机技术、计算方法、网格技术和可视化后处理技术等多种技术的综合体。目前计算流体力学主要向二个方向发展:一方面是研究流动非定常稳定性以及湍流流动机理,开展高精度、高分辩率的计算方法和并行算法等的流动机理与算法研究;另一方面是将计算流体力学直接应用于模拟各种实际流动,解决工业生产中的各种问题。 二 计算流体力学常用数值方法 流体力学数值方法有很多种,其数学原理各不相同,但有二点是所有方法都具备的,即离散化和代数化。总的来说其基本思想是:将原来连续的求解区域划分成网格或单元子区

导数的数值计算方法[文献综述]

毕业论文文献综述 信息与计算科学 导数的数值计算方法 一、 前言部分 导数概念的产生有着直觉的起源,与曲线的切线和运动质点的速度有密切的关系.导数用于描述函数变化率,刻画函数的因变量随自变量变化的快慢程度.比如说,物理上考虑功随时间的变化率(称为功率),化学上考虑反应物的量对时间的变化率(称为反应速度),经济学上考虑生产某种产品的成本随产量的变化率(称为边际成本)等等,这些变化率在数学上都可用导数表示. 导数由于其应用的广泛性,为我们解决所学过的有关函数问题提供了一般性的方法,导数是研究函数的切线、单调性、极值与最值等问题的有力工具;运用它可以简捷地解决一些实际问题,导数的概念是用来研究函数在一点及其附近的局部性质的精确工具,而对于函数在某点附近的性质还可以应用另一种方法来研究,就是通过最为简单的线性函数来逼近,这就是微分的方法.微分学是数学分析的重要组成部分,微分中值定理作为微分学的核心,是沟通导数和函数值之间的桥梁, Rolle 中值定理, Lagrange 中值定理, Cauchy 中值定理, Taylor 公式是微分学的基本定理, 统称为微分学的中值定理,这四个定理作为微分学的基本定理,是研究函数形态的有力工具 ] 1[.在微分学中,函数的导数是通过极限定义的,但 当函数用表格给出时,就不可用定义来求其导数,只能用近似方法求数值导数] 2[.最简单 的数值微分公式是用差商近似地代替微商,常见的有 [3] . ()()() 'f x h f x f x h +-≈ , ()()() 'f x f x h f x h --≈, ()()() '2f x h f x h f x h +--≈ . 需要注意的是微分是非常敏感的问题,数据的微小扰动会使结果产生很大的变化] 4[.

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

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

《计算流体力学》结课作业解读

2012~2013学年第1学期 12级研究生《计算流体力学》结课作业 适用专业:供热供燃气通风及空调工程 一、结合某一具体学科,阐述纯理论方法、实验方法及数值方法在科学研究中的各自优缺点,在此基础上论述数值模拟方法的发展前景。(不少于4千字)。 流体力学是力学的一个重要分支, 是研究流体(液体和气体)的力学运动规律及其应用的学科, 主要研究在各种力的作用下,流体本身的静止状态和运动状态特征,以及流体和相邻固体界面有相对运动时的相互作用和流动规律。在人们的生活和生产活动中随时随地都可遇到流体,流体力学与人类的日常生活和生产事业密切相关。按其研究内容的侧重点不同,分为理论流体力学和工程流体力学。其中理论流体力学主要采用严密的数学推理方法,力求准确性和严密性,工程流体力学侧重于解决工程实际中出现的问题,而不追求数学上的严密性。当然由于流体力学研究的复杂性,在一定程度上,两种方法都必须借助于实验研究,得出经验或半经验的公式。 在实际工程的诸多领域流体力学都起着十分重要的作用。如气象、水利的研究,船舶、飞行器、叶轮机械和核电站的设计及其运行,可燃气体或炸药的爆炸,都广泛地用到流体力学知识。许多现代科学技术所关心的问题既受流体力学的指导,同时也促进了流体力学自身的不断发展。1950年后,计算机的发展给予流体力学以极大的推动作用。 目前,解决流体力学问题的方法主要有实验方法、理论分析方法和数值方法三种。 实验方法 同物理学、化学等学科一样,流体力学的研究离不开实验,尤其是对新的流体运动现象的研究。实验能显示运动特点及其主要趋势,有助于形成概念,检验理论的正确性。二百年来流体力学发展史中每一项重大进展都离不开实验。流体力学实验研究方法有实物实验、比拟研究和模型研究三类:实物实验是用仪器实测原型系统的流动参数,适用于较小的原型;比拟实验是利用电场和磁场来模拟流场,实施起来限制条件较多;模型研究是实验流体力学最常用的研究方法。 实验研究的一般过程是:在相似理论的指导下建立实验模型,用流体测量技术测量流动参数,处理和分析实验数据。建立实验模型要求模型与原型满足相似理论,即满足两个流场

数值积分 (论文)

目录 第一章数值积分计算的重述 (1) 1.1引言 (1) 1.2问题重述 (2) 第二章复化梯形公式 (3) 2.1 复化梯形公式的算法描述 (3) 2.2 复化梯形公式在C语言中的实现 (3) 2.3 测试结果 (4) 第三章复化simpson公式 (6) 3.1 复化simpson公式的算法描述 (6) 3.2 复化simpson公式在C语言中的实现 (6) 3.3 测试结果 (7) 第四章复化cotes公式 (8) 4.1 复化cotes公式的算法描述 (8) 4.2 复化cotes公式在C语言中的实现 (9) 4.3 测试结果 (10) 第五章Romberg积分法 (11) 5.1 Romberg积分法的算法描述 (11) 5.2 Romberg积分法在C中的实现 (12) 5.3 测试结果 (13) 第六章结果对比分析和体会 (144) 参考文献 (16) 附录 (16)

数值积分?-10 2 dx e x (一) 第一章 数值积分计算的重述 1.1引言 数值积分是积分计算的重要方法,是数值逼近的重要内容,是函数插值的最直接应用,也是工程技术计算中常常遇到的一个问题。在应用上,人们常要求算出具体数值,因此数值积分就成了数值分析的一个重要内容。在更为复杂的计算问题中,数值积分也常常是一个基本组成部分。 在微积分理论中,我们知道了牛顿-莱布尼茨(Newton-Leibniz)公式 ()() () b a f x d x F b F a =-? 其中()F x 是被积函数()f x 的某个原函数。但是随着学习的深入,我们发现一个问题: 对很多实际问题,上述公式却无能为力。这主要是因为:它们或是被积函数没有解析形式的原函数,或是只知道被积函数在一些点上的值,而不知道函数的形式,对此,牛顿—莱布尼茨(Newton-Leibniz)公式就无能为力了。此外,即使被积函数存在原函数,但因找原函数很复杂,人们也不愿花费太多的时间在求原函数上,这些都促使人们寻找定积分近似计算方法的研究,特别是有了计算机后,人们希望这种定积分近似计算方法能在计算机上实现,并保证计算结果的精度,具有这种特性的定积分近似计算方法称为数值积分。由定积分知识,定积分只与被积函数和积分区间有关,而在对被积函数做插值逼近时,多项式的次数越高,对被积函数的光滑程度要求也越高,且会出现Runge 现象。如7n >时,Newton-Cotes 公式就是不稳定的。因而,人们把目标转向积分区间,类似分段插值,把积分区间分割成若干小区间,在每个小区间上使用次数较低的Newton-Cotes 公式,然后把每个小区间上的结果加起来作为函数在整个区间上积分的近似,这就是复化的基本思想。本文主要

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

课 程 设 计 我再也回不到大二了, 大学是那么短暂 设计题目 数值分析 学生姓名 李飞吾 学 号 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 较粗糙的估计值出发,用递推公式:

数值计算方法课程设计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

第二章计算流体力学的基本知识

第二章计算流体力学的基本知识 流体流动现象大量存在于自然界及多种工程领域中,所有这些工程都受质量守恒、动量守恒和能量守恒等基本物理定律的支配。这章将首先介绍流体动力学的发展和流体力学中几个重要守恒定律及其数学表达式,最后介绍几种常用的商业软件。 2.1 计算流体力学简介 2.1.1计算流体力学的发展 流体力学的基本方程组非常复杂,在考虑粘性作用时更是如此,如果不靠计算机,就只能对比较简单的情形或简化后的欧拉方程或N-S方程进行计算。20世纪30~40年代,对于复杂而又特别重要的流体力学问题,曾组织过人力用几个月甚至几年的时间做数值计算,比如圆锥做超声速飞行时周围的无粘流场就从1943年一直算到1947年。 数学的发展,计算机的不断进步,以及流体力学各种计算方法的发明,使许多原来无法用理论分析求解的复杂流体力学问题有了求得数值解的可能性,这又促进了流体力学计算方法的发展,并形成了"计算流体力学"。 从20世纪60年代起,在飞行器和其他涉及流体运动的课题中,经常采用电子计算机做数值模拟,这可以和物理实验相辅相成。数值模拟和实验模拟相互配合,使科学技术的研究和工程设计的速度加快,并节省开支。数值计算方法最近发展很快,其重要性与日俱增。 自然界存在着大量复杂的流动现象,随着人类认识的深入,人们开始利用流动规律来改造自然界。最典型的例子是人类利用空气对运动中的机翼产生升力的机理发明了飞机。航空技术的发展强烈推动了流体力学的迅速发展。 流体运动的规律由一组控制方程描述。计算机没有发明前,流体力学家们在对方程经过大量简化后能够得到一些线形问题解析解。但实际的流动问题大都是复杂的强非线形问题,无法求得精确的解析解。计算机的出现以及计算技术的迅速发展使人们直接求解控制方程组的梦想逐步得到实现,从而催生了计算流体力

基础实验二 定积分数值计算

基础实验二 定积分数值计算 一、实验目的 学习定积分的数值计算方法,理解定积分的定义,掌握牛顿-莱布尼兹公式。 二、实验材料 2.1定积分的数值计算 计算定积分?b a dx x f )(的近似值,可将积分区间n 等分而得矩形公式 n a b n a b i a f dx x f n i b a ---+≈∑?=]) 1([)(1 或 n a b n a b i a f dx x f n i b a --+≈∑?=][)(1 也可用梯形公式近似计算 n a b b f a f n a b i a f dx x f n i b a -++-+≈∑?-=]2)()()([)(11 如果要准确些,可用辛普森公式 n a b b f a f a b i a f n a b i a f dx x f n i n i b a 6)]()()2)21((4)(2[)(111-++--++-+≈∑∑?=-= 对于?1 0sin xdx ,矩形公式、梯形公式、辛普森公式的Mathematica 程序为 a=0;b=1;k=10; f[x_]:=Sin[x]; d=N[Integrate[f[x],{x,a,b}],k];(计算精确值) s1[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,0,m-1}],k];(取小区间左端点的矩形公式) s2[m_]:=N[Sum[f[a+(i+1/2)*(b-a)/m]*(b-a)/m,{i,0,m-1}],k]; (取小区间中点的矩形公式) s3[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,1,m}],k]; (取小区间右端点的矩形公式) s4[m_]:=N[Sum[(f[a+i*(b-a)/m]+f[a+(i+1)*(b-a)/m])/2*(b-a)/m,{i,0,m-1}],k]; (梯形公式) s5[m_]:=N[(b-a)/m/6*((f[a]+f[b])+2*Sum[f[a+i*(b-a)/m],{i,1,m-1}]

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

本文主要通过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

计算流体力学中有限差分法、有限体积法和有限元法的区别

有限元法,有限差分法和有限体积法的区别 1. FDM 1.1 概念 有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。 1.2 差分格式 (1)从格式的精度来划分,有一阶格式、二阶格式和高阶格式。 (2)从差分的空间形式来考虑,可分为中心格式和逆风格式。 (3)考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。 目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。 1.3 构造差分的方法 构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶

中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。 2. FEM 2.1 概述 有限元方法的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式,借助于变分原理或加权余量法,将微分方程离散求解。采用不同的权函数和插值函数形式,便构成不同的有限元方法。 2.2 原理 有限元方法最早应用于结构力学,后来随着计算机的发展慢慢用于流体力学、土力学的数值模拟。在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域的解可以看作是由所有单元上的近似解构成。在河道数值模拟中,常见的有限元计算方法是由变分法和加权余量法发展而来的里兹法和伽辽金法、最小二乘法等。 根据所采用的权函数和插值函数的不同,有限元方法也分为多种计算格式。(1)从权函数的选择来说,有配置法、矩量法、最小二乘法和伽辽金法;(2)从计算单元网格的形状来划分,有三角形网格、四边形网格和多边形网格;(3)从插值函数的精度来划分,又分为线性插值函数和高次插值函数等。 不同的组合同样构成不同的有限元计算格式。

数值分析-课程设计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. 附件(所有程序的原代码,要求对程序写出必要的注释)。 ● 书写格式

数值分析课程设计

本科生课程论文 题目:数值分析课程设计姓名: 学院:理学与信息科学学院专业:信息与计算科学专业班级: 学号: 指导教师: 完成时间:2011年12月23日 二○一一年十二月二十三日

课 程 论 文 任 务 书 论文题目 数值分析课程设计 论文内容(需明确列出研究的问题): 运用MATLAB 数学软件设计出数值分析的求拉格朗日插值多项式和牛顿插值多项式以及Polyfit 多项函数拟合来求22)(cx bx a x P ++=的拟合曲线和列主元Guass 消去法 解方程组。 资料、数据、技术水平等方面的要求:论文要符合一般学术论文的写作规范,具备学术性、科学性和一定的创造性。文字要流畅、语言要准确、论点要清楚、论据要准确、论证要完整、严密,有独立的观点和见解。内容要理论联系实际,计算数据要求准确,涉及到他人的观点、统计数据或计算公式等要标明出处,结论要写的概括简短。参考 文献的书写按论文中引用的先后顺序连续编码。(根据情况修改) 发出任务书日期2011.12.18 完成论文(设计)日期 2011.12.23 学科组或教研室意见(签字) 院、系(系)主任意见(签字)

目录 前言........................................................................................................ - 1 - 一、设计题1: .................................................................................... - 2 - (一)、求拉格朗日插值多项式 ................................................... - 2 - 1.1理论知识 ............................................................................. - 2 - 1.2拉格朗日插值的设计思路与算法如下: ......................... - 3 - 2.求拉格朗日插值多项式的程序如下:(即Language.m文件) - 3 - 3.程序运行操作过程与输出结果 ............................................ - 4 - 4.对计算过程与结果分析 ........................................................ - 5 - (二)、求牛顿插值多项式 ......................................................... - 5 - 1.1理论知识 ............................................................................. - 5 - 1.2设计思路与算法步骤 ......................................................... - 6 - 2.求牛顿插值多项式的程序如下:(即Newton.m文件) ....... - 6 - 3.程序运行操作过程与输出结果 ............................................ - 7 - 4.对计算过程与结果的分析 ................................................. - 8 - 5.在课程设计中的心得体会 .................................................... - 8 - 二、设计题2: .................................................................................... - 8 - 1.1理论知识 ............................................... 错误!未定义书签。 1.2算法步骤 ............................................... 错误!未定义书签。 2程序运行操作过程与输出结果 .............. 错误!未定义书签。

相关主题
文本预览
相关文档 最新文档