精度的方法"/>
matlab有效计算,matlab中控制运算精度的方法
其实早该写这篇了,又是因为数模而耽误了,加上拍月亮的中断,大家一起BS数模吧....呵呵开个玩笑,数模还是很不错滴。今天上党课回来晚了,直接忽略学习的可能性,把这篇早打算写的东西发出来吧。
都记得上次数值分析的实验吧?老师增加了第7页例1.2.3,本来我是没太看懂这个题目,不过经过我的一番手动实践,这个题目还是没能保住它的神秘^o^(很容易就看懂的麻烦不要打断)。题目的关键在于运算精度,举例来说,假如运算精度是4位有效数字,那么我们计算1/3时,结果应该为0.3333,而圆周率就是3.142。这其实很好理解,我们只要在求解的过程中每一次运算都保留4位有效数字就行了,关键在于怎么用matlab实现。
首先声明一点,format这个函数不是用于控制运算精度的,它只能控制结果显示类型。运算的时候还是用matlab自己的精度,具体是多少就不知道了,但肯定不只几十位吧....
据我所知,控制运算精度用的是digits和vpa这两个函数,我大致说一下,具体的大家可以看matlab的帮助。
digits用于规定运算精度,比如:
digits(20);
这个语句就规定了运算精度是20位有效数字。但并不是规定了就可以使用,因为实际编程中,我们可能有些运算需要控制精度,而有些不需要控制。vpa就用于解决这个问题,凡是用需要控制精度的,我们都对运算表达式使用vpa函数。例如:
digits(5);
a=vpa(sqrt(2));
这样a的值就是1.4142,而不是准确的1.4142135623730
更多推荐
matlab有效计算,matlab中控制运算精度的方法
发布评论