matlab中怎么设置计算精度

如题所述

提高MATLAB中数值的精度,例如下:
例如要求矩阵的特征值
A =
1 2

1 3
>> eig(A) !!求矩阵A的全部特征值。

ans = !!A的特征值计算如下

0.2679

3.7321
计算的结果如上,但现在精度不够,需要精确到小数点后9到10位。
方法如下:

1)
vpa(eig(A),10) !!使用变量精度算法(VPA)去计算A的特征值每个元素为10位小数位精度,其中10是当前设置的位数。
ans =

.2679491924

3.732050808
2)

>> A = [1 2;1 4];
>> format long !! format long 显示15位双精度。
>> eig(A)

ans =

0.267949192431123

3.732050807568877

format:设置输出格式

对浮点性变量,缺省为format short.
format并不影响matlab如何计算和存储变量的值。对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变量是如何显示的。对整型变量采用整型数据。整型变量总是根据不同的类(class)以合适的数据位显示,例如,3位数字显示显示int8范围 -128:127。
format short, long不影响整型变量的显示。
format long 显示15位双精度,7为单精度(scaled fixed point)
format short 显示5位(scaled fixed point format with 5 digits)
format short eng 至少5位加3位指数
format long eng 16位加至少3位指数
format hex 十六进制
format bank 2个十进制位
format + 正、负或零
format rat 有理数近似
format short 缺省显示
format long g 对双精度,显示15位定点或浮点格式,对单精度,显示7位定点或浮点格式。
format short g 5位定点或浮点格式
format short e 5位浮点格式
format long e 双精度为15位浮点格式,单精度为7为浮点格式
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-08
matlab的数值计算是有截断误差的,改为符号计算就是绝对正确的了:
c
=
sym(8335727);
h
=
sym(269462689);
r
=
sym(222647);
o
=
sym(694079);
m
=
sym(552);
chrome=c*h*r*o*m-3
chrome
=
191605050401140404051920181525
第2个回答  2019-10-05
matlab中控制运算精度

format
long
只能设置显示精度,并不能控制运算精度。
在matlab中,控制运算精度一般使用
digits

vpa。
示例:
digits
%显示当前运算精度
digits(n)
%设定默认的精度
vpa(x,n)
%表示将s表示为n位有效数的符号对象
如果不设定digits(n)
,系统默认为32位
需要注意:
1,vpa算出的值为符号变量,可以进行初等运算,但不能进行关系运算等;
2,vpa的运算速度比matlab标准函数要慢。
第3个回答  2020-04-14
方法一:
直接在commond窗口中输入
format
short
你这个默认是format
rat
就是分数(有理数)表示形式。
方法二:
可以在file->preference->Fonts->commond
Window
设置Numeric
format
我的是matlab2010a其他版本略有不同

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网