作业帮 > 数学 > 作业

matlab进行线性方程组求解时,遇到了一个问题,

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/04/30 02:06:36
matlab进行线性方程组求解时,遇到了一个问题,
Warning:Matrix is close to singular or badly scaled.
Results may be inaccurate.RCOND = 2.219071e-016.
> In calculate_curvature_parabola at 273
In calculate_KD at 17
In recursion_filtering at 424
In main at 173
以上是程序运行时给出的警告,虽然没有报错,而且也计算出了结果,但我不知道计算出来的结果到底准不准确啊?是直接用矩阵运算计算的.
我用其它分解或迭代方法计算结果时,发现与上述结果有一些不同,到底哪种方法计算结果更准确一些呢?
MATLAB里面不同的算法得出来的结果也是不同的,他采用的是取得尽量接近最佳的值.
举个例子,就好比你现在算出的是2.219071e-016.
可能换个算法得出的是2.25123e-016 那楼主你觉得这2个结果是正确与否呢?
MATLAB主要都是逼近精度,只要接近于正确值了就输出结果了,而且因为不是整数,都是小数而且是小数点后16位,这些都是可以忽略不计的.
再问: 那请问出现了这种情况的话,我是直接采用计算结果,相信计算机的计算呢?还是需要对程序进行必要的调整,使之不再出现类似的警告呢?
再答: 那我们来看一下这段警告啥意思:Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.219071e-016. 矩阵比较奇异的或不良比例。 结果可能不准确。 RCOND=2.219071e- 016。 我不知道楼主用MATLAB多不多,这就好比对PID要调参数,使结果趋于稳定收敛。运行方法都是正确的,没问题的,但是不同的参数可能导致不同的结果,因此,只要MATLAB还需要一个调试的过程,那调参数当然就需要慢慢调了。。 既然如此,楼主可以尝试下调节比例参数,当然,因为方法是对的,所以计算结果当然也是正确的,只是可能离确切值稍有一点偏差,也就一点点而已。 楼主。。求分数。。真心的。。
再问: 好的,了解了,谢谢。。