作业帮 > 英语 > 作业

mathematica用FindRoot命令出现了一下错误,

来源:学生作业帮 编辑:作业帮 分类:英语作业 时间:2024/08/29 03:27:03
mathematica用FindRoot命令出现了一下错误,
FindRoot::cvmit:Failed to converge to the requested accuracy or precision within 100 iterations.>>
General::stop:Further output of Set::write will be suppressed during this calculation.>>
还有以下几个出错提示:是啥意思啊?FindRoot::lstol:The line search decreased the step size to within tolerance specified by AccuracyGoal and PrecisionGoal but was unable to find a sufficient decrease in the merit function.You may need more than MachinePrecision digits of working precision to meet these tolerances.>>
General::stop:Further output of FindRoot::cvmit will be suppressed during this calculation.>>
这几个的介绍在帮助里面都有啊,你点一下后面的>>就可以查看了.注意“更多信息”部分也要读.
简单的说,第一个,是说你的寻根在百次迭代内没有达到软件数值求解的默认精度;第三个是类似的,只不过这个是说在内部精度下找不到有效下降之类.直接通过这类警告的字面去解决问题,常常并不好使,因为产生错误的原因是多种多样的,而这个警告,就我个人经验,更偏向于指出内部计算所出现的问题.你点下它们后面的>>,里面就提了几种可能产生问题的原因,你好好看看.此外要注意的是,有的时候,根不存在也会使FindRoot出现这些警告.
第二个和第四个,如果同一个警告反复出现就会出现这个,简单地说就是节省版面.顺便第二个里被省掉的是Set::write,会出现这个错误,十有八九又是有哪里的=被写成==了.