数值代数及方程数值解:预备知识——二进制及浮点数

2024-03-30 16:20

本文主要是介绍数值代数及方程数值解:预备知识——二进制及浮点数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 二进制
    • IEEE浮点数

本篇文章的前置知识:数学分析

二进制

命题:二进制转化为十进制
二进制的数字表示为 ⋯ b 2 b 1 b 0 . b − 1 b − 2 ⋯ \cdots b_2b_1b_0.b_{-1}b_{-2}\cdots b2b1b0.b1b2这等价于十进制下的
⋯ b 2 × 2 2 + b 1 × 2 1 + b 0 × 2 0 + b − 1 × 2 − 1 + b − 2 × 2 − 2 + ⋯ \cdots b_2\times 2^{2}+b_1\times 2^{1}+b_0\times 2^0+b_{-1}\times 2^{-1}+b_{-2}\times 2^{-2}+\cdots b2×22+b1×21+b0×20+b1×21+b2×22+

命题:十进制转化为二进制
整数部分:十进制整数不断除2,记录除数及余数,直至除数为0,从后往前依次写下余数即为二进制下的数字,如下例 ( 53 ) 10 (53)_{10} (53)10
53 ÷ 2 = 26 余 1 26 ÷ 2 = 13 余 0 13 ÷ 2 = 6 余 1 6 ÷ 2 = 3 余 0 3 ÷ 2 = 1 余 1 1 ÷ 2 = 0 余 1 53\div 2= 26 \text{余} 1\\ 26\div 2=13 \text{余} 0\\ 13\div 2=6 \text{余} 1\\ 6\div 2=3 \text{余} 0\\ 3\div 2=1 \text{余} 1\\ 1\div 2=0 \text{余} 1 53÷2=26126÷2=13013÷2=616÷2=303÷2=111÷2=01则得 ( 53 ) 10 = ( 110101. ) 2 (53)_{10}=(110101.)_2 (53)10=(110101.)2

小数部分:十进制小数不断乘2,记录整数部分,从前往后依次写下整数部分,如下例 ( 0.7 ) 10 (0.7)_{10} (0.7)10
0.7 × 2 = 0.4 + 1 0.4 × 2 = 0.8 + 0 0.8 × 2 = 0.6 + 1 0.6 × 2 = 0.2 + 1 0.2 × 2 = 0.4 + 0 ⋯ 0.7\times 2=0.4+1\\ 0.4\times 2=0.8+0\\ 0.8\times 2=0.6+1\\ 0.6\times 2=0.2+1\\ 0.2\times 2=0.4 +0\\ \cdots 0.7×2=0.4+10.4×2=0.8+00.8×2=0.6+10.6×2=0.2+10.2×2=0.4+0发现计算过程开始循环,故 ( 0.7 ) 10 = ( 0.1 0110 ‾ ) 2 (0.7)_{10}=(0.1\overline{0110})_2 (0.7)10=(0.10110)2

IEEE浮点数

定义:IEEE浮点数
标准的IEEE浮点数为 ± 1. a b c d e f g … z × 2 p \pm 1.abcdefg\dots z \times 2^p ±1.abcdefgz×2p其中 a b c d e f g … z abcdefg\dots z abcdefgz 取值只有 0 或 1
该浮点数在计算机中的储存方式为 1 a b c d e f g … z p 1\hspace{1ex} abcdefg\dots z\hspace{1ex}p 1abcdefgzp
其中

  • 首位表示正负号,0代表正数,1代表负数
  • 后面部分称为尾数,是有效数字
  • 中间部分称为指数,指明小数点的位置

例如:9的2进制表示为1001,浮点数表示为0 11 001,第一个数 0 表示该数为正数,尾数001表示这个数的有效数字为 ( 1.001 ) 2 (1.001)_2 (1.001)2(默认首位为1),第二个数 ( 11 ) 2 = 3 (11)_2=3 (11)2=3表示这个数的指数为3,即把小数点向右移动3位

定义:一般的浮点数系统(描述性定义)
考虑 R \mathbb{R} R 的某离散子集 F \mathrm{F} F F \mathrm{F} F的元素形如 0 或 x = ± m β t β e x=\pm \dfrac{m}{\beta^t}\beta^e x=±βtmβe,其中

  • β \beta β 为不小于2的整数,称为基数;(即 β \beta β 进制)
  • t t t 为不大于1的整数,称为精度;(即该系统能表示的最大位数尾数)
  • m ∈ [ 1 , β t ] m\in[1,\beta^t] m[1,βt]是整数,e为任意整数(即指数);
  • 若限制 m m m 的范围为 [ β t − 1 , β t − 1 ] [\beta^{t-1},\beta^t-1] [βt1,βt1],则可使 m m m 唯一;此时 ± ( m β t ) \pm(\dfrac{m}{\beta^t}) ±(βtm) 称为 x x x 的尾数;

注:对于那些位数超过精度的数字,必须进行截断并舍入(零舍一入),才能保存在计算机中,故浮点数集 F F F 在实数 R \mathbb{R} R 中是离散的

定义:机器 ϵ \epsilon ϵ
ε m a c h i n e = 1 2 β 1 − t \varepsilon_{machine}=\dfrac{1}{2}\beta^{1-t} εmachine=21β1t表示两个相邻的浮点数之间的距离的一半

注:有的书上也定义为两个相邻的浮点数之间的距离

定义:单精度、双精度浮点数

单精度浮点数:1位符号,8位指数,23位尾数, ε m a c h i n e = 2 − 24 \varepsilon_{machine}=2^{-24} εmachine=224

双精度浮点数:1位符号,11位指数,52位尾数, ε m a c h i n e = 2 − 53 \varepsilon_{machine}=2^{-53} εmachine=253

注:
单精度浮点数也称 32 位浮点数 1 + 8 + 23 = 32 1+8+23=32 1+8+23=32
双精度浮点数也称 64 位浮点数 1 + 11 + 52 = 64 1+11+52=64 1+11+52=64

定义:浮点数函数
f l : R → F fl:\mathbb{R}\to F fl:RF 表示将实数映射为离它最近的浮点数的函数

命题:用浮点数保存实数的舍入误差
∀ x ∈ R , ∣ x − f l ( x ) ∣ ∣ x ∣ ≤ ε m a c h i n e \forall x\in\mathbb{R},\dfrac{|x-fl(x)|}{|x|}\leq \varepsilon_{machine} xR,xxfl(x)εmachine或等价地说,
∀ x ∈ R , ∃ ϵ , ∣ ϵ ∣ ≤ ε m a c h i n e , s . t . f l ( x ) = x ( 1 + ϵ ) \forall x\in\mathbb{R},\exists \epsilon,|\epsilon|\leq\varepsilon_{machine},s.t.fl(x)=x(1+\epsilon) xR,ϵ,ϵεmachine,s.t.fl(x)=x(1+ϵ)

浮点数运算的基本公理

任取 x , y ∈ F x,y\in F x,yF,令 ∗ \ast 表示四则运算的任一个, ⊛ \circledast 表示相应的浮点数的四则运算,则 x ⊛ y = f l ( x + y ) x\circledast y=fl(x+y) xy=fl(x+y)

等价地,有如下的浮点数运算公理:
∀ x , y ∈ F , ∃ ϵ , ∣ ϵ ∣ ≤ ε m a c h i n e , s . t . x ⊛ y = ( x ∗ y ) ( 1 + ϵ ) \forall x,y\in F,\exists \epsilon,|\epsilon|\leq\varepsilon_{machine},s.t.x\circledast y=(x\ast y)(1+\epsilon) x,yF,ϵ,ϵεmachine,s.t.xy=(xy)(1+ϵ)

注: ε m a c h i n e \varepsilon_{machine} εmachine定义的修正:将 ε m a c h i n e \varepsilon_{machine} εmachine定义为满足上述公理的最小值,这样定义不会对运算产生显著影响

一般来说,我们使用的计算机是符合浮点数运算的基本公理的

参考书籍
《数值分析》Timothy Sauer 著,裴玉茹,马赓宇 译
《Numerical Linear Algebra》Lloyd N.Trefethen , David Bau 著

这篇关于数值代数及方程数值解:预备知识——二进制及浮点数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/861974

相关文章

二进制文件转化成文本文件

文章中如果有写错、表述不明、有疑问或者需要扩展的知识,欢迎留言或者私信~   1.区别 如果一个文件说是文本文件,使用任何一种文本编辑器打开可以展现出人类可读信息字符,因为编码都符合某种编码方式,如ASCII、UTF8、GB2312等等(在文件头可以读出来是什么编码方式,然后文本编辑器再按照规则去读取翻译成对应的字符,展示给我们的就是可读的了)。(关于编码方式不了解可以看这一篇) 如果一

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

剑指Offer—编程题10(二进制中1 的个数)

代码如下,请在JDK7及以上版本运行: public class Test10 {/*** 请实现一个函数, 输入一个整数,输出该数二进制表示中1的个数。* 例如把9表示成二进制是1001 ,有2位是1. 因此如果输入9,该出2。** @param n 待的数字* @return 数字中二进制表表的1的数目*/public static int numberOfOne(int

关于CPU的一点知识

首先说一下,CPU是干啥的: CPU所负责的就是解释和运行最终转换成机器语言的程序内容 我们需要知道的CPU结构:重点需要关注寄存器 运算器 简单说就是负责运算从内存读取到寄存器中的数据,可以看作一个数据加工厂,就是对寄存器中的数据做运算,这些运算包含基本的算术和逻辑运算。 算术逻辑单元(ALU) 这个是运算器中重要的一个组成,主要负责的就是对数据的处理,从而实现对数据的算术和

计算机组成入门知识

前言👀~ 数据库的知识点先暂且分享到这,接下来开始接触计算机组成以及计算机网络相关的知识点,这一章先介绍一些基础的计算机组成知识 一台计算机如何组成的? 存储器 CPU cpu的工作流程 主频 如何衡量CPU好坏呢? 指令 操作系统 操作系统功能 操作系统"内核"  如果各位对文章的内容感兴趣的话,请点点小赞,关注一手不迷路,如果内容有什么问题的话,欢迎各位

【Flink metric】Flink指标系统的系统性知识:以便我们实现特性化数据的指标监控与分析

文章目录 一. Registering metrics:向flink注册新自己的metrics1. 注册metrics2. Metric types:指标类型2.1. Counter2.2. Gauge2.3. Histogram(ing)4. Meter 二. Scope:指标作用域1. User Scope2. System Scope ing3. User Variables 三.

基础C语言知识串串香11☞宏定义与预处理、函数和函数库

​ 六、C语言宏定义与预处理、函数和函数库 6.1 编译工具链 源码.c ——> (预处理)——>预处理过的.i文件——>(编译)——>汇编文件.S——>(汇编)——>目标文件.o->(链接)——>elf可执行程序 预处理用预处理器,编译用编译器,汇编用汇编器,链接用链接器,这几个工具再加上其他一些额外的会用到的可用工具,合起来叫编译工具链(gcc就是一个编译工具链)。 gcc中各选项

预备资金有5000-6000买什么电脑比较好?大学生电脑选购指南

小新pro14 2024 处理器:采用了英特尔酷睿Ultra5 125H或Ultra9 185H两种处理器可选,这是英特尔最新的高性能低功耗处理器,具有18个线程,最高可达4.5GHz的加速频率,支持PCIe 4.0接口,内置了强大的ARC核芯显卡,性能超过GTX 1650独显。此外,酷睿Ultra系列还增加了SOC模块和NPU模块,分别用于提升省电效率和AI能力。 屏幕:提供了LCD和OLE

什么是慢查询——Java全栈知识(26)

1、什么是慢查询 慢查询:也就是接口压测响应时间过长,页面加载时间过长的查询 原因可能如下: 1、聚合查询 2、多表查询 3、单表数据量过大 4、深度分页查询(limit) 如何定位慢查询? 1、Skywalking 我们可以通过 Skywalking 来看到是哪个请求的哪个查询的时间执行时间过长。 2、Mysql 自带的慢日志查询 慢查询日志记录了所有执行时间超过指定参数(long