matlab digits函数和vpa函数

本文介绍Matlab中控制运算精度的方法,主要涉及digits和vpa两个函数。digits用于设定全局精度,vpa则针对特定表达式应用所设精度,确保每步运算都在指定精度下进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

matlab digits函数和vpa函数

转自:http://cacheso.360.cn/c?m=5a4cf7c107f7aa4c02664975cf1179ca&q=vpa&u=http%3A%2F%2Fzhidao.baidu.com%2Fquestion%2F237050395.html#360sou

       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本身的精度求出来,再取有效数字,而是每运算一次,都控制精度。我举的例子不太好,因为加法不太会增加数字位数。希望你能理解我的意思....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值