求解方程根公式uniroot(f,interval,lower=min(interval),upper=max(interval),tol=,maxiter=,)
其中,f表示要求解方程,interval表示包含方程根的初始区间,lower表示interval中方程根初始区间的左端点,upper表示右端点,tol是想要达到的计算精度,maxiter是设置的最大迭代次数。
R:
> x<-rcauchy(1000,1)#表示的是Cauchy分布产生的1000个,每个值相距为1的数,见下面
> x
[1] 2.116535e+00 1.820128e+00 -1.793299e+01 2.126767e+00 1.639780e+00
[6] -1.611596e+01 -4.004089e+00 1.429597e+00 2.040831e+00 -2.248832e-01
[11] 8.781683e-01 1.325409e+00 7.981114e-02 8.350597e-01 3.593475e-01
。。。。。。还有很多值,一共一千个。
> f<-function(p) sum((x-p)/(1+(x-p)^2))#Cauchy分布的方程,其中x的取值就是上面产生的随机数,目标是为了求P的值。
> out<-uniroot(f,c(0,5)) #利用这个函数就接P值,设置P值的区间为0到5
> out
$root #求解出来的方程近似解
[1] 1.077677
$f.root #在此近似解下的方程值
[1] -0.0002070086
$iter #求解过程中,方程迭代的次数
[1] 6
$init.it
[1] NA
$estim.prec #近似解与精确解的误差估计,即近似解与精确解之间误差的绝对值不超过下面的数值
[1] 6.103516e-05