【发布时间】:2018-01-28 06:12:28
【问题描述】:
我正在尝试执行一个执行二分法的函数。但是我得到了很多我不明白的错误。代码是:
bisection<-function(f,a,b,n=1000,tol=1e-9)
{
if(!(f(a)<0) && (f(b)>0)){stop};
elseif((f(a)>0) && (f(b)<0)){stop};
for (i in 1:n){
c=(a+b)/2;
if((f(c)==0)||((b-a)/2)<tol){return(c)};
elseif(sign(f(c))==sign(f(a)),a<-c,b<-c);
}
}
我从 R 得到以下信息:
> bisection<-function(f,a,b,n=1000,tol=1e-9)
+ {
+ if(!(f(a)<0) && (f(b)>0)){stop};
+ elseif((f(a)>0) && (f(b)<0)){stop};
Error: unexpected '{' in:
" if(!(f(a)<0) && (f(b)>0)){stop}
elseif((f(a)>0) && (f(b)<0)){"
> for (i in 1:n){
+ c=(a+b)/2;
+ if((f(c)==0)||((b-a)/2)<tol){return(c)};
+ #elseif(sign(f(c))==sign(f(a)),a<-c,b<-c);
+ }
Error: object 'n' not found
> }
Error: unexpected '}' in "}"
如果有人能指出我做错了什么,我将不胜感激。 提前谢谢!
【问题讨论】:
-
您希望
bisection输出的结果应该是什么?