wayne 发表于 2021-5-23 22:14:12

kastin 发表于 2021-5-23 21:33
"非线性方程在 x0邻域内是可以快速收敛的",如果是这样的,那么给出Root[{expr,x0}]等价于给出了精确的 ...
非常有意思。我构造了一个在x0处一阶导函数和二阶导函数都为0的例子。发现Mathematica的Solve/Reduce这类的函数都失效了。 $-\sin (x)-\log \left(\cos \left(\frac{x}{2}\right)-\sin \left(\frac{x}{2}\right)\right)+\log \left(\sin \left(\frac{x}{2}\right)+\cos \left(\frac{x}{2}\right)\right)=0$
这充分说明 楼上mathe的解释正是Mathematica背后的算法。就是判断给定区间内二阶导函数不变号。如果二阶导数为0的话,算法就歇菜了。哈哈哈。 自此 神秘感 彻底消失。本话题 结题。

zeroieme 发表于 2021-5-24 14:42:24

果然是类Hold的形式,保留最后才求近似值。
新技术是整合了零点分析。
而关于根的表示形式,其实之前已经跟wayne讨论过了。
https://bbs.emath.ac.cn/forum.php?mod=redirect&goto=findpost&ptid=16945&pid=81322&fromuid=3965



zeroieme 发表于 2021-5-24 14:50:35

接着讨论是Root[{expr,x0}]除了作为一个表示某实数的符号,是否还能参与【真正的计算】。

最简单测试
构造Root[{expr,x1}]与Root[{expr,x2}],x2是比x1更精确的数值根。 Mathematica能否知道这俩等值呢?

mathematica 发表于 2021-5-24 15:33:51

wayne 发表于 2021-5-23 22:14
非常有意思。我构造了一个在x0处一阶导函数和二阶导函数都为0的例子。发现Mathematica的Solve/Reduce这类 ...

解个方程组看看

wayne 发表于 2021-5-24 16:20:05

zeroieme 发表于 2021-5-24 14:50
接着讨论是Root[{expr,x0}]除了作为一个表示某实数的符号,是否还能参与【真正的计算】。

最简单测试

非常有道理。测试一下,看是否严格等于1
{x0,y0}=First==x,y==Sin^2},{x,y},Reals]]
FullSimplify

无心人 发表于 2021-5-24 17:59:50

其实,只考虑多项式就行了,因为你可以把大部分函数,变成近似多项式形式,而且,误差是可以估算出来的

无心人 发表于 2021-5-24 18:00:51

而多项式是有确定性的数值解的方法的
页: 1 [2]
查看完整版本: 非线性代数方程(组)的所有根的无限精度的 逆天算法?