您好,今天芳芳来为大家解答以上的问题。matlab vpa是什么意思?相信很多小伙伴还不知道,现在让我们一起来看看吧!
1、matlab控制运算精度用的是digits和vpa这两个函数digits用于规定运算精度,比如:digits(20);这个语句就规定了运算精度是20位有效数字。
2、但并不是规定了就可以使用,因为实际编程中,可能有些运算需要控制精度,而有些不需要控制。
3、vpa就用于解决这个问题,凡是用需要控制精度的,我们都对运算表达式使用vpa函数。
4、例如: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函数对其中每一个运算都控制精度,并非只控制结果。
5、 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这三个运算都控制了精度,又对三个数相加的运算控制了精度。
6、而b的值是真实值,对它取11位有效数字的话,结果为1.7936507937,与a不同,就是说vpa并不是先把表达式的值用matlab本身的精度求出来,再取有效数字,而是每运算一次,都控制精度。
本文就为大家分享到这里,希望小伙伴们会喜欢。
标签: