- 在线时间
- 129 小时
- 最后登录
- 2015-5-8
- 注册时间
- 2014-3-6
- 听众数
- 11
- 收听数
- 0
- 能力
- 0 分
- 体力
- 3046 点
- 威望
- 0 点
- 阅读权限
- 60
- 积分
- 1103
- 相册
- 1
- 日志
- 0
- 记录
- 4
- 帖子
- 367
- 主题
- 69
- 精华
- 0
- 分享
- 0
- 好友
- 49
升级   10.3% TA的每日心情 | 奋斗 2015-5-8 18:47 |
|---|
签到天数: 193 天 [LV.7]常住居民III
- 自我介绍
- 一个喜欢数学建模,却还处于懵懂状态的人
 |
数值分析分析是研究用计算机求解各种数学计算问题的数值计算方法及其理论与软件实现的学科。也可以认为数值分析就是介绍如何用计算机来解决数学问题,以各种各样的程序语言来设计出数值计算程序,然后依靠计算机的强大计算能力来求解这些数学问题,数值分析对数学理论与程序设计并重。' t* O6 V* b& y3 T
运用数值分析解决问题的过程可分为如下几步:实际问题→数学模型→数值计算方法→程序设计→上机计算求出结果。
" E/ L* h4 ?: j! m$ h数值分析这门学科有如下特点:- ~2 D( c8 v* @: k7 E* O7 r" g
1、 面向计算机。' t& x- T( o; b+ \
2、 有可靠的理论分析
" q6 g1 L0 D( `9 T- h0 o$ L3、 要有好的计算复杂性。$ L& L( \6 |! Z. p
4、 要有数值实验。* H7 a# Q% X1 ]' }4 J+ F
5、 要对算法进行误差分析。+ C- e, s% ^& {! m# B2 K
数值分析包括的主要内容有插值法、函数逼近、曲线拟合、数值积分、数值微分、解线性方程组的直接方法,解线性方程组的迭代法,非线性方程球根,微分方程的数值解法。
G2 L1 A9 R7 Z1 Y1插值法
8 e- k6 |( B, V插值法是函数逼近的一种重要方法,是数值计算的基本内容。! O, Z& N8 k) {" Q6 P- S
(1)拉格朗日插值
# o& Q3 ~" l4 A7 _拉格朗日插值是n次多项式插值,求n次多项式插值函数问题就是构造插值基函数。其基本思想是将求的n次多项式插值函数 改写成另一种表示方式,再利用插值条件确定其中的待定函数,从而求出插值多项式。
3 P0 I7 t8 s+ h两点 和 做一条直线。 为确定a,b,把两点带入方程,
; B: G! r5 @! S( ]4 g 令 " W+ l3 ^. S7 c! c% N
把 叫做点 的一次插值基函数。
* p9 p7 n" D/ Q7 V9 F* d& E(2)牛顿插值2 g5 W: D5 K/ Z6 K5 ]+ R5 {8 a2 M
基本思路:* p& m. w+ _4 W' a& @& D
给定插值点序列( 。构造牛顿插值多项式 。输入要计算的函数点 并计算 的值,利用牛顿插值公式,当增加一个节点时,只需在后面多计算一项,而前面的计算仍有用;另一方面 的各项系数恰好又是各阶差商,而各阶差商可用差商公式来计算。5 l" t/ `! x' `; c9 U8 s9 t
公式:& I5 [0 e9 m' I/ q1 G! t ~8 i
6 }" _. q8 t' T9 y/ |4 X' U
2非线性方程求根
) x4 p8 n! U* \- j; J& o. l 执行步骤' j5 l4 x4 E% d' j' u* I0 I
1.计算f (x)在有解区间[a, b]端点处的值,f (a),f (b)。
( @7 N1 ^! i$ e" m1 @! @ 2.计算f (x)在区间中点 处的值f (x1)。1 L9 c" a. w. O4 P1 h
3.判断若f (x1) = 0,则 即是根,否则检验:/ M9 F8 h( m! ], ?/ w6 ^
(1)若f (x1)与f (a)异号,则知解位于区间[a, x1],以x-1代替b;
$ S1 p. T9 i5 \, I (2)若f (x1)与f (a)同号,则知解位于区间[x1, b],x1代替a。* }( `- a% @. W( c0 S9 ^/ k6 N
反复执行步骤2、3,便可得到一系列有根区间:(a, b), (a1, b1), …, (ak, bk), …
/ z- n4 g: h0 _( P: d2 C! q4 B+ q其中每个区间都是前一个区间的一半,因此区间长度为 这些区间最终必收敛于一点x*,该点就是所求的根。. }- |( R( W" H- {: S
3迭代法: b9 S5 Z+ Z" Y% R+ F
迭代法是求方程近似根的一个重要方法,也是计算方法中的一种基本方法
+ Q) [: f/ i7 s1 e' n* a(1)简单迭代法
: J. z$ U9 O; K! x简单迭代法的基本思想是:将方程f (x) = 0化为一个等价的方程 (1)/ G+ Y7 K2 |1 y `2 l. q
从而构成序列 (2)
* [; \6 z; l- L8 P( j给定一个初值x0,可算得x1 = j (x0),再将x1又可得x2 =j (x1),…。我们称{xk}为迭代序列,而称(1)中的j (x)为迭代函数,(2)为迭代格式。如果 连续,迭代序列{ }收敛于x*,则x*就是方程(2)的解。8 n) s0 U: q) _
所以,如果迭代序列收敛,总能收敛于原方程的解。实际计算中,无穷过程不可能实现,只迭代到一定程度,取xk+1作为原方程的近似根。这种求根方法称为简单迭代法。1 b2 E, M# L+ r( w' l1 g
序列{ }的收敛速度,取决于曲线 在根附近的斜率 ,由拉格朗日定理可知 其中x k在xk和xk-1之间。所以在根x*附近,|j’(x) |恒小于1,则此迭代序列收敛,若|j’(x) | 1,则此序列发散。
& C. d/ u$ Q" X1 |9 \% n定理:不定点存在定理
' C6 k( v( m& S; R如果 满足下列条件 (1)当xÎ[a, b]时,j(x)Î[a, b] ,(2)存在正常数L<1,当任意x,yÎ[a, b],都有 。则 j (x)在[a, b]上有唯一的根x*。
# s% D, x7 X% L$ N(2)牛顿迭代法- c, p8 Z7 f) _( S
设:已知方程f (x) = 0的一个近似根x0,把f (x)在x0处作泰勒展开,
! L6 M& e8 z w, h8 ~& N
5 g/ e7 c) M6 a$ S# d若取前两项来近似代替f (x)(称为f (x)的线性化),则得近似的线性方程
$ E* w5 p$ R+ |+ s& [8 c7 e0 _ 设 ,解之得3 a2 R8 c, T7 O( H% t. w
我们取x作为原方程f (x) = 0的近似根x1,即 ,一般地f (x) 1 0。: m) Q, { I% B3 z; c7 u; L
再重复用上述方法得 一般地,有迭代公式
+ h( W; L M2 P6 P* J# P 称为求解f (x) = 0的牛顿迭代公式。1 k7 [0 N7 x, |9 B! P H
(3)牛顿下山法
9 ]( Y; \/ V' _由牛顿法的收敛性定理知,牛顿法对初始值x0的选取要求是很高的,为保证收敛,常要利用条件f (x0) × f2 (x0) >0来选取初值x0,但对有些问题,往往很难检验满足条件的初x0,这时我们可利用所谓下山法来扩大初值的选取范围,将牛顿的迭代公式修改为
9 b; x5 r( y# g 其中l是一个参数,l的选取应使 成立 ,当 或 时(其中e 1,e 2为事先给定的精度,称e 1为残量精确度,e 2为根的误差限),就停止迭代,且取x*» xk+1,否则再减小l,继续迭代。3 d& n% s, H$ X& l5 Q4 M
按上述迭代过程计算,实际上得到一个以零为下界的严格单调下降的函数值序列{|f (xk)|}。这个方法就称为牛顿下山法。l称为下山因子,要求满足 ,el为下山因子下界,为了方便,一般开始时可简单地取l = 1,然后逐步分半减少,即可选取 ,且使8 `2 e7 s) @' T
牛顿下山法计算步骤可归纳如下:. N$ Y3 f' w1 H/ Y5 h1 F
(1)选取初始近似值x0;
8 Z5 x; N, `' u# A( s( N (2)取下山因子l = 1;+ _2 |* ^5 i9 |4 G8 \
(3)计算4 [5 m U- c8 L) A: Z
(4)计算f (xk+1),并 与 的大小,分以下二种情况:
8 L9 Y/ X4 U/ L5 k7 s 1)若 ,则当 时,取x*» xk+1,计算过程结束;当 时,则把xk+1作为新的xk值,并重复回到(3)。
f- S9 d5 z8 k) E+ B! g& \ 2)若 ,则当l≤el且 ,取x*» xk,计算过程结束;否则若l≤el,而 时,则把xk+1加上一个适当选定的小正数,即取xk+1+d作为新的xk值,并转向(3)重复计算;当l>el;且 ,则将下山因子缩小一半,取l/2代入,并转向(3)重复计算。% T: G1 e! Y: a% D
牛顿下山法不但放宽了初值x0的选取,且有时对某一初值,虽然用牛顿法不收敛,但用牛顿下山法却可能收敛。/ b* f) c& E+ _7 `$ {
4弦截法和抛物线法- b. Y$ l2 U" G0 R* }. z7 I2 O
牛顿迭代法虽然有较高的收敛速度,但要计算导数值f’ (xk),这对复杂的函数f (x)是不方便的。为避免导数的计算,用平均变化率 来替代迭代公式中的导数 f’ (xk),于是得 按这个公式进行迭代计算就称弦截法。 如果牛顿迭代公式中的导数f’(xk)改用 来代替,就可以得到迭代公式: ,由这个公式确定的迭代法称双点弦截法。- P0 ^1 h9 p% N( y' S
|
zan
|