《数值分析》学习,基础知识(更新中)

1.多项式求值

抛出一个问题,假设 x = 1 / 2 x=1/2 x=1/2 怎么做才能以最优的方式计算以下方程?
P ( x ) = 2 x 4 + 3 x 3 − 3 x 2 + 5 x − 1 P(x)=2x^4+3x^3-3x^2+5x-1 P(x)=2x4+3x33x2+5x1
最简单的办法就是
p ( 1 2 ) = 2 ∗ 1 2 ∗ 1 2 ∗ 1 2 ∗ 1 2 + 3 ∗ 1 2 ∗ 1 2 ∗ 1 2 − 3 ∗ 1 2 ∗ 1 2 + 5 ∗ 1 2 − 1 p(\frac{1}{2})=2*\frac{1}{2}*\frac{1}{2}*\frac{1}{2}*\frac{1}{2}+3*\frac{1}{2}*\frac{1}{2}*\frac{1}{2}-3*\frac{1}{2}*\frac{1}{2}+5*\frac{1}{2}-1 p(21)=221212121+321212132121+5211

上述式子总共10次乘法,4次加法(计算机中减法是通过加法实现的,具体计算机减法计算过程)。
换个思路:
将方程写成以下形式
P ( x ) = − 1 + x ∗ ( 5 + x ∗ ( − 3 + x ∗ ( 3 + x ∗ 2 ) ) ) P(x)=-1+x*(5+x*(-3+x*(3+x*2))) P(x)=1+x(5+x(3+x(3+x2)))
我们只需要计算,4次乘法,4次加法.这种方法被称为嵌套乘法或者霍纳方法

2.二进制数字

整数的二进制表示以及加减法过程看这里
下面说说小数部分,计算机存储小数是以二进制的形式存储的,而有限的计算机资源并不可能完全表示无穷的小数部分。
举个例子:
我们有十进制下的小数 ( 0.4 ) 10 (0.4)_{10} (0.4)10 他的二进制表示是这样的:
0.42 = 0.8 < 1 整数部分 0 余 0.4
0.8
2 = 1.6 > 1 整数部分 1 余 0.6
0.6*2 = 1.2 > 1 整数部分 1 余 0.2

简单来说就是小数部分不断与2相乘记录整数部分。最后 ( 0.4 ) 10 (0.4)_{10} (0.4)10的二进制表示是无穷的 ( 0.011011011..... ) 2 (0.011011011.....)_{2} (0.011011011.....)2,计算机在存储该小数部分的时候会简单舍去 (或者通过某种规则舍去)无效部分,这就是精度丢失。

加入我们得到一个二进制的小数,如何恢复成十进制呢?
( 0.1011 ) 2 (0.1011)_{2} (0.1011)2,将其转化成十进制:
2 − 1 + 0 + 2 − 3 + 2 − 4 = 1 2 + 1 8 + 1 16 = 11 16 2^{-1}+0+2^{-3}+2^{-4}=\frac{1}{2}+\frac{1}{8}+\frac{1}{16}=\frac{11}{16} 21+0+23+24=21+81+161=1611

3.实数的浮点表示

用有限的计算机资源表示无穷的浮点数会造成不可避免的精度损失,而这些损失在计算一些数学问题的时候会把误差累加到一个非常大的规模。本小节主要讨论就是这个问题。
浮点数包含三个部分:符号,尾数,指数

精度符号指数尾数
单精度1823
双精度11152
长双精度11564
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值