作业帮 > 综合 > 作业

matlab 怎么在计算工程中始终保留6位有效数字呢 是“保留” 不是“显示”

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 05:21:37
matlab 怎么在计算工程中始终保留6位有效数字呢 是“保留” 不是“显示”
用列主元高斯消去法 计算Ax=b A=[3.01,6.03,1.99;1.27,4.16,-1.23;0.987,-4.81,9.34];
b=[1;1;1]; 如何在计算过程中保证每次计算都保留6位有效数字呢
a=22.3456755;
>> fprintf('a = %.6g\n',a)%%保留6位有效数字
a = 22.3457
>> fprintf('a = %.6f\n',a)%%保留小数点后6位
a = 22.345675
再问: 这只是最终结果显示为6位有效数字 可不可以把A矩阵定义为元素为6位有效数字的类型呢 如何在计算过程中保证“每次”计算都保留6位有效数字呢 因为有循环 我需要产生舍入误差 vpa(A)我用过了 就是太麻烦 还会出现Conversion to double from sym is not possible.错误
再答: 兄弟,vpa是不行的,当它转换为double时又基本和原来一样了。 而且这个没有简单方法,要实现估计得用字符串来处理,挺麻烦的,要是没有必要的话就别这么做了
再问: 若a是矩阵 怎么用fprintf 用矩阵形式输出保留6位有效数字的a呢
再答: fprintf只能往屏幕或文件里写数据,不能写到一个矩阵里,所以要用它的话得先写到一个文件里然后再用fscanf读取,fscanf可以把读到的内容写到矩阵里,也挺麻烦的,不过相对字符串处理可能会简单点
再问: 直说吧 我在用列主元高斯消去法 做数值分析试验作业 需要记录6位有效数字 但软件默认是short型 即小数点后4位 怎么控制始终显示6位有效数字呢 开头用format命令吗 用什么参数合适呢
再答: format long 是显示小数点后15位,你自己找到6位有效数字,没有直接显示6位的