找回密码
 欢迎注册
查看: 38201|回复: 32

[原创] 指定区间内的求解非线性方程所有零点的数值方法

[复制链接]
发表于 2014-1-12 17:39:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
对于单非线性方程,给定初始值(只要不是在导数为零的位置),一般能通过牛顿法或者其他方法数值求解出一个该点附近的根。

但是如果给定的是一个区间,想要求解该区间内的所有根,如何求解呢?假设给定绝对误差Tol,即最小分辨率为Tol(因此若两个相邻的根的距离如果小于Tol,则至多只有一个根能被搜索到)。

最近遇到这个问题。不知道有没有人看过相关论文?或是有什么好方法?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-1-16 19:40:48 | 显示全部楼层
你这个问题等价于求出非线性方程所有的解吧.

好像是没有通用的形式分析思路的, 即便是所有的数值解.

=========
但是呢,针对给定的情况,我们总是能通过分析其单调性,算出给定区间的所有解的.
(如果不单调,就细化该区间,分别判断单调性,直至所有细化的区间都满足单调性为止...)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2014-1-18 16:07:53 | 显示全部楼层
wayne 发表于 2014-1-16 19:40
你这个问题等价于求出非线性方程所有的解吧.

好像是没有通用的形式分析思路的, 即便是所有的数值解.

是的,关键是单调区间如何确定,这就涉及到导数的所有零点了。
如果采用求出的零点基础上加上步长递增的方式来作为初始点,不断使用牛顿法来求接下来的零点,这对于一些高振荡函数就不太理想了,因为无法准确知道这个步长到底该取多少合适。

鉴于所有的根求出来比较困难,有可能是无穷多个,所以问题应该这样叙述比较合适——求出给定区间[a,b]内的所有根(当然这也不能排除某些函数在该区间内有无穷多个根的情形,这种特殊例子我们就不去考虑)。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-1-19 10:40:21 | 显示全部楼层
kastin 发表于 2014-1-18 16:07
是的,关键是单调区间如何确定,这就涉及到导数的所有零点了。
如果采用求出的零点基础上加上步长递增的 ...


可能我前面的意思没表达清楚,是这样的:
这种话题没有形式逻辑的解决方案,即我们无法用大一统的可以程序化的方法解决。
(通过抽象的数学符号完整的解决,或者是普适的,大一统的程序化算法解决)

但是给定了某个特定的例子(实例化了),我们总是能非常透彻的给出函数性态.
进而给出所有解的 (话可能说的有点绝了,是几乎所有解,但离“所有解”也无本质的差别了).

我借助各种数学工具就能轻松办到(不信,你抛出几道看看?, )
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-1-19 11:13:31 | 显示全部楼层
呵呵,我提供一个比较复杂的非线性方程组:你可以试一试
$a^2*(cos(t_i)-cos(t_{i+1}))^2+b^2*(sin(t_i)-sin(t_{i+1}))^2=L^2$  $ (i=1...n,t_{n+1}=t_1)
$例如:
1.取$n=5,a=5,b=3,L=4.7,t_1={pi*k}/{2*100},k=1~100$时所有的解$t_1<t_2<t_3<t_4<t_5<2*pi$
2.取$n=6,a=5,b=3,L=3.7,t_1={pi*k}/{2*100},k=1~100$时所有的解$t_1<t_2<t_3<t_4<t_5<t_6<2*pi$
3.取$n=7,a=5,b=3,L=3.1,t_1={pi*k}/{2*100},k=1~100$时所有的解$t_1<t_2<t_3<t_4<t_5<t_6<t_7<2*pi$
当然你可以画图表达结果,此问题取自 http://bbs.emath.ac.cn/thread-4289-2-2.html


点评

mathe提醒的对,不能指定L,那就好理解了  发表于 2014-1-19 12:43
不应该指定初始位置的,椭圆又不是圆  发表于 2014-1-19 12:13
那方程组岂不是超定了  发表于 2014-1-19 12:13
我只是想指定起始点(即指定解的个数),否则就有无数个解了。  发表于 2014-1-19 11:52
$t_1$是多余的条件吧  发表于 2014-1-19 11:50
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-1-19 11:47:31 | 显示全部楼层
数学星空 发表于 2014-1-19 11:13
呵呵,我提供一个比较复杂的非线性方程组:你可以试一试
  例如:
1.取时所有的解

这个好像可以递推计算的。
应该不指定L,然后要求首尾重合
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-1-19 12:06:46 | 显示全部楼层
mathe
能试着计算一下吗?
对于N=5 我用maple曾经计算了一些点,见下图
001.gif

点评

这是超椭圆方程吧!  发表于 2014-1-21 08:00
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-1-19 12:53:22 | 显示全部楼层
你的这个例子,根据几何意义,对L进行二分法显然可以比较容易求解
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-1-19 14:45:14 | 显示全部楼层
对于N=5, 我通过计算得到如下图形
N=5.gif
似乎这些等五边形内切一个四次曲线,并且关于x,y轴对称,并且与在x,y轴上的截距相等
有谁能算出此曲线??
初步推测为此曲线为$x^4+y^4+f_1(a,b)*x^2*y^2=f_2(a,b)$???
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-1-19 15:47:48 来自手机 | 显示全部楼层
也就是椭圆上定长弦包络出来的曲线。

点评

是的,能算出此曲线的表达式吗?  发表于 2014-1-19 15:51
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-19 11:12 , Processed in 0.050339 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表