我正在用MATLAB解决3个线性代数方程。我知道预期的解决方案,其中一个应该是0
,但它显示的是/q/2061 ) 了解更多信息。 –
@SandipanDey这是一些危险的建议,因为如果分部的输出是一些_legit_十进制数 - 这些信息将会丢失。 @partho - 如果你必须围绕它,使用已知的精确度 - 'round(...,N)',其中'N'大约为6。但是,问题在于您使用错误的运算符来求解线性方程式......我会尽快发布答案。 –
本文介绍了Matlab求解器中的相对公差和绝对公差定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
我不明白为什么AbsTol会在解决方案接近零时确定精度(实际上,如果我的问题的解决方案是半径为7000 km的圆形轨道,那么它将不满足),而RelTol为何会控制其中的正确数字所有解决方案组件,但小于阈值AbsTol(i)的组件.确定每种公差的实际表达式是什么?我想获得更简单易懂的定义.
执行优化时,需要确定何时停止.检查您的解决方案是否足够好的一种方法是检查解决方案是否仍在发生重大变化.有两种方法可以衡量解决方案的变化:相对变化(即变化百分比)或绝对变化.
检查相对变化很有意义,因为变化5意味着解决方案在大约1时与在大约100000时有很大的不同.因此,优化例程在每次迭代时进行检查i
abs(1-x(i)/x(i-1))<relTol
,即自上次迭代以来新解决方案已更改的比例.请注意,如果同时优化多个参数,则x
可以是解决方案的数组(因此,解决方案具有多个组件").当然,您希望所有解决方案组件"都满足条件,然后再停止进一步优化.
但是,由于x/0
是不确定的,所以当解决方案约为零时,相对公差会成为问题.因此,在abs(x(i)-x(i-1))<absTol
时也要查看值的绝对变化并退出优化是有意义的.如果选择的absTol
足够小,则只有relTol
才可计入大型解决方案,而absTol
仅在解决方案位于0附近时才有意义.
由于当两个条件中的任何一个满足时求解器都会停止,因此您通过(c5>或relTol
)确定与(局部)最优解的接近程度.例如,如果relTol
为10%,除非您的解决方案约为零,否则您将永远不会比最佳解决方案接近10%,在这种情况下,在满足absTol
标准(例如0.0001)之前relTol
标准.
这篇关于Matlab求解器中的相对公差和绝对公差定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
我正在用MATLAB解决3个线性代数方程。我知道预期的解决方案,其中一个应该是0
,但它显示的是/q/2061 ) 了解更多信息。 –
@SandipanDey这是一些危险的建议,因为如果分部的输出是一些_legit_十进制数 - 这些信息将会丢失。 @partho - 如果你必须围绕它,使用已知的精确度 - 'round(...,N)',其中'N'大约为6。但是,问题在于您使用错误的运算符来求解线性方程式......我会尽快发布答案。 –