数值计算从这里启航

数值计算从这里启航

做数值的初衷

第一次写博客,博客上的编辑器用的不太熟练,以后会慢慢改进。最近在学习数值计算,所以我打算做一个以数值计算为主题的专题,一方面是回顾一下所学的知识,另一方面是希望将我的一些经验分享给大家。作为一名学生党,我很清楚学习不是一件很轻松的事(对绝大多数人来说),经常需要参考课堂以外的资料以及借鉴前人的经验,不是说鼓励抄袭或者不主张独立思考什么的,而是说一个人的能力确实有限,尽量要站在巨人的肩膀上看世界。可能数值计算这方面本站有很多牛人已经分享过经验了,不过我这里只是总结归纳,一期一期地讲,尽可能细致一点,当然有错误的地方欢迎指正。那么,题外话就不多说了,进入正题吧。

简单介绍

数值计算这门课,怎么说呢,一方面对数学的要求是比较高的,另一方面对程序语言的应用能力也是比较高的,这两方面后面会慢慢体现出来。基本上所有的数值计算课程都是从计算机的数系、误差、算法的数值稳定开始的,这里我们也不例外,首先讲讲计算机中的数系吧。

计算机的数系

β进制数

所谓β进制数其实就是以β为进制的数,说人话就是

X = ± ( a n − 1 β n − 1 + a n − 2 β n − 2 + a n − 3 β n − 3 + … + a 1 β 1 + a 0 β 0 + a − 1 β − 1 + a − 2 β − 2 + … + a − m β − m ) = ± ( a n − 1 a n − 2 a n − 3 … a 0 a − 1 a − 2 … a − m ) β X=±(a_{n-1}β^{n-1}+ a_{n-2}β^{n-2}+ a_{n-3}β^{n-3}+…+ a_{1}β^{1}+ a_{0}β^{0}+ a_{-1}β^{-1}+ a_{-2}β^{-2}+…+ a_{-m}β^{-m}) =±(a_{n-1}a_{n-2}a_{n-3}…a_{0}a_{-1}a_{-2}…a_{-m})β X=±(an1βn1+an2βn2+an3βn3++a1β1+a0β0+a1β1+a2β2++amβm)=±(an1an2an3a0a1a2am)β,其中0≤ a k a_{k} ak<β为整数.

我们平常在做数值计算的时候用的比较多的是十进制数、二进制数、十六进制数.这里关于进制数之间的转换咱就不提了(说白了就是不想码公式)

数的浮点表示

规格化的浮点数:要求小数点后第一位数字非0.在β进制下,规格化的浮点数就可以表示成
0. a 1 a 2 . . . a s × β c 0.a_{1}a_{2}...a_{s} \times \beta ^{c} 0.a1a2...as×βc
其中,1 ≦ a 1 < β \leqq a_{1}\lt\beta a1<β, 0 ≦ a i < β , i = 2 , 3 , . . . , s . 0\leqq a_{i}\lt\beta,i=2,3,...,s. 0ai<β,i=2,3,...,s. 0. a 1 a 2 . . . a s 0.a_{1}a_{2}...a_{s} 0.a1a2...as为浮点数的尾数部分, s ⩾ 1 s\geqslant1 s1为整数.c为阶码为β进制的整数.
例如:
0.11001 × 2 − 110 , 0.11001\times2^{-110}, 0.11001×2110,二进制

0.77 × 1 0 12 , 0.77\times10^{12}, 0.77×1012,十进制

计算机的数系

对浮点数有一个大概的认识了之后,我们还应该了解到什么样的数计算机可以表示出来,那么显然的,计算机表示的数位数是有限的.
事实上机器的数系由 ( β . t . M . m ) (\beta.t.M.m) (β.t.M.m)所确定,其中t为计算机的字长,m和M确定阶码c的范围,即 m ≦ c ≦ M m\leqq c\leqq M mcM,一般而言 n = − M n=-M n=M,或 n = − M + 1. n=-M+1. n=M+1.记机器的数系就为 F ( β , t , m , M ) F(\beta,t,m,M) F(β,t,m,M).下面我们就简记为F.显然对任意f属于F,成立
β m − 1 ≦ ∣ f ∣ ≦ ( 1 − β − t ) β M \beta^{m-1}\leqq|f|\leqq(1-\beta^{-t})\beta^{M} βm1f(1βt)βM
(推不出来的同学可以代几个实际的数验证一下,其实挺简单的)
那么这样一来计算机中所有十进制的数包括0的规格化浮点数个数就为:
18 × 1 0 t − 1 × ( M − m + 1 ) + 1 18\times10^{t-1}\times(M-m+1)+1 18×10t1×(Mm+1)+1
一般基数为 β \beta β的规格化浮点数个数为:
2 ( β − 1 ) β t − 1 × ( M − m + 1 ) + 1 2(\beta-1)\beta^{t-1}\times(M-m+1)+1 2(β1)βt1×(Mm+1)+1
− − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − --------------------------------
这次就先简单介绍一下计算机中数的表示,下次我们就接着聊聊误差
(第一次写博客是真的不容易。。。哎!尤其是公式码得我脑阔疼)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值