impu 发表于 2008-10-13 14:29

Matlab中如何控制数值计算的精度?

Matlab中如何控制数值计算的精度?
例如:我想要精确到10的-20次方,该怎么设置?

sogooda 发表于 2008-10-13 14:51

matlab默认的是双精度,大约在1e-16,再要精确可能就有些困难了。

sogooda 发表于 2008-10-13 16:51

用符号计算吧,可能能精确点儿。
用vpa可以弄到小数点儿后面很多位。
下面是个测试,结果有点儿意外——用不用符号都是一样。
>> a=sqrt(5)
a =
    2.2361
>> syms as
>> as=sqrt(5)
as =
    2.2361
>> vpa(a,20)
ans =
2.2360679774997896964
>> vpa(as,20)
ans =
2.2360679774997896964
>> vpa(as,100)
ans =
2.236067977499789696409173668731276235440618359611525724270897245410520925637804899414414408378782275
>> vpa(a,100)
ans =
2.236067977499789696409173668731276235440618359611525724270897245410520925637804899414414408378782275

hunanlcg1986 发表于 2009-4-28 14:59

我就不清楚了,显示精度和计算精度有什么区别,我要的是计算精度,为什么都理解成显示精度了!郁闷!

[ 本帖最后由 ChaChing 于 2009-4-28 15:38 编辑 ]
页: [1]
查看完整版本: Matlab中如何控制数值计算的精度?