我很难用MATLAB来计算四位数的舍入算法。
(不幸的是,由于我对Stackoverflow还不熟悉,所以我不能发布图片,所以我需要从外部链接到我最初在这个问题中设置的内容:http://i.imgur.com/XMkSE6p.png)
然而,在MATLAB中,当我尝试使用函数vpa时,我收到了答案-0.01611。
下面是我正在运行的MATLAB脚本:
A = 1;
B = 62.10;
C = 1;
vpa((-B+sqrt(B^2-4*A*C))/(2*A),4)回传
ans =
-0.01611当我想
ans =
-0.02我是不是不正确地使用vpa函数?在我的MATLAB脚本中是否有更好的方法来建立二次方程来实现这一点?如果能对此提供任何帮助,我们将不胜感激。
发布于 2016-01-23 18:57:45
为了从图片中得到结果,你必须做在那里做的事情,每一次手术之后都要做一次,而不仅仅是在最后一次。除非您需要vpa提供的扩展精度,否则我建议您使用doubles,而使用roundsd。
%just demonstrating it for the first intermediate result, getting the 3852
r=@(x)roundsd(x,4)
r(B^2)-4*r(A)*r(C)把四舍五入操作放在任何地方都不是很方便,为了更方便的使用,您可以实现自己的类,重载内置的操作符。
发布于 2016-01-23 18:39:48
使用round()函数:
A = 1;
B = 62.10;
C = 1;
x = vpa((-B+sqrt(B^2-4*A*C))/(2*A),4)
x =
-0.01611
y = round(x,2)
y =
-0.02https://stackoverflow.com/questions/34967016
复制相似问题