非线性方程的一个算法问题
我想编一个程序求解一个非线性方程1=x/sqrt(x-f(x))
f(x)是x的函数,x在(0,1)区间内。
这是举个例子,形式大概是这样,但比这个复杂
本来有牛顿迭代法、二分法、连分式法等多种可以用的方法。
但牛顿迭代法需要有这个方程的导数形式,求不出来。
二分法给定一个范围,0和1倒是可以,但是这个方程的根是很精确的,要想用二分法找到根,需要分的特别细,那几本就和x从0到1循环一个样了
后来就用了连分式法,这个方程有两个根,一个靠近1,一个靠近0,需要靠近1的那个,所以用连分式的时候给的初值x是0.999999,x=1的时f(x)会有错误。
但追踪这个连分式的迭代过程,x值会有时大过1,x大于1的时候方程也有解,但是只能取小于1的那个,所以总是迭代出大于1的解
这个问题困惑我一个星期了,怎么都弄不出来这个了,求高手赐教。