Transcript ch1 引言

工程数学

杨圣洪

13007432216 (手机)


2264454709(QQ)
[email protected]
工程数学—引言


工程数学:复变函数、线性代数、概率论、场
论、数值计算或计算数学 ,等工程方面数学
计算过程






建模。用一个方程表示,还一个图。
设计求解数模的算法。伪代码,自然语言
编码实现,语言不限,matlab.m也可
用观测数据或原始公知数据进行运算。
可视化运算结果。图、表化,画很多的曲线
分析曲线,引出结果,提升自己算法的江湖地位。
设计求解数模的算法—核心

问题可算化:



有限维--代—无限维,多项式连续函数
有限过程—代-无限过程
定积分-数值积分 无穷级数取有限项
简单—代—复杂 ,尤其简单不断重复


如 简单重复xk+1=(xk+c/xk)/2求sqrt(c)
算法简单了,但在一定误差范围内与原问题
等价。
设计求解数模的算法—核心









秦九韶(中国 1202-1261)或Horner算法
p(x)=5+6x+7x2+8x3+9x4.
乘法:1+2+3+4 加法:4
p(x)=5+x(6+7(x+8(x+9x)))
乘法:4---n 加法:4
对于一般式p(x)=a0+a1x1+a2x2…anxn.
b0=an, bk=an-k+bk-1x, (算例写黑板)
乘法:n(n+1)/2n,效率提高了!
加法:n不变
设计求解数模的算法—核心






求行列式的值Dn=|…|(板)
Dn=(-1)t(i1,i2,…,in) ai1,1ai2,2…ain,n.
乘法次数 n!(n-1) 4阶实例
n=20, 乘法:20*19=4.6*1019,
3.3亿亿=3.3万万亿=3.3*108*108.
4.6*1019/3.3*1016=4.6*1000/3.3=1394=23.2
4G=4*1024*1024*1024=4294967296
4.6*1019/4294967296/3600/24/365=339年
转换三角形 (n-1)2+(n-2)2+…+1+(n-1)
=n(n-1)(2n-1)/6+(n-1) 4阶实例
第二节:误差分析

误差分类





模型误差:少次要因素如飞行器,
观测(数据)误差:参数值测不准,预处理
公式(截断)误差:公式的近似式。sin(x)
舍入误差:能表示数有限,故存贮与计算总
要取舍,3.1415926897,8位机要舍
例:地球表面积A
第二节:误差分析








绝对误差:(x)=x'-x , x'=x+(x)
由于x不知求不出,
|(x)|,为最后位半个单位
如:1800mm0.5mm,
0.5*10-n.到10-n是精确的,精确点后n位
10-(n+1)就看不准了,画图
相对误差:(x)=(x)/x
 (x)/x’.(2者差去推导)
第二节:误差分析

浮点数与有效数字







x=3.14159265 x’=3.14
y=314.159265 y’=314.16 精度高!
z=0.0314159265 z’=0.03
有效数字多,精度高!浮点数标准式
fl(x)=0.a1a2…atm,t字长 进制
如t=3,  =2,m=0,1,2 第一个数字非0
3位2进制:6组+0,其他以近似表示
第二节:误差分析

误差分类





模型误差:少次要因素如飞行器,
观测(数据)误差:参数值测不准,预处理
公式(截断)误差:公式的近似式。sin(x)
舍入误差:能表示数有限,故存贮与计算总
要取舍,3.1415926897,8位机要舍
例:地球表面积A
第二节:误差分析—舍入误差
fl(x)=0.a1a2…at m进制,t字长
如t=3,  =2,m=0,1,2 a1非0,浮点到非0
m m=0,1,2
fl(x)=0.a1a2a32

a1=1,a2=0,1,a3=0,1 m=0,1,2共2(t-1)*3
0.100,0.101,0.110, 0.111 m=0 ,乘20
0.5, 0.625, 0.750, 0.875
0.100,0.101, 0.110, 0.111 m=1 ,乘21点右移1位
1.0, 1.25, 1.50, 1. 75
0.100,0.101,0.110,0.111 m=1 ,乘22点右移2位
2.0, 2.5, 3. 0, 3. 5 12个与0,3位实数很多
如0.51,0.53 表示为0.50,舍入误差:0.01,0.03,少于
0.125(1/8)的一半0.0625, 又如0.57,近似为0.625
第二节:误差分析—舍入误差
fl(x)=0.a1a2…at m进制,t字长
x'=a1a2…am.b1b2…bn.
|(x)|=|x'-x|/|x|
a1至少为1

0.5*10-n/(0.a1*10m)5*10-(n+m).
在字长为t的十进制的浮点数,表示为:
m (a 0)
 x'=0.a1a2…at*10
1
|(x)|=|x'-x|/|x|
a1至少为1

0.5*10-n/(0.a1)5*10-t.
舍入相对误差!与字长相关!

第二节:误差分析--误差的传播
0.1%---2.3% 观误扩大23倍

误差的传播 (p9)
实例ABC面积 a=100,b=101 C=PI/180。
sqrt(a2+b2-2abcosC)=
sqrt((b-a)2+4absin2C/2 观误a=100.1
公式
真值 近似值 相差误差*100
a
100
100.1 (0.1/100 )*100
b-a
1
0.9
-0.1/1=10
(b-a)2
1
0.81
-0.19/1=19
4absin2C/2 3.0765 3.0796 0.0031/3.0765
前二者和
4.0765 3.8896 -0.1869/4.0765
sqrt(..)
2.0190 1.9722 -0.0468/2.0190
第二节:误差分析
0.1%---2.3% 观误扩大23倍

误差的传播 (p9)—原因与预防
 (x1+x2)=(x1'+x2')-(x1+x2)=(x1)+(x2)

(x1+x2)= (x1+x2)/(x1+x2) (在板上推)
=x1x1/(x1+x2)+x2x2/(x1+x2)
若分母(x1+x2)很小(符号异值相近数相加),则
误差放得很大!(板)
(x1-x2)= (x1-x2)/(x1-x2) (板)
=x1x1/(x1-x2)-x2x2/(x1-x2)
刚才求面积的属于此情况!

第二节:误差分析
0.1%---2.3% 扩大23倍

误差的传播 (p10)
 (x1x2)=x1'x2'-x1x2=(x1+(x1))(x2+(x2) )

=x1(x2) +x2(x1)+(x1) (x2)
若x1或x2很大,则绝对误差很大,相对误差
(x1x2)=(x1(x2) +x2(x1)/(x1x2)
=((x2)/x2 +(x1)/x1=(x1)+(x2)
乘法的相对误差=各个相加,也会起来越大!
第二节:误差分析
0.1%---2.3% 扩大23倍

误差的传播 (p10)
(x1/x2)=x1'/x2'-x1/x2
 =(x1+(x1))/(x2+(x2))-x1/x2

=[..]/[x2(x2+(x2))]=[..]/[x2x2]
= (x1)/x2-x1(x2)/(x2)2.
若x2很小,则绝对误差很大,但相对误差基本不变
(x1/x2)= (x1)-(x2)
(x1x2)=(x1)+(x2)
第二节:误差分析
0.1%---2.3% 扩大23倍
例2:500[sqrt(501)-sqrt(500)) 相近两数相减
计算值=500(sqrt(501)-sqrt(500))

=500(22.3830-22.3607)=500*0.0223=11.1500
f(500)=11.1748
误差=-0.0248 相对=-0.0022

转换x/(sqrt(x+1)-sqrt(x))
计算值=500/(sqrt(501)+sqrt(500))

=500/(22.3830+22.3607)

=500/44.7437=11.1748
f(500)=11.1748
误差=0.0 相对=0.
转换公式免相近两数相减,实力相当互掐!3数

第二节:误差分析
0.1%---2.3% 扩大23倍
例3:x2-(109+1)x+109=0

(x-109)(x-1)=0 得到 x1=109,x2=1
4位有效数字
 =b2-4ac=(109+1)2 - 4*1*109
 =(0.1000*1010+0.0000000001*1010)2
-0.4000*101*0.1000*1010
避免大吃小!
=0.1000*1019-0.4000*1011
=0.1000*1019-0.0000000004000*1020 避免大吃小!
=0.1000*1019=1.000*1018
x1=(0.1000*1010+sqrt(1.0000*1018)/(0.2000*10)=109.
10
18
x2=(0.1000*10 -sqrt(1.0000*10 )/(0.2000*10)=0.

避免相近两数减

第二节:误差分析
0.1%---2.3% 扩大23倍
例3:x2-(109+1)x+109=0

x=(-b-sgn(b)sqrt(b2-4ac))/(2a) 避相近两数减
=b2-4ac=(109+1)2 - 4*1*109
10
10 2
 =(0.1000*10 +0.0000000001*10 ) 大吃小!
-0.4000*101*0.1000*1010
=0.1000*1019-0.4000*1011
=0.1000*1019-0.0000000004000*1020 大吃小!
=0.1000*1019=1.000*1018
x1=(0.1000*1010+sqrt(1.0000*1018)/(0.2000*10)=109.
9
9
x1x2=c/a ,x2=c/(a*x1)=10 /(1*10 )=1 同量级相除

第二节:误差分析
0.1%---2.3% 扩大23倍
例2:500[sqrt(501)-sqrt(500)) 相近两数相减
计算值=500(sqrt(501)-sqrt(500))

=500(22.3830-22.3607)=500*0.0223=11.1500
f(500)=11.1748
误差=-0.0248 相对=-0.0022

转换x/(sqrt(x+1)-sqrt(x))
计算值=500/(sqrt(501)+sqrt(500))

=500/(22.3830+22.3607)

=500/44.7437=11.1748
f(500)=11.1748
误差=0.0 相对=0.
转换公式免相近两数相减,实力相当互掐!3数

第二节:误差分析
0.1%---2.3% 扩大23倍
多数相加—绝对值从小到大相加 (p13)

记fl(x):x的机器表示式数
=(x)=(fl(x)-x)/x,则fl(x)=x(1+),形式上:
fl(x1+x2)=(x1+x2)(1+1)
 fl(x1-x2)=(x1-x2)(1+2)
fl(x1x2)=(x1x2)(1+3)
fl(x1/x2)=(x1/x2)(1+4)


考虑多数相加的误差传播
第二节:误差分析
多数相加—从绝对值小到大相加 p13
fl(fl(x1+x2)+x3)=fl((x1+x2)(1+1)+x3)
 =((x1+x2)(1+1)+x3)(1+2)
 =(x1+x2+x3)(1+)
其中 =2+(x1+x2)1(1+2)/(x1+x2+x3)
fl(x1+fl(x2+x3))
=(x1+x2+x3)(1+')
'='2+(x2+x3)'1(1+'2)/(x1+x2+x3)
 , ', 1, 2, '1, '2相差无几,
若|(x1+x2)|<|(x2+x3)|,则< '
故让小的先加

第二节:误差分析
多数相加—从绝对值小到大相加 p13
例4位浮点 A=12340+1+2+3+4
5
5
=((((0.1234*10 +0.00001*10 )+0.00002*1
05)+0.00003*105)+0.00004*105) 大吃小了
=(((0.1234*105+0.00002*105)+0.00003*10
5)+0.00004*105)=0.1234*105.
同数量级即对齐才能相加!
=0.1234*105+(0.1*101+0.2*101+0.3*101+0
.4*101)= 0.1234*105 +(1*101)
5
5
= 0.1234*10 +0.0001*10
= 0.1235*105 +0.0001*105

第三节:算法的稳定性
误差总是难免的,但不要阻挡前进路
对于舍入误差:
(1)避免|x1+x2|与|x1-x2|很小
(2)同量级加,小加小,聚小成大再加大
(3)大数相乘时,绝对误差会放大

除小数时,绝对误差会放大

相对误差相加。
观测误差呢?

第三节:算法的稳定性
误差总是难免的,但不要阻挡前进路
观测误差呢?
(f(x))=f(x')-f(x)=f'(x)x+f''()(x)2/2

f'(x)x
(f(x)=(f(x))/f(x) f'(x)x/f(x)

=xf'(x)x/f(x)
xf'(x)/f(x)小,则误差可控!迭代可控
希望找到的算法,将误差不断缩小,最
多是相加或相减,不能是倍增呀。

第三节:算法的稳定性
病态方程

例1:舍入误差引起解无效p14,2位有效数字
1
1
11

 x1  2 x 2  3 x3  6
 1
1
1
13
x
1

x
2

x
3


3
4
12
2
 1 x1  1 x 2  1 x3  47
 3
4
5
60

精确解:(1,1,1)
 x1  0.50 x 2  0.33x3  1.8
解:

 0.55 x1  0.33x2  0.25 x3  1.1
0.33x1  0.25 x 2  0.20 x3  0.76 (-6.222,38.25,-33.65)


病态方程
第三节:算法的稳定性
病态方程
例1:舍入误差引起解无效p14
例2:wilkinson多项式
20
19
(x-1)(x-2)…(x-20)=x -210x +…+20!
精确解:1,2,3,…,20
a19'=a19+10-7,微小扰动,则产生剧烈变化
差之毫厘,失之千里! 此乃病态!
非病态方程称为良性方程,也会因为舍入误差
引起错误!一元二次方程解!
