数值分析简明教程讲义

数值分析简明教程讲义
数值分析简明教程讲义

第1章 绪论

数值计算方法是一门与计算机使用密切结合的实用性很强的数学课程,其特点如下: 第一,面向计算机,要根据计算机特点提供实际可行的有效算法,即算法只能包括加、减、 乘、除运算和逻辑运算,是计算机能直接处理的。

第二,有可靠的理论分析,能任意逼近并达到精度要求,对近似算法要保证收敛性和数值稳 定性,还要对误差进行分析,这些都建立在相应数学理论基础上。

第三,要有好的计算复杂性,时间复杂性好是指节省时间,空间复杂性好是指节省存储量, 这也是建立算法要研究的问题,它关系到算法能否在计算机上实现。

第四,要有数值实验,即任何一个算法除了从理论上要满足上述三点外,还要通过数值试验 证明是行之有效的。

1.1 误差的基本概念

除了极个别的情况外,数值计算总是近似计算,实际计算结果与理论结果之间存在着误差。 数值分析的任务之一是将误差控制在一定的容许范围内或者至少对误差有所估计。

一、误差的来源

1、模型误差

用计算机解决科学计算问题首先要建立数学模型,它是对被描述的实际问题进行抽象,简化而得到的,因而是近似的,数学模型与实际问题之间出现的这种误差称为模型误差。这种误差可忽略不计,在数值计算方法中不予讨论。

2、观测误差

在数学模型中往往还有一些根据观测得到的物理量,如温度,长度,电压等等,测量的结果不可能绝对正确,由此产生的误差称为观测误差。观测误差在数值计算方法中也不予讨论。

3、截断误差(方法误差)

在数学模型不能得到精确解时,通常要用数值方法求它的近似解,其近似解与精确解之间的误差称为截断误差或方法误差。

4、舍入误差

在计算过程中,由于计算机的字长有限,采用计算机数系中和实际数据比较接近的数来表示,由此产生的误差以及计算过程又可能产生新的误差,这些误差称为舍入误差。。

二、绝对误差和相对误差

1、绝对误差秘绝对误差限

设数x (精确值)有一个近似值为*x ,记

称e(x)为近似值*x 的绝对误差,简称误差。

当e(x)为正时,近似值*x 偏大,叫做强近似值 ;当它为负时,近似值*x 偏小,叫作弱近似值。

准确值x 一般是未知的,因而绝对误差)(*x e 也是未知的,但往往可以估计出绝对误差的一个上界,即可以找出一个正数η,

使

η≤*)(x e

称η为*x 的绝对误差限(或误差限)。 显然,误差限η总是正数,且η≤-||*x x ,在应用上常常采用如下写法:

例:用毫米刻度的米尺测量一长度x 时,如果该长度接近某一刻度*x ,则*x 作为x 的

近似值时

21)(≤

-=**x x x e

绝对误差还不足以刻划近似数的精确程度,例如,有两个量=±=y x ,110101000±,

2、相对误差及相对误差限

我们把近似值的误差)(*x e 与准确值x 的比值,记作 (毫米)=0.5(毫米)

称为近似值*

x 的相对误差。

实际计算中,由于真值总是未知的,与绝对误差限类似,可以找到一个正数ε,使得: 则称ε为近似数x 的相对误差限。

三、有效数字

1、有效数字

如果近似值*x 的误差限是某一位的半个单位,该位到*x 的第一位非零数字共有n 位,则我们称*x 有n 位有效数字。

例如,,81415926535.3 ==πx 取14.3=*x 时, 所以,14.3=*

x 作为π的近似值时,就有3位有效数字。

2、误差限与有效数字的关系

定理1 设有一数x ,其近似值

若*x 具有n 位有效数字,则其相对误差限为 例1:当有3.1416来表示π的近似值时,它的相对误差是多少?(

4106

1-?) 定理2 如上形式的近似数*x ,若满足

则*x 至少有n 位有效数字。 例2 已知2的近似数*x 的相对误差限为0.025,最坏情况*x 是何数?(2=1.414213562…) —— *

x =1.4

1.2 数值计算中应注意的若干原则

1、要使用数值稳定的计算公式。

运算过程中舍入误差不增长的计算公式——数值稳定的,否则为不稳定的。

2、要避免两个相近数相减。

3、要防止大数“吃掉”小数。(数量级相差很大的数,措施:调整运算次序。)

4、注意简化计算步骤。

数值分析报告报告材料期末复习资料

数值分析期末复习 题型:一、填空 二、判断 三、解答(计算) 四、证明 第一章 误差与有效数字 一、有效数字 1、 定义:若近似值x*的误差限是某一位的半个单位,该位到x*的第一位非零数字共有n 位,就说 x*有n 位有效数字。 2、 两点理解: (1) 四舍五入的一定是有效数字 (2) 绝对误差不会超过末位数字的半个单位eg. 3、 定理1(P6):若x*具有n 位有效数字,则其相对误差限为 4、 考点: (1)计算有效数字位数:一个根据定义理解,一个根据定理1(P7例题3) 二、避免误差危害原则 1、 原则: (1) 避免大数吃小数(方法:从小到大相加;利用韦达定理:x1*x2= c / a ) (2) 避免相近数相减(方法:有理化)eg. 或 (3) 减少运算次数(方法:秦九韶算法)eg.P20习题14 *(1)1 1 102n r a ε--≤ ?; x εx ε x εx ++=-+();1ln ln ln ???? ? ?+=-+x εx εx x cos 1-2sin 22x =

三、数值运算的误差估计 1、 公式: (1) 一元函数:|ε*( f (x *))| ≈ | f ’(x *)|·|ε*(x )|或其变形公式求相对误差(两边同时除以f (x *)) eg.P19习题1、2、5 (2) 多元函数(P8)eg. P8例4,P19习题4 第二章 插值法 一、 插值条件 1、 定义:在区间[a,b]上,给定n+1个点,a ≤x 0<x 1<…<x n ≤b 的函数值 yi=f(xi),求次数不超过n 的多项式P(x),使 2、 定理:满足插值条件、n+1个点、点互异、多项式次数≤n 的P(x)存在且唯一 n i y x P i i n ,,2,1,0)(Λ==

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

数值分析实验报告

数值分析实验报告 姓名:周茹 学号: 912113850115 专业:数学与应用数学 指导老师:李建良

线性方程组的数值实验 一、课题名字:求解双对角线性方程组 二、问题描述 考虑一种特殊的对角线元素不为零的双对角线性方程组(以n=7为例) ?????????? ?????? ? ???? ?d a d a d a d a d a d a d 766 55 44 3 32 211??????????????????????x x x x x x x 7654321=?????????? ? ???????????b b b b b b b 7654321 写出一般的n (奇数)阶方程组程序(不要用消元法,因为不用它可以十分方便的解出这个方程组) 。 三、摘要 本文提出解三对角矩阵的一种十分简便的方法——追赶法,该算法适用于任意三对角方程组的求解。 四、引言 对于一般给定的d Ax =,我们可以用高斯消去法求解。但是高斯消去法过程复杂繁琐。对于特殊的三对角矩阵,如果A 是不可约的弱对角占优矩阵,可以将A 分解为UL ,再运用追赶法求解。

五、计算公式(数学模型) 对于形如????? ?? ????? ??? ?---b a c b a c b a c b n n n n n 111 2 2 2 11... ... ...的三对角矩阵UL A =,容易验证U 、L 具有如下形式: ??????? ????? ??? ?=u a u a u a u n n U ...... 3 3 22 1 , ?? ????? ? ?? ??????=1 (1) 1132 1l l l L 比较UL A =两边元素,可以得到 ? ?? ??-== = l a b u u c l b u i i i i i i 111 i=2, 3, ... ,n 考虑三对角线系数矩阵的线性方程组 f Ax = 这里()T n x x x x ... 2 1 = ,()T n f f f f ... 2 1 = 令y Lx =,则有 f Uy = 于是有 ()?????-== --u y a f y u f y i i i i i 1 1 11 1 * i=2, 3, ... ,n 再根据y Lx =可得到

数值分析典型习题资料

数值分析典型习题

特别声明:考试时需带计 算器作辅助计算 1.2015x *=是经四舍五入得到的近似值,则其相对误差* r e ≤ -31 104 ?. 2. 01(),(),,()n l x l x l x L 是以01,,,n x x x L 为节点的拉格朗日插值基函数,则 3.设(0)1(1)3(2)4(3)2f =,f =,f =,f =,[0123]f =,,,1 3 - . 4. 利用Simpson 公式求?2 1 2dx x = 7.3 5. 设求积公式1 0()d (),(1)n k k k f x x A f x n ≈≥∑?=是Gauss 型求积公式,则3 n k k k A x == ∑1 .4 6. 数值微分公式(2)(2) ()i i i f x h f x h f x h +≈ --'的截断误差为 2().O h 7. 设1101A ?? = ??? ,则A 的谱半径()A ρ= 1 ,A 的条件数1cond ()A = 4. 8. 用牛顿下山法求解方程3 03 x x -=根的迭代公式是 2 13 3(1),3n n n n x x x x x λ+-=-- 下山条件是 1()().n n f x f x +< 9.对任意初始向量(0)x 及任意向量f ,线性方程组的迭代公式(1)()(0,1,2,)k k k +=+=L x Bx f ,迭代序列()k x 收敛于方程组的精确解x *的充分必要条件是()1.ρ

数值计算实验报告

(此文档为word格式,下载后您可任意编辑修改!) 2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:宋元台 学号: 成绩:

数值计算方法与算法实验报告 学期: 2014 至 2015 第 1 学期 2014年 12月1日课程名称: 数值计算方法与算法专业:信息与计算科学班级 12级5班 实验编号: 1实验项目Neton插值多项式指导教师:孙峪怀 姓名:宋元台学号:实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页)

1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)* Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. 2.用C语言实现算法的程序代码 #includeMAX_N) { printf("the input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("please input a number between 1 and %d.\n",MAX_N); return 1; } printf("now input the (x_i,y_i)i=0,...%d\n",n); for(i=0;i<=n;i++) { printf("please input x(%d) y(%d)\n",i,i);

数值分析期末复习资料

数值分析期末复习资料

数值分析期末复习 题型:一、填空 二、判断 三、解答(计算) 四、证明 第一章 误差与有效数字 一、 有效数字 1、 定义:若近似值x*的误差限是某一位的半个单位,该位到x*的第一位非零数字共有n 位,就说 x*有n 位有效数字。 2、 两点理解: (1) 四舍五入的一定是有效数字 (2) 绝对误差不会超过末位数字的半个单位eg. 3、 定理1(P6):若x*具有n 位有效数字,则其相对误差限为 4、 考点: (1)计算有效数字位数:一个根据定义理解,一个根据定理1(P7例题3) 二、 避免误差危害原则 1、 原则: (1) 避免大数吃小数(方法:从小到大相加;利用韦达定理:x1*x2= c / a ) (2) 避免相近数相减(方法:有理化)eg. 或 (3) 减少运算次数(方法:秦九韶算法)eg.P20习题14 三、 数值运算的误差估计 1、 公式: (1) 一元函数:|ε*( f (x *))| ≈ | f ’(x *)|·|ε*(x )|或其变形公式求相对误差(两边同时 除以f (x *)) eg.P19习题1、2、5 (2) 多元函数(P8)eg. P8例4,P19习题4 *(1) 11 102n r a ε--≤?;x εx εx εx ++=-+();1ln ln ln ??? ? ??+=-+x εx εx x cos 1-2sin 22x =

第二章 插值法 一、 插值条件 1、 定义:在区间[a,b]上,给定n+1个点,a ≤x 0<x 1<…<x n ≤b 的函数值 yi=f(xi),求次数不超过n 的多项式P(x),使 2、 定理:满足插值条件、n+1个点、点互异、多项式次数≤n 的P(x)存在且唯一 二、 拉格朗日插值及其余项 1、 n 次插值基函数表达式(P26(2.8)) 2、 插值多项式表达式(P26(2.9)) 3、 插值余项(P26(2.12)):用于误差估计 4、 插值基函数性质(P27(2.17及2.18))eg.P28例1 三、 差商(均差)及牛顿插值多项式 1、 差商性质(P30): (1) 可表示为函数值的线性组合 (2) 差商的对称性:差商与节点的排列次序无关 (3) 均差与导数的关系(P31(3.5)) 2、 均差表计算及牛顿插值多项式 四、埃尔米特插值(书P36) 两种解法: (1) 用定义做:设P 3(x)=ax 3+bx 2+cx+d ,将已知条件代入求解(4个条件:节点函数值、导数值相 等各2个) (2) 牛顿法(借助差商):重节点eg.P49习题14 五、三次样条插值定义 n i y x P i i n ,,2,1,0)( ==

数值分析实验报告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 的帮助。

数值分析程序

用N-C积分公式计算sin(x)在区间[0,∏]上的积分值。 #include"stdio.h" #include"math.h" void main() { int n,k; double sum=0.0,a=0.0,b=3.2415926; double Cotes[8][9]={{0.5,0.5},{1.0/6,4.0/6,1.0/6},{1.0/8,3.0/8,3.0/8,1.0/8}, {7.0/90,32.0/90,12.0/90,32.0/90,7.0/90},{19.0/288,75.0/288,50.0/288,50.0/288,75.0/288, 19.0/288}, {41.0/840,216.0/840,27.0/840,272.0/840,27.0/840,216.0/840,41.0/840}, {751.0/17280,3577.0/17280,1323.0/17280,2989.0/17280,2989.0/17280,1323.0/17280,35 77.0/17280,751.0/17280}, {989.0/28350,5888.0/28350,-928.0/28350,10496.0/28350,-4540.0/28350,10496.0/28350, -928.0/28350,5888.0/28350,989.0/28350}}; //printf("请输入积分区间a和b:"); //scanf("%lf,%lf",&a,&b); printf("请输入积分节点n(1<=n<=8):"); scanf("%d",&n); printf("\n"); for(k=0;k<=n;k++) sum+=Cotes[n-1][k]*(sin(a+k*(b-a)/n)); sum=sum*(b-a); printf("%lf\n",sum); printf("误差值为:%lf\n",2.0-sum); }

数值分析实验报告模板

数值分析实验报告模板 篇一:数值分析实验报告(一)(完整) 数值分析实验报告 1 2 3 4 5 篇二:数值分析实验报告 实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。利用二分法求解给定非线性方程的根,在给定的范围内,假设f(x,y)在[a,b]上连续,f(a)xf(b) 直接影响迭代的次数甚至迭代的收敛与发散。即若x0 偏离所求根较远,Newton法可能发散的结论。并且本实验中还利用利用改进的Newton法求解同样的方程,且将结果与Newton法的结果比较分析。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。掌握二分法的原理,验证二分法,在选对有根区间的前提下,必是收

敛,但精度不够。熟悉Matlab语言编程,学习编程要点。体会Newton使用时的优点,和局部收敛性,而在初值选取不当时,会发散。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b) Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式xk?1?xk?f(xk) f'(xk) 产生逼近解x*的迭代数列{xk},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 xk?1?xk?rf(xk) 'f(xk) 其中r为要求的方程的根的重数,这就是改进的Newton 法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x);

(完整版)哈工大-数值分析上机实验报告

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。重复运行计算,直至满足精度为止。这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式 产生逼近解x*的迭代数列{x k},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0;

%%%误差 R=1; k=0;%迭代次数初值 while (R>5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c%给出解 Newton法及改进的Newton法源程序:clear %%%% 输入函数 f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f);

数值分析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) 附录

有限元与数值方法-讲稿19 弹塑性增量有限元分析课件

材料非线性问题有限元方法 教学要求和内容 1.掌握弹塑性本构关系和塑性力学的基本法则; 2.掌握弹塑性增量分析的有限元格式; 3.学习常用非线性方程组的求解方法: (1)直接迭代法; (2) Newton-Raphson 方法,修正的N-R 方法; (3)增量法等。 请大家预习,争取对相关内容有大概的了解和把握。

弹塑性增量有限元分析 一.材料弹塑性行为的描述 弹塑性材料进入塑性的特点:存在 不可恢复的塑性变形; 卸载时:非线性弹性材料按原路径 卸载; 弹塑性材料按不同的路径卸载,并 且有残余应变,称为塑性应变。

1.单向加载 1) 弹性阶段: 卸载时不留下残余变形; 2) 初始屈服:s σσ= 3) 强化阶段:超过初始屈服之后,按弹性规律卸载,再加载弹性范 围扩大:ss σσ'>,s σ'为相继屈服应力。

4) 鲍氏现象(Bauschinger ): 二.塑性力学的基本法则 1.初始屈服准则: 00(,)0ij F k σ= 已经建立了多种屈服准则: (1) V . Mises 准则:000(,)()0ij ij F k f k σσ=-= 2 2 001 1 ()(),()2 3ij ij ij s f s s J k σσ===第二应力不变量1122221 ,() 3 ij ij ij m m s σδσσσσσ=-=++偏应力张量:平均应力: (2) Tresca 准则(最大剪应力准则): 0max ()0ij s F S ττ=-=

2.流动法则 V . Mises 流动法则: 0(,)()ij ij p ij ij ij F k f d d d σσελ λ σσ??==??, 0d λ> 待定有限量 塑性应变增量 p ij d ε 沿屈服面当前应力点的法线方向增加。 因此,称为法向流动法则。 3.硬化法则: (1)各向同性硬化:(,)()0ij ij F k f k σσ=-=

《数值分析简明教程》讲义

第1章 绪论 数值计算方法是一门与计算机使用密切结合的实用性很强的数学课程,其特点如下: 第一,面向计算机,要根据计算机特点提供实际可行的有效算法,即算法只能包括加、减、 乘、除运算和逻辑运算,是计算机能直接处理的。 第二,有可靠的理论分析,能任意逼近并达到精度要求,对近似算法要保证收敛性和数值稳 定性,还要对误差进行分析,这些都建立在相应数学理论基础上。 第三,要有好的计算复杂性,时间复杂性好是指节省时间,空间复杂性好是指节省存储量, 这也是建立算法要研究的问题,它关系到算法能否在计算机上实现。 第四,要有数值实验,即任何一个算法除了从理论上要满足上述三点外,还要通过数值试验 证明是行之有效的。 1.1 误差的基本概念 除了极个别的情况外,数值计算总是近似计算,实际计算结果与理论结果之间存在着误差。 数值分析的任务之一是将误差控制在一定的容许范围内或者至少对误差有所估计。 一、误差的来源 1、模型误差 用计算机解决科学计算问题首先要建立数学模型,它是对被描述的实际问题进行抽象,简化而得到的,因而是近似的,数学模型与实际问题之间出现的这种误差称为模型误差。这种误差可忽略不计,在数值计算方法中不予讨论。 2、观测误差 在数学模型中往往还有一些根据观测得到的物理量,如温度,长度,电压等等,测量的结果不可能绝对正确,由此产生的误差称为观测误差。观测误差在数值计算方法中也不予讨论。 3、截断误差(方法误差) 在数学模型不能得到精确解时,通常要用数值方法求它的近似解,其近似解与精确解之间的误差称为截断误差或方法误差。 4、舍入误差 在计算过程中,由于计算机的字长有限,采用计算机数系中和实际数据比较接近的数来表示,由此产生的误差以及计算过程又可能产生新的误差,这些误差称为舍入误差。。 二、绝对误差和相对误差 1、绝对误差秘绝对误差限 设数x (精确值)有一个近似值为* x ,记 *)(x x x e -= 称e(x)为近似值* x 的绝对误差,简称误差。 当e(x)为正时,近似值* x 偏大,叫做强近似值 ;当它为负时,近似值* x 偏小,叫作弱近似值。 准确值x 一般是未知的,因而绝对误差 )(*x e 也是未知的,但往往可以估计出绝对误差的一个上界,即可以找出一个正数η, 使 η ≤*)(x e 称η为* x 的绝对误差限(或误差限)。 显然,误差限η总是正数,且η≤-||* x x ,在应用上常常采用如下写法: η±=*x x 例:用毫米刻度的米尺测量一长度x 时,如果该长度接近某一刻度* x ,则* x 作为x 的 近似值时 21 )(≤ -=**x x x e (毫米)=0.5(毫米)

数值分析实验报告

学生实验报告实验课程名称 开课实验室 学院年级专业班 学生姓名学号 开课时间至学年学期

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 ?? ???? ?? ???? ?? ???? = ?? ???? - ?? ???? - ???? ?? 得到如下结果:

数值分析讲义

第1章数值分析中的误差 一、重点内容 误差设精确值 x* 的近似值x,差e=x-x* 称为近似值x 的误差(绝对误差)。 误差限近似值 x 的误差限是误差 e 的一个上界,即 |e|=|x-x*|≤ε。 相对误差er是误差e 与精确值x* 的比值,。常用计算。 相对误差限是相对误差的最大限度,,常用计算相对误差限。 绝对误差的运算: ε(x1±x2)=ε(x1)+ε(x2) ε(x1x2)≈|x1|ε(x2)+|x2|ε(x1) 有效数字如果近似值 x 的误差限ε 是它某一个数位的半个单位,我们就说x 准确到该位。从这一位起到前面第一个非 0 数字为止的所有数字称为x 的有效数字。 关于有效数字: (1) 设精确值 x* 的近似值x, x=±0.a1a2…an×10m a1,a2,…,an是 0~9 之中的自然数,且a1≠0, |x-x*|≤ε=0.5×10m-l,1≤l≤n 则x 有l位有效数字. (2) 设近似值x=±0.a1a2…an×10m有n 位有效数字,则其相对误差 限 (3) 设近似值x=±0.a1a2…an×10m的相对误差限不大 于 则它至少有n 位有效数字。

(4) 要求精确到10-3,取该数的近似值应保留 4 位小数。 一个近似值的相对误差是与准确数字有关系的,准确数字是从一个数的第一位有效数字一直数到它的绝对误差的第一位有效数字的前一位,例如具有绝对误差e =0.0926 的数x=20.7426 只有三位准确数字 2,0,7。 一般粗略地说,具有一位准确数字,相对于其相对误差为 10% 的量级;有二位准确数字,相对于其相对误差为 1% 的量级;有三位准确数字,相对于其相对误差为 0.1% 的量级。 二、实例 例1 设 x*==3.1415926… 近似值x=3.14=0.314×101,即m=1,它的误差是0.001526…,有 |x-x*|=0.001526…≤0.5×101-3 即l=3,故x=3.14 有 3 位有效数字。x=3.14 准确到小数点后第 2 位。 又近似值x=3.1416,它的误差是0.0000074…,有 |x-x*|=0.0000074…≤0.5×101-5 即m=1,l=5,x=3.1416 有 5 位有效数字。 而近似值x=3.1415,它的误差是0.0000926…,有 |x-x*|=0.0000926…≤0.5×101-4 即m=1,l=4,x=3.1415 有 4 位有效数字。 这就是说某数有 s 位数,若末位数字是四舍五入得到的,那么该数有 s 位有效数字;若末位数字不是四舍五入得到的,那么该数有 s 位或 s-1 位有效数字。 例2 指出下列各数具有几位有效数字,及其绝对误差限和相对误差限: 2.000 4 -0.002 00 9 000 9 000.00 解因为x1=2.000 4=0.200 04×101,它的误差限 0.000 05=0.5×10 1―5,即m=1,l=5,故x1=2.000 4 有 5 位有效数字。相对误差限 。 x2=-0.002 00,误差限 0.000 005,因为 m=-2,l=3,x2=-0.002 00 有 3 位有效数字。相对误差限r=0.000 005/0.002 00=0.25%。 x3=9 000,绝对误差限为 0.5,因为m=4,l=4,x3=9 000 有 4 位有效数字,相对误差限r=0.5/9 000=0.005 6%。 x4=9 000.00,绝对误差限 0.005,因为m=4,l=6,x4=9 000.00 有 6 位有效数字,相对误差限为r=0.005/9 000.00=0.000 056%。 由x3 与x4 可以看到小数点之后的 0,不是可有可无的,它是有实际意义的。 例3 ln2=0.69314718…,精确到 10-3 的近似值是多少?

演讲稿数值分析应用实例.doc

非线性方程求根 问题:在相距100m的两座建筑物(高度相等的点)之间悬挂一根电缆,仅允许电缆在中间最多下垂1m,试计算所需电缆的长度。 设空中电缆的曲线(悬链线)方程为 ] , [ , ) ( 50 50 2 - ∈ + = - x e e a y a x a x (1) 由题设知曲线的最低点)) ( , (0 0y与最高点)) ( , (50 50y之间的高度差为1m,所以有 1 2 50 50 + = +- a e e a a a) ( (2) 由上述方程解出a后,电缆长度可用下式计算: ) ( ) (a a a x a x L e e a dx e e dx x y ds L 50 50 50 50 50 2 1- - - - = ? ? ? ? ? ? + = ' + = =? ? ?(3) 相关Matlab命令: 1、描绘函数] , [ , ) ( ) (1500 500 1 2 50 50 ∈ - - + = - a a e e a a y a a 的图形;

2、用fzero 命令求方程在1250=a 附近的根的近似值x ,并计算)(x y 的函数值; 3、编写二分法程序,用二分法求0=)(a y 在],[13001200内的根,误差不超过310-,并给出对分次数; 4、编写Newton 迭代法程序,并求0=)(a y 在],[13001200内的根,误差不超过310-,并给出迭代次数。 5、编写Newton 割线法程序,并求0=)(a y 在],[13001200内的根,误差不超过310-,并给出迭代次数。

线性方程组求解应用实例 问题:投入产出分析 国民经济各个部门之间存在相互依存的关系,每个部门在运转中将其他部门的产品或半成品(称为投入)经过加工变为自己的产品(称为产出),如何根据各部门间的投入产出关系,确定各部门的产出水平,以满足社会需求,是投入产出分析中研究的课题。考虑下面的例子: 设国民经济由农业、制造业和服务业三个部门构成,已知某年它们之间的投入产出关系、外部需求、初始投入等如表1所示(数字表示产值)。 表1 国民经济三个部门间的关系单位:亿元 假定总投入等于总产出,并且每个部门的产出与它的投入成正比,由上表可以确定三个部门的投入产出表:如表2所示。 表2 三个部门的投入产出表

数值分析讲义线性方程组的解法

数值分析讲义 第三章线性方程组的解法 §3.0 引言 §3.1 雅可比(Jacobi)迭代法 §3.2 高斯-塞德尔(Gauss-Seidel)迭代法 §3.3 超松驰迭代法§3.7 三角分解法 §3.4 迭代法的收敛性§3.8 追赶法 §3.5 高斯消去法§3.9 其它应用 §3.6 高斯主元素消去法§3.10 误差分析 §3 作业讲评3 §3.11 总结

§3.0 引言 重要性:解线性代数方程组的有效方法在计算数学和科学计算中具有特殊的地位和作用.如弹性力学、电路分析、热传导和振动、以及社会科学及定量分析商业经济中的各种问题. 分类:线性方程组的解法可分为直接法和迭代法两种方法. (a) 直接法:对于给定的方程组,在没有舍入误差的假设下,能在预定的运算次数内求得精确解.最基本的直接法是Gauss消去法,重要的直接法全都受到Gauss消去法的启发.计算代价高. (b) 迭代法:基于一定的递推格式,产生逼近方程组精确解的近似序列.收敛性是其为迭代法的前提,此外,存在收敛速度与误差估计问题.简单实用,诱人.

§3.1 雅可比Jacobi 迭代法 (AX =b ) 1 基本思想: 与解f (x )=0 的不动点迭代相类似,将AX =b 改写为X =BX +f 的形式,建立雅可比方法的迭代格式:X k +1=BX (k )+f ,其中,B 称为迭代矩阵.其计算精度可控,特别适用于求解系数为大型稀疏矩阵(sparse matrices)的方程组. 2 问题: (a) 如何建立迭代格式? (b) 向量序列{X k }是否收敛以及收敛条件? 3 例题分析: 考虑解方程组??? ??=+--=-+-=--2.453.82102 .72103 21321321x x x x x x x x x (1) 其准确解为X *={1, 1.2, 1.3}. 建立与式(1)相等价的形式: ??? ??++=++=++=84.02.01.083.02.01.072 .02.01.02 13312321x x x x x x x x x (2) 据此建立迭代公式: ?????++=++=++=+++84 .02.01.083.02.01.072.02.01.0)(2)(1)1(3 )(3 )(1)1(23)(2)1(1k k k k k k k k k x x x x x x x x x (3) 取迭代初值0) 0(3 )0(2)0(1===x x x ,迭代结果如下表. JocabiMethodP31.cpp

数值分析实验报告资料

机电工程学院 机械工程 陈星星 6720150109 《数值分析》课程设计实验报告 实验一 函数插值方法 一、问题提出 对于给定的一元函数)(x f y =的n+1个节点值(),0,1,,j j y f x j n ==。试用Lagrange 公式求其插值多项式或分段二次Lagrange 插值多项式。 数据如下: (1 求五次Lagrange 多项式5L ()x ,计算(0.596)f ,(0.99)f 的值。(提示:结果为(0.596)0.625732f ≈, (0.99) 1.05423f ≈) 实验步骤: 第一步:先在matlab 中定义lagran 的M 文件为拉格朗日函数 代码为: function[c,l]=lagran(x,y) w=length(x); n=w-1; l=zeros(w,w); for k=1:n+1 v=1; for j=1:n+1 if(k~=j) v=conv(v,poly(x(j)))/(x(k)-x(j)); end end l(k,:)=v; end c=y*l; end

第二步:然后在matlab命令窗口输入: >>>> x=[0.4 0.55 0.65 0.80,0.95 1.05];y=[0.41075 0.57815 0.69675 0.90 1.00 1.25382]; >>p = lagran(x,y) 回车得到: P = 121.6264 -422.7503 572.5667 -377.2549 121.9718 -15.0845 由此得出所求拉格朗日多项式为 p(x)=121.6264x5-422.7503x4+572.5667x3-377.2549x2+121.9718x-15.0845 第三步:在编辑窗口输入如下命令: >> x=[0.4 0.55 0.65 0.80,0.95 1.05]; >> y=121.6264*x.^5-422.7503*x.^4+572.5667*x.^3-377.2549*x.^2+121.9718 *x-15.0845; >> plot(x,y) 命令执行后得到如下图所示图形,然后 >> x=0.596; >> y=121.6264*x.^5-422.7503*x.^4+572.5667*x.^3-377.2549*x.^2+121.9718 *x-15.084 y =0.6257 得到f(0.596)=0.6257 同理得到f(0.99)=1.0542

相关文档
最新文档