R 构建三对角解算器

R 构建三对角解算器,r,R,给了一个任务来编码一个三对角解算器。 但是,当我尝试运行解算器时,没有得到任何结果。 我在代码中找不到我的错误,如果能得到任何帮助,我将不胜感激 a<-cbind(-1,-1,-1) b<-cbind(2.04,2.04,2.04,2.04) c<-cbind(-1,-1,-1) d<-c(40.8,0.8,0.8,200) tridiagsolver<-function(a,b,c,d){ N<-length(b) for (n in (2:N)){

给了一个任务来编码一个三对角解算器。
但是,当我尝试运行解算器时,没有得到任何结果。 我在代码中找不到我的错误,如果能得到任何帮助,我将不胜感激

a<-cbind(-1,-1,-1)
b<-cbind(2.04,2.04,2.04,2.04)
c<-cbind(-1,-1,-1) 
d<-c(40.8,0.8,0.8,200)

tridiagsolver<-function(a,b,c,d){
 N<-length(b)
 for (n in (2:N)){
 ratio<-a[n]/b[n-1]
 b[n]=b[n]-ratio*c[n-1]
 d[n]=d[n]-ratio*d[n-1]
 }
  d[N]=d[N]/b[N]
  for (n in (1:(N-1))){
   d[N-n]=(d[N-n]-c[N-n]*d[N-n+1])/b[N-n]
  }
  return(d)
  }
tridiagsolver(a,b,c,d)
> tridiagsolver(a,b,c,d)
[1] NA NA NA NA

a
a[N]
没有定义,因为
b
a
长。索引问题?例如,
a[n]/b[n-1]
最终将为
n=4
给出
NA
。谢谢大家,这很有帮助,我得到了我的结果=)