y=function(x){x^3-x-1} #所求函数#
z=function(x){3*x^2-1} #导函数#
#下面是牛顿迭代法#
Newton=function(f,z,a,b,TOL,N){
n=0
x=0
while(n<=N){
xx=x-y(x)/z(x)
n=n+1
if(abs(xx-x)>TOL) x=xx
}
list(boot=xx,fun=f(x),n)
}
r0=fpi(y,z,1,2,1e-5,1e+5);r0
运行出现的问题是:错误于fpi(y, z, 1, 2, 1e-05, 1e+05) : 参数((1e+05)) 没有用
#定点迭代#
fpi=function(f,a,b,TOL,N0){n=0
while( abs(a-b)>TOL & n<=N0 ) {
a=(a+b)/2 #此处让a变成初始值X0,这样做我是为了使上面的循环abs(a-b)方便#
b=f(a) #让b代表成新生成的x,即对应Xn的Xn+1#
n=n+1
}
list(boot=b,fun=f(x),n)
}
r0=fpi(f,1,2,1e-5,1e+5)r0
出现的问题是:
错误于while (abs(a - b) > TOL & n <= N0) { :
需要TRUE/FALSE值的地方不可以用缺少值
#这里我知道是算出来的结果发散了,而不是收敛的,不知道要怎么改#
这个程序我还用二分法写过,二分法运行正常,希望论坛里有人能帮下忙。


雷达卡





京公网安备 11010802022788号







