产品
产品概览
Mathematica
Mathematica 学生版
Mathematica Home Edition
Wolfram
CDF Player
(免费下载)
可计算文档格式(CDF)
web
Mathematica
grid
Mathematica
Wolfram
Workbench
Mathematica
附加程序包
Wolfram|Alpha 产品
解决方案
解决方案概览
工程
航空航天与国防
化学工程
控制系统
电气工程
图像处理
工业工程
材料科学
机械工程
运筹学
光学
石油工程
生物技术与医药
生物信息学
医学影像
金融、统计、商业分析
精算科学
数据分析与挖掘
计量经济学
经济学
金融工程与数学
金融风险管理
统计
软件工程、内容传递
创作与出版
界面开发
软件工程
网页开发
科学
天文学
生物科学
化学
环境科学
地球科学
社会与行为科学
设计、艺术以及娱乐
游戏设计、特殊效果及衍生艺术
教育
STEM 教育倡议
高等教育
高职高专院校
中小学教育
学生
科技
可计算文档格式(CDF)
高性能并行计算(HPC)
参见:技术指南
购买
网上商店
其它购买方式
批量许可及站点许可证
联络销售部
软件
服务
升级
培训
书籍
技术支持
技术支持概览
知识库
学习中心
社区与论坛
培训
确认授权
Wolfram 用户门户
公司概况
关于 Wolfram Research
新闻与活动
Wolfram 博客
合作伙伴
工作机会
Mathematica
的历史
Stephen Wolfram 主页
联系我们
公司网站
全部站点
Wolfram|Alpha
演示项目
MathWorld
Integrator
Wolfram Functions Site
Mathematica Journal
Wolfram Media
Wolfram
Tones
Wolfram Science
Stephen Wolfram
DOCUMENTATION CENTER SEARCH
New to
Mathematica
?
Find your learning path
»
Mathematica
>
数学和算法
>
数值计算和精度
>
精度和准确度控制
>
SetPrecision
>
MATHEMATICA 内置符号
任意精度的数
教程 »
|
N
Precision
Chop
SetAccuracy
$MinPrecision
$NumberMarks
PrecisionGoal
参见 »
|
精度和准确度控制
更多关于 »
SetPrecision
SetPrecision
将
中所有数设置为具有精确度
p
,并返回
expr
.
更多信息
当使用
SetPrecision
来提高一个数的精确度时,该数将用 0 填充. 0 采用以 2 为基. 在以 10 为基时,其它数位通常不是 0.
即便所得到的有效数位比
$MachinePrecision
小,
SetPrecision
仍返回一个任意精度的数.
SetPrecision
[
expr
,
MachinePrecision
]
把所有在
expr
的数转变为机器精度.
如果有太大或太小的数来表示机器精度数,
SetPrecision
[
expr
,
MachinePrecision
]
将把他们转变为精度为
$MachinePrecision
的任意精度数.
当
expr
包含机器精度的数时,在不同计算机系统上
SetPrecision
可以给出不同的结果.
SetPrecision
首先打开一个数的内部二进制表示中所有隐藏的特殊数位,且只有用完这些之后才添加尾数 0.
»
在任何计算机系统上
生成一个所有末尾数字为 0,精度为 25 的数.
SetPrecision
不修改
expr
本身.
范例
关闭所有单元
例
(3)
将表达式中所有数的精度设置为 20:
将所有数转换为机器精度:
从机器精度数转换为任意精度数:
将表达式中所有数的精度设置为 20:
In[1]:=
Out[1]=
将所有数转换为机器精度:
In[1]:=
Out[1]=
从机器精度数转换为任意精度数:
In[1]:=
Out[1]=
范围
(5)
设置复数的精度:
将近似数转换为明确的有理数:
如果显示隐藏数字,结果有尾部零:
SetPrecision
不影响明确的幂:
这允许您例如改变多项式系数的精度:
修改不明确的幂:
特定规则将应用到数据对象中:
对于一个
InterpolatingFunction
对象,
SetPrecision
仅改变适当的数据:
它类似一个近似函数,但有新的精度:
应用
(4)
在机器数的表达式计算中,求出舍入的误差:
因为增量太小,所有这主要造成了近似误差:
求出一个机器数的误差表示:
误差小,这是因为它接近机器数
:
相近的机器数之间的距离是 2 的幂:
在微分方程中,提高系数的精度来检测误差:
求出机器精度和精度 32 下计算的解:
绘制两个解,它们在
处偏离,指明重大误差:
屏蔽缺省的准确度和精度:
下面丢失精度比缺省下要慢,它认为操作都是独立的:
尽管如此,所有数字是正确的:
调整每次迭代的数位丢失,因为映射实际上是一个位移映射:
属性和关系
(5)
当选择相应的
N
,
SetPrecision
仅设置数的精度:
因为选择相应的
N
,结果有所需要的 20 位准确度:
用
SetPrecision
:
因为正弦函数在 1000 的调整,所以精度度小于 20:
SetPrecision
计算
Sin
,其中参数 1000 精度为 20:
N
一般不提高表达式的精度,但
SetPrecision
相反:
对于非零数
,
SetPrecision
等价于
SetAccuracy
:
由
RealExponent
给出:
SetPrecision
和
Rationalize
给出实数
x
的有理近似值:
Rationalize
给出一个等价于
x
有理数,它有
x
的精度:
SetPrecision
从
x
的按位表示直接获得一个有理式:
SetPrecision
和
RootApproximant
[
x
]
给出关于实数
x
的明确近似值:
RootApproximant
[
x
]
给出等价于
x
的代数数,它有
x
的精度:
SetPrecision
从
x
的按位表示直接获得一个有理式:
可能存在的问题
(1)
SetPrecision
对于关于近似零
z
给出明确的零:
如果您需要一个近似零,用
SetAccuracy
:
这对于
prec
是
MachinePrecision
例外,您获得一个机器零:
参见
N
Precision
Chop
SetAccuracy
$MinPrecision
$NumberMarks
PrecisionGoal
教程
任意精度的数
更多关于
精度和准确度控制
版本 2 的新功能 | 版本 5 修改功能