matlab问题:计算计算代数式的值

以4位正确的有效数字计算√(c²+d)-c的值,其中,c=246886422468d=13579求代码... 以4位正确的有效数字计算√(c²+d)-c 的值,其中,c=246886422468 d=13579
求代码
展开
 我来答
david940408
推荐于2016-11-20 · TA获得超过5554个赞
知道大有可为答主
回答量:2964
采纳率:100%
帮助的人:1702万
展开全部
直接算sqrt(c^2+d)-c会导致大数+小数从而在保存c^2+d时失去小数的一些有效数字,然后又大数-大数失去了前面的很多有效数字,所以d里的信息没法复原了。简单一点可以这么算:
d/(sqrt(c^2+d)+c)
从而避免大数-大数。在format long情况下结果是
2.750049975259379e-08
另一种办法是装一个symbolic toolbox,然后这么算:
c=sym(246886422468);
d=sym(13579);
vpa(sqrt(c^2+d)-c)
这样应该可以精确到几乎任意位(参看vpa的用法)。默认的结果是
0.000000027500499752593790335726015243319
(所以之前的结果还是挺精确的)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式