r语言入门系列3

时间:2022-05-20 20:02:04

1.  repeat循环语句

> f=1

>f[2]<-2

> i=1

>repeat{

+f[i+2]<-f[i]+f[i+1]

+i<-i+1

+if(f[i]+f[i+1]>100) break

+ }

> f

 [1]  1 2  3  5  8 1321 34 55 89

2. 二分法求方程的根

   >fzero <- function(f, a, b, eps=1e-5){

+ if (f(a)*f(b)>0)

+ list(fail="finding root isfail!")

+ else{

+   repeat{

+     if(abs(a-b)<eps) break

+     x<-(a+b)/2

+     if(f(a)*f(x)<0) b<-x

+     else  a<-x

+ }

+ list(root=(a+b)/2,fun=f(x))

+ }

+ }  二分法程序

> f<-function(x) x^3-x-1  定义一函数

> fzero(f,1,2,1e-5)  调用二分法程序

$root

[1] 1.324718

 

$fun

[1] -1.405875e-05