微积分的数值计算方法数值微分PPT课件
- 格式:ppt
- 大小:677.00 KB
- 文档页数:15


1 第七章 微积分的数值计算方法
7.1 微积分计算存在的问题/数值积分的基本概念
1. 微分计算问题
求函数的导数(微分),原则上没有问题。当然,这是指所求函数为连续形式且导数存在的情形。但如果函数一表格形式给出,要求函数在某点的导数值;或者是希望某点的导数值只用其附近离散点上的函数值近似地表示,这就是新问题了,它称为微分的数值计算,或称为数值微分。
2.定积分计算问题
计算函数f在],[ba上的定积分 dxxfIba)(
当被积函数f的原函数能用有限形式)(xF给出时,可用积分基本公式来计算:
)()()(aFbFdxxfIba
然而,问题在于:① f的原函数或者很难找到,或者根本不存在;②f可能给出一个函数表;③仅仅知道f是某个无穷级数的和或某个微分方程的解等等。这就迫使人们不得不寻求定积分的近似计算,也称数值积分。
3.数值积分的基本形式
数值积分的基本做法是构造形式如下的近似公式
nkkkbaxfAdxxf0)()( (7.1.1)
或记成 nknkkbafRxfAdxxf0][)()( (7.1.2)
nkkkxfAI0*)( 和 ][fRn 分别成为],[ba上的f的数值求积公式及其余项(截断误差),kx和kA),,1,0(nk分别称为求积节点和求积系数(求积系数与被积函数无关)。
这种求积公式的特点是把求积过(极限过程)程转化为乘法与加法的代数运算。构造这种求积公式需要做的工作是:确定节点kx及系数kA),,1,0(nk,估计余项][fRn以及讨论*I的算法设计及其数值稳定性。
4.插值型求积公式
如何构造求积公式呢?基本的技术是用被积函数f的Lagrange插值多项式)(xLn近似代替f,也即对],[ba上指定的1n个节点 2 bxn10xxa及相应的函数值)(,),(),(10nxfxfxf,作
2010年8月 第4期 城市勘测 Urban Geotechnical Investigation&Surveying Aug.2010 No.4 文章编号:1672—8262(2010)04—117—03 中图分类号:O175
多种微分方程数值计算方法分析 文献标识码:A
王建强 ,沈愉乐 (1.武汉大学测绘学院,湖北武汉430072;2.吴江市建设房产测量有限公司,江苏吴江215200) 摘要:数值微分方程的数值解法是计算方法、数值分析理论中非常重要的内容,数值微分方法也是解决实际计算问 题的重要方法。本文对几种常用的数值微分方法进行了简要的分析,并用这几种方法对具有光滑性质的被积函数进 行数值计算,龙格一库塔方法和4阶阿达姆斯方法的数值计算稳定性和计算精度都比较好。 关键词:微分方程;计算方法;数值分析;数值实验 1 引 言 在科学研究和工程应用中,所建立的数学模型多是 常微分方程或微分方程组,但是除了少数特殊类型的微 分方程能用解析方法求得其精确解外,大多数情况下要 得出解的解析表达式是极其困难的,因此,就需要用数 值逼近方法求得其近似解。微分方程组的数值解的存 在性和稳定性取决于被积函数的特性和初值。求初值 问题的数值解法可区分为两大类:单步法和多步法。常 用的方法中欧拉(Euler)方法、改进的欧拉方法、龙格一 库塔方法(Runge—Kutta)等 。 是单步法的典型代表, 线性多步法是多步法的典型代表,对于一些特别的数值 微分方程使用这些方法效果很差 。微分方程的数值 解法有显式解和隐式解法,一般来说,隐式解要优于显 式解 J。欧拉方法是一种最简单的单步法,计算量小, 但精度比较低。一般的初值问题,多采用改进的欧拉方 法,因为它的数值稳定性和计算精度都比一般的欧拉方 法好。龙格一库塔方法是一类应用较广的高精度单步 法,当解充分光滑时的4阶龙格一库塔方法一般可以达 到很高的精度。常微分方程的初值对计算方法的收敛 是有影响的 J。为了更好地比较这几种常用的方法,本 文采用这几种数值方法对被积函数光滑连续,初值精确 的微分方程做了数值试验。
【学法指导】 多种微分方程数值计算方法分析 敬久旺 (西藏农牧学院,西藏林芝860000) 摘要:本文首先从理论上分析了两种主要用于解偏微分方程的数值方法—L_有限元方法和有限差分法的基本 思想和主要的步骤;其次,分别用工程上有很大应用的两类方程进行两种数值方法的数值算例分析;最后,总结两 种方法的主要相同点和离散时的重要区别。 关键词:偏微分方程;数值计算;有限元方法;有限差分法 一、引言 在工程应用、科学研究中,所建立的数学模型很大 程度上都是偏微分方程。但是,除了极少数特殊类型的 偏微分方程能用解析的方法求得其精确解外,大多数 情况下要得出解的解析表达式是非常困难的,因此,就 需要应用数值方法来近似逼近精确解。 大规模的计算中,往往要用到计算机,然而,电子 计算机只能储存有限个数据,做有限次运算,所以任何 一种用计算机解题的方法,都必须要把连续问题离散 化,最终化成有限形式的线性代数方程组。 二、有限元方法的基本理论 1.基本步骤及理论。有限元法是求解边值问题的数 值方法。有限元法求解偏微分方程的基本思想就是传 统的Ritz—Galerkin法,但是它运用样条函数提供了一 种选取“局部基函数”或“分片多项式空间”的技巧,克 服了Ritz—Galerkin法选取基函数的固有困难,它已成 为求解偏微分方程,特别是线性椭圆型偏微分方程的 一种有效的数值方法。 有限元方法的基本步骤可以归纳如下: (1)把原问题转化为变分形式。 (2)选定单元形状,对区域进行剖分。 (3)构造节点基函数,形成有限元空间。 (4)以某种方法给出单元各状态变量的离散关系, 形成单元刚度矩阵,并且组装成总刚矩阵,有限元法最 终导致联立方程组,求解各节点处的函数值。 (5)收敛性及误差估计,对于计算所得的结果,将 通过与设计准则提供的准许值比较来评价并确定是否 需要重复计算。 2.数值算例。下面以一类二维带复合边界条件的偏 微分方程进行有限元解法的说明。 -a ̄u+BM=s. ∈n u=d ̄xED (1) IL.=T ̄XEr 其中, 为u沿单位外法向的方向导数,Q为有 d 界区域,边界DuF,aQ, , , ,, d为给定常数。 本文对区域采取三角剖分,在每个单元e)上,在 该单元上的有限元解可以表示为:u=u ̄9 M +“印 。其 中, 为节点( ,y)的基函数,选取如下: =嘶+6 +c (2) 满足: ( Y )=1, ( ,,yj)=O, ( yk)=O,将上述 条件代入(2),可具体求得基函数的表达式。同理,其他 节点处的基函数也是如此形式及求法。 下面将是在变分形式下,推导出方程(1)的有限元 解法的代数方程组形式,即方程(1)的弱解。 一+ +一+一+一十一十-+一+ +“+一+-+一+一+一+”+”+n+一+一+ +-+*+n+- 音节组成的英语基本词汇。 3.利用构词法教单词。联系是记忆的桥梁,孤立的 东西好像一盘散沙,怎么也抓不住,有联系的东西好像 一根链子,抓住一个环节就可带动其他环节。英语词汇 总量虽上百万,但基本构词成分却是有限的。我们教师 在课堂教学中应该利用词汇的这些特点来进行教学, 当然了,这些特点教师们也不可能直接的把它们说出 来,而应在集中这些教学词汇时呈现出来,让学生自己 去发现和总结,这样使学生在学习时有了自我的参与, 更能培养他们的学习能力。如在教“health”时,不妨教 一下“healthy”,“healthily”,“unhealthy”,“Linhealthily”,同 时,还可以顺便复习一下名词十y变成形容词,形容词+ly 变成副词以及LIB、in、im、dis、less等否定前后缀,后缀 一ment,一ness,一tion ̄J]常表示名词形式, ̄1illness和tradi— tion等,并请学生举一些相似的例子。这样学生记忆的 就不只是单个单词,而是一串单词。此外,还培养了学 生举一反三的能力。掌握构词法和词语搭配是扩大词 汇量的一个有效方法。例如在学习“use”这个单词时,可 用构词法,引申出“use—useful—usefully—useless”,这样不 但减轻了学生记忆的负担,而且使他们也学会了词汇 的知识,对于单词,学生自然也不会那么恐惧了。 总之,作为一名初中的英语老师我们需按照有关 教学大纲上的要求来进行教学,但我们还要遵循中学 英语词汇教学的基本原则,一定要认真地分析学生学 习英语词汇中存在的不同问题,应因不同的情况,采用 不同的词汇教学方法,这样才能更好地使学生对英语 词汇的学习感兴趣,从而达到提高初中英语词汇的教 学效果。 一
山西大学计算机与信息技术学院
实验报告
姓 名 学 号 专业班级
课程名称 计算方法 实验日期
成 绩 指导教师 批改日期
实验名称 实验七 数值微分
一、实验目的:
用变步长的中点方法求2)1(1x在x=2处的导数值。
二、实验方法:
用变步长的中点方法计算公式为:
hhhhG2)21(1)21(1)(22
式中步长khh2,k为二分次数。
三、实验内容:
用变步长的中点方法求2)1(1x在x=2处的导数值,步长从1开始。
四、实验程序
#include
#include
double g(double h)
{
return (1/pow((1+2+h),2)-1/pow((1+2-h),2))/(2*h);
}
double g1(double h)
{
double g1=(4*g(h/2)-g(h))/3;
return g1;
}
double g2(double h)
{
double g2=(16*g1(h/2)-g1(h))/15;
return g2;
}
double g3(double h)
{
double g3=(64*g2(h/2)-g2(h))/63;
return g3;
} void main()
{
double k=100,a=0.0,h=1,b;
for(int i=0;i
{
b=g3(h);
if(fabs(b-a)<0.0001)
{
printf("在x=2处,步长为1时的导数值为:%f\n",b);
break;
}
a=b;
}
}五、实验结果:
六、结果分析:
随着步长的减小,计算精度明显提高。但当步长达到一定范围时,精度反而下降,这是因为这时候舍入误差开始不能够忽略,而一旦步长减少到某个临界值的时候,舍入误差剧增,导致最终的实验结果出现很大的偏差。