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

转载 2015年07月10日 17:29:16
format这个函数不是用于控制运算精度的,它只能控制结果显示类型。运算的时候还是用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本身的精度求出来,再取有效数字,而是每运算一次,都控制精度。
  vpa对它括起来的运算每一次都控制精度,但有一点需要注意,vpa对函数的参数不起作用。
  举一个例子:
  digits(5);

  a=vpa(sqrt(2/3));

b=vpa(sqrt(vpa(2/3)));
  结果a为0.81649,b为.81650。sqrt是一个函数,2/3是参数,也就是说,a式中,vpa对2/3是不起作用的,只对sqrt函数的返回值作用。如果想达到2/3的精度也要控制的效果,就要用b式,对参数也使用vpa函数。
  还有一点,digits这个函数不是必需的,vpa可以这样用:
  vpa(表达式,运算精度);
  举例来说:
  vpa(pi,5);
  和
  digits(5);
  vpa(pi);
  结果是一样的,vpa不指定运算精度,就用digits函数指定的。如果也没有用digits函数,那就是按matlab本身的精度来运算


转载自http://blog.sina.com.cn/s/blog_65c1064a01010xqv.html

相关文章推荐

输入、输出函数说明以及精度说明符的使用方法

一、

MATLAB solve函数使用方法

  • 2010-12-09 22:42
  • 62KB
  • 下载

新版Matlab中神经网络训练函数Newff的使用方法

一、   介绍新版newff Syntax ·         net = newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...T...

matlab 图像保存函数及使用方法

转自http://www.ilovematlab.cn/thread-296430-1-1.html 最近看了一些用matlab对图形图片进行保存的帖子和资源,关于图像保存的方法给大家分享一下这些方...

【Matlab】text函数使用方法

功能: 在当前轴中创建text对象。函数text是创建text图形句柄的低级函数。可用该函数在图形中指定的位置上显示字符串。 用法: text(x,y,'string')在图形中指定的位置(x,y)...

MATLAB基本的使用方法(图像,矩阵及函数)

读取图像:用imread函数读取图像文件,文件格式可以是TIFF、JPEG、GIF、BMP、PNG等。比如      >> f = imread('chestxray.jpg');   读进来的...

新版Matlab中神经网络训练函数Newff的使用方法

转载自 新版Matlab中神经网络训练函数Newff的使用方法 一、   介绍新版newff Syntax ·         net = n...

Matlab 中的线性规划函数使用方法

线性规划 LP(Linear programming,线性规划)是一种优化方法,在优化问题中目标函数和约束函数均为向量变量的线性函数,LP问题可描述为: min  x s.t.       ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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