Matlab自学笔记五十七:符号运算、可变精度运算、双精度浮点型运算,三种运算精度的概念、比较、选择和应用
1.可变精度算术的概念
默认的,Matlab双精度浮点数使用16位数字精度,而符号数学工具箱的vpa函数,提供了无限大的可变精度,它默认使用32位数字精度,32位指的是有效数字的位数;
2.具体用法
程序示例:
pi %默认双精度浮点型,16位精度,默认short显示格式小数点后4位
ans =
3.1416
vpa(pi) %可变精度数值,32位精度
ans =
3.1415926535897932384626433832795
vpa(pi,100) %设置100位精度
ans =
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068
%% 下面让整个运行环境使用可变精度
digits %获取当前运行环境的精度
i=digits(100) %设置运行环境精度100,i返回设置前的精度值
vpa(pi) %显示pi的可变参数值,已变为100位
运行结果:
Digits = 32
i =
32
ans =
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068
3.三种算术条件的运算精度比较
3.1 符号算术
默认的,符号数学工具箱使用确切的数字,进行精确的符号计算;具体看54:符号运算Matlab自学笔记五十四:符号数学工具箱和符号运算、符号求解、绘图
3.2 可变精度算术
是符号数学工具箱的功能,是符号计算的近似数值计算,通过控制数值显示的有效位数实现可变精度,默认32位,运算速度稍快,内存消耗量依赖于设定的精度;
3.3 双精度浮点数算术
双精度浮点运算就是常规的Matlab数值计算,也是Matlab默认的运算方式,有舍入误差,精确到16位精度,运算速度最快,内存消耗最少;
4.运算精度的选择
实例:分别在上述三种算术条件下求sin(pi)的值
程序示例:
a=sym(pi) %符号型运算
sin(a)
a =
pi
ans =
0
b=vpa(pi) %可变精度型运算
sin(b)
b =
3.1415926535897932384626433832795
ans =
-3.2101083013100396069547145883568e-40
c=pi %双精度运算
sin(c)
c =
3.1416
ans =
1.2246e-16
从结果可以看出,精度依次降低。
更多精彩内容
1.49/Matlab实时脚本/写论文必备技能
37.31 AppDesigner案例:数据库读取、查询和计算软件
25.1 快速上手朴素贝叶斯算法分类识别及其Matlab编程代码实例
31.3 Matlab绘图之图像上添加标题、标签和图例,那些希腊的罗马的特殊字符应该都涵盖了哈
38.1 从图像曲线上提取坐标数据:测量长度,测量角度、圆心和半径
47.1/Matlab遗传算法/概念/原理/编程演示数学建模
48.1/Matlab粒子群算法编程/概念和算法流程数学建模
49.1/Matlab模拟退火算法/概念/原理/程序演示
50.1 Matlab数学建模:模式搜索优化算法/原理/概念/程序演示
【Matlab轻松小课堂】66.5 程序注释实例
23.1 一节入门Matlab拟合问题fit,建立预测变量与响应变量之间的关系(一般是函数关系)
24.1 一节入门K近邻算法附Matlab编程示例
26.1(上) 一节入门SVM支持向量机算法,含Matlab编程讲解
37.1 一节光速入门Matlab AppDesigner界面设计编程
36.1 Matlab GUI 界面设计初学者光速入门
45.1 一个实例入门Matlab深度学习|卷积神经网络
43.5 神经网络初始化权重参数和配置输入输出大小Matlab编程实例演示
End