Matlab控制精度
来源:互联网 发布:mac版有360浏览器吗 编辑:程序博客网 时间:2024/04/29 11:48
控制精度
matlab控制运算精度用的是digits和vpa这两个函数
digits用于规定运算精度,比如:
digits(20);
这个语句就规定了运算精度是20位有效数字。但并不是规定了就可以使用,因为实际编程中,我们可能有些运算需要控制精度,而有些不需要控制。vpa就用于解决这个问题,凡是用需要控制精度的,我们都对运算表达式使用vpa函数。例如:
digits(5);
a=vpa(sqrt(2));
这样a的值就是1.4142,而不是准确的1.4142135623730950488016887242097
又如:
digits(5);
a=vpa(sqrt(2));
b=sqrt(2);
这样a的值是1.4142,b没有用vpa函数,所以b是1.4142135623730950488016887242097......
vpa函数对其中每一个运算都控制精度,并非只控制结果。
digits(11);
a=vpa(2/3+4/7+5/9);
b=2/3+4/7+5/9;
a的结果为1.7936507936,b的结果为1.793650793650794......也就是说,计算a的值的时候,先对2/3,4 /7,5/9这三个运算都控制了精度,又对三个数相加的运算控制了精度。而b的值是真实值,对它取11位有效数字的话,结果为1.7936507937,与a不同,就是说vpa并不是先把表达式的值用matlab本身的精度求出来,再取有效数字,而是每运算一次,都控制精度。例子不太好,因为加法不太会增加数字位数。
matlab控制运算精度用的是digits和vpa这两个函数
digits用于规定运算精度,比如:
digits(20);
这个语句就规定了运算精度是20位有效数字。但并不是规定了就可以使用,因为实际编程中,我们可能有些运算需要控制精度,而有些不需要控制。vpa就用于解决这个问题,凡是用需要控制精度的,我们都对运算表达式使用vpa函数。例如:
digits(5);
a=vpa(sqrt(2));
这样a的值就是1.4142,而不是准确的1.4142135623730950488016887242097
又如:
digits(5);
a=vpa(sqrt(2));
b=sqrt(2);
这样a的值是1.4142,b没有用vpa函数,所以b是1.4142135623730950488016887242097......
vpa函数对其中每一个运算都控制精度,并非只控制结果。
digits(11);
a=vpa(2/3+4/7+5/9);
b=2/3+4/7+5/9;
a的结果为1.7936507936,b的结果为1.793650793650794......也就是说,计算a的值的时候,先对2/3,4 /7,5/9这三个运算都控制了精度,又对三个数相加的运算控制了精度。而b的值是真实值,对它取11位有效数字的话,结果为1.7936507937,与a不同,就是说vpa并不是先把表达式的值用matlab本身的精度求出来,再取有效数字,而是每运算一次,都控制精度。例子不太好,因为加法不太会增加数字位数。
0 0
- MATLAB控制运算精度
- MATLAB控制运算精度
- matlab精度控制
- Matlab控制精度
- MATLAB数据精度控制
- Matlab------------GUI编程:控制运算精度
- Matlab digits与vpa 控制运算精度
- 精度控制
- matlab中的显示精度
- Matlab数据精度
- MATLAB数据精度处理
- 如何控制matlab中的数据输出格式? 改变输出位数精度
- matlab控制运算精度函数digits(A)和vpa(B)的使用方法
- matlab控制运算精度函数digits(A)和vpa(B)的使用方法
- matlab控制运算精度函数digits(A)和vpa(B)的使用方法
- MATLAB 使用(三)控制双精度浮点数的显示格式
- 格式精度控制
- C++输出精度控制
- MVC浅入浅出
- Matlab积分
- BestCoder Round #20 A
- 利用SOLR搭建企业搜索平台 之四(MultiCore)
- NSDictionary NSMutableDictionary
- Matlab控制精度
- Docker创建支持ssh服务的容器和镜像
- 利用SOLR搭建企业搜索平台 之五(solrj)
- XPath的使用一
- 相控阵天线matlab程序
- Matlab各种求和
- solr中文分词(mmseg4j)
- HDU 1166 敌兵布阵 【线段树(单点增减 区间求和)】
- Matlab求平均值函数mean