当前位置: 首页 > news >正文

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

http://www.xdnf.cn/news/787861.html

相关文章:

  • 【25-cv-05991】Keith律所代理Ana Maria油画版权
  • kubeSphere安装使用
  • 流、线程、任务、队列等相关在不同语言的区别联系
  • 项目计划缺乏风险评估和应对策略,如何完善
  • Qiskit:量子计算模拟器
  • Prj09--8088单板机C语言8253产生1KHz方波(1)
  • HTTP Error 400 Bad request 问题分析解决
  • spring boot应答500问题跟踪
  • YAML 文件中不同格式的含义详解
  • Flink 重启后事件被重复消费的原因与解决方案
  • Deep Search之R1-Searcher系列
  • QT实现动画翻转效果
  • Docker 镜像深度剖析:构建、管理与优化
  • 多模态知识图谱可视化构建(neo4j+python+flask+vue环境搭建与示例)
  • 秋招准备-数据结构
  • 前端面试题之Class详解
  • @Resource和@Autowire
  • 《前端面试题:CSS预处理器(Sass、Less等)》
  • 代码训练LeetCode(19)轮转数组
  • 【学习记录】深入解析 AI 交互中的五大核心概念:Prompt、Agent、MCP、Function Calling 与 Tools
  • 全球常用地理信息、遥感数据处理软件介绍(单机版、在线云平台)
  • LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】· 下
  • 【Typst】5.文档结构元素与函数
  • 突破视觉认知边界VisionReasoner:用强化学习统一视觉感知与推理的全能框架
  • 防火墙在OSI模型中的层级工作(2025)
  • 动态规划十大经典题型状态转移、模版等整理(包括leetcode、洛谷题号)
  • Dify-5:Web 前端架构
  • Spring 统一异常处理怎么做?
  • QT 5.9.2+VTK8.0实现等高线绘制
  • Ubuntu中SSH服务器安装使用