Matlab中如何控制数值计算的精度?
Matlab中如何控制数值计算的精度?例如:我想要精确到10的-20次方,该怎么设置? matlab默认的是双精度,大约在1e-16,再要精确可能就有些困难了。 用符号计算吧,可能能精确点儿。
用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
我就不清楚了,显示精度和计算精度有什么区别,我要的是计算精度,为什么都理解成显示精度了!郁闷!
[ 本帖最后由 ChaChing 于 2009-4-28 15:38 编辑 ]
页:
[1]