Matlab中数值计算精度

原创 2018年04月16日 10:54:50

1.  Matlab中有三种运算精度,它们分别为数值算法、符号算法和可控精度算法,将它们分别介绍如下:

(1)  数值算法把每个数取为16位,计算按浮点运算进行,它是运算速度最快的一种算法.

(2)  符号算法把每个数都变为符号量,运算按有理量计算进行,它的优点是能够得到精确结果,缺点是占用空间大,并且运算速度最慢.

(3)  可控精度算法介于上述两种算法之间,它能够使运算在可控的精度下进行计算.

2.  Matlab的数据显示格式,列表如下:

 

 表 Matlab数据显示格式命令

命令

意义

举例( )

format short

短格式方式,显示5位定点十进制数

3.1416

format long

长格式方式,显示15位定点十进制数

3.141592653589793

format short e

最优化短格式显示,5位加指数

3.1416e+000

format long e

最优格式,15位加指数

3.141592653589793e+000

format short g

5位定点或浮点格式

3.1416

format long g

对双精度,显示15位定点或浮点格式,对单精度,显示7位定点或浮点格式

3.14159265358979

format short eng

至少5位加3位指数

3.1416e+000

format long eng

16位加至少3位指数

3.14159265358979e+000

format hex

十六进制格式方式

400921fb54442d18

format bank

银行格式.按元、角、分(小数点后具有两位)的固定格式

3.14

format +

+格式,以+,—和空格分别表示中的正数,负数和零元素

+

format

缺省时为默认短格式方式与format short相同

3.1416

format rat

分数格式形式.用有理数逼近显示数据

355/113

format loose

松散格式.数据之间有空行

 

format compact

紧凑格式.数据之间无空行

 

vpa(date,n)

将数据date以n位有效数字显示

vpa(pi,5)= 3.1416

 

format并不影响matlab如何计算和存储变量的值.对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变量是如何显示的.对整型变量采用整型数据.整型变量总是根据不同的类(class)以合适的数据位显示.

3.  Matlab的特殊变量

ans:对最近输入的反应

computer:当前计算机类型

eps:浮点精度

flops:计算浮点操作次数,现已不再常用

i:虚部单位

inf:无穷大

inputname:输入参数名

j:虚部单位

nan:非数值

nargin:输入参数的数目

nargout:输出参数的数目(用户定义函数)

pi:圆周率

realmax:最大正浮点数

realmin:最小正浮点数

varargin  

varargout:返回参数数目(matlab函数)

cputime:CPU工作时间

 


matlab数字的精度可以设定为多少合适?

发信人: kevin128 (过的好一点), 信区: MathTools标  题: matlab数字的精度可以设定为多少合适?发信站: BBS 水木清华站 (Mon Aug 16 21:15:58 2...
  • yuanqingfei
  • yuanqingfei
  • 2004年08月17日 21:24
  • 2808

MATLAB控制运算精度

先来看一段MATLAB代码    clear;   theta = 264.3783;   t1 = [cos(theta); cos(2*theta);cos(3*theta); cos(...
  • wenyusuran
  • wenyusuran
  • 2014年08月04日 10:36
  • 3165

matlab中计算精度的问题

我最近在用matlab 的时候,遇见了明明显示的行列式上的两行或两列上的值相同,得到的行列式的值却是一个极小数,不等于0,原因可能是matlab显示精度的影响,它的值是四舍五入了,所以为了得到具有相同...
  • bmlln
  • bmlln
  • 2008年03月17日 06:01
  • 2344

JS中数字计算精度

问题这样的:  37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数)  我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998  怎...
  • baicp3
  • baicp3
  • 2016年03月21日 16:18
  • 1265

Matlab求解微分方程数值解

有三种方法求解微分方程数值解: 欧拉法 改进欧拉法 龙格库塔法 接下来用一个练习来对比这三种求解方法。问题描述:用改进的Euler方法、MATLAB的ode45命令分别求下列初值问题的数值解,并画图与...
  • karry_zzj
  • karry_zzj
  • 2017年08月01日 11:52
  • 3062

讨论c/c++计算小数的精度问题

求出所有100以下整数与一位小数相乘等于相加的浮点数这个有Bug浮点数计算时精度会出现误差   除非使用非常精确的类型或限制浮点的位数 比如 #include int main() ...
  • loongsking
  • loongsking
  • 2014年03月17日 14:40
  • 2002

符号矩阵代入数据求值

y=  [2*x(2) - 4*x(1) + x(7)^2 - x(8)^2 + x(9)^2 - x(10)^2 + 8;       2*x(1) - 12*x(2) + x(7)^2 - x(8...
  • Ssure
  • Ssure
  • 2015年07月12日 12:56
  • 630

matlab控制运算精度函数digits(A)和vpa(B)的使用方法

format这个函数不是用于控制运算精度的,它只能控制结果显示类型。运算的时候还是用matlab自己的精度,具体是多少就不知道了。   matlab控制运算精度用的是digits和vpa这两个函...
  • zhuifengren2012
  • zhuifengren2012
  • 2014年08月31日 19:02
  • 1869

double类型计算精度确实问题

double类型数据进行计算精度缺失导致四舍五入错误的原因分析及解决方案
  • vandalor_dl
  • vandalor_dl
  • 2017年04月01日 17:06
  • 400

偏微分方程数值解法的MATLAB源码

原文出处http://wenku.baidu.com/view/df412e115f0e7cd184253653.html 因为不太喜欢百度文库的格式,所以写到个人博客里面方便使用...
  • aa568009
  • aa568009
  • 2016年06月22日 10:45
  • 876
收藏助手
不良信息举报
您举报文章:Matlab中数值计算精度
举报原因:
原因补充:

(最多只允许输入30个字)