最近在做数值计算方法作业,使用列主元消元法求线性多项式方程组的解时,发现结果太过于精确,与答案差距过大。
后发现是因为每次计算都需要默认保留5位有效数字,遍寻csdn,找到个vpa函数却只是让显示位数发生改变,而不是真正保留有效数字,所以自己写了一个保留有效数字的函数,仅供参考,要是有更好的方式实现,希望各位大佬指正!
function x=baoliu(x,n)
if x==0
x=x;
elseif x>0
x1=floor(log10(x));
if log10(x)==0
x=x;
else
x=round(x/10^x1,n-1)*10^x1;
end
elseif x<0
x1=floor(log10(-x));
if log10(-x)==0
x=x;
else
x=round(x/10^x1,n-1)*10^x1;
end
end
end