R语言入门——均差表的制作

Posted 统计学小王子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言入门——均差表的制作相关的知识,希望对你有一定的参考价值。

0引言

牛顿插值多项式的构造在增加新的点时不需要重新构造插值基函数,但是每新增一个已知插值点都够造的均差是比较麻烦的,根据均差的性质可以构造插值表简单的计算每一阶需要的均差。本文编写函数构造均差表,只需要输入插值点和插值函数值两列就可以输出所需要的均差表。最后和使用时均差的性质计算的结果做比较.

1、函数构造

1.1均差表

MT <- function(x, y){
  n <- length(x)
  mt <- cbind(x, y)
  for(i in 1:(n-1)){
    m <- diff(y)/diff(x,i)
    mt <- cbind(mt,c(rep(NA,i),m))
    y <- m
  }
  return(mt)
} 

1.2 性质

property <- function(x, y){
  M <- diag(rep(1, length(x))) + matrix(unlist(lapply(x, function(t) t - x)), length(x), length(x))
  sum(y / apply(M, 2, function(x) prod(x)))
}

2、函数的调用

> x <- c(.4,.55,0.596,.65,.80,.9)
> y <- c(0.41075,0.57815,0.63192,0.69675,0.88811,1.02652)
> MT(x, y)
         x       y                                                    
[1,] 0.400 0.41075       NA        NA        NA         NA          NA
[2,] 0.550 0.57815 1.116000        NA        NA         NA          NA
[3,] 0.596 0.63192 1.168913 0.2699645        NA         NA          NA
[4,] 0.650 0.69675 1.200556 0.3164251 0.1858425         NA          NA
[5,] 0.800 0.88811 1.275733 0.3685185 0.2083736 0.05632785          NA
[6,] 0.900 1.02652 1.384100 0.4334667 0.2136452 0.01506181 -0.08253207
> property(x[1], y[1])
[1] 0.41075
> property(x[1:2], y[1:2])
[1] 1.116
> property(x, y)
[1] -0.08253207


可以看出使用性质和均差表做出的结果是一致的.

3、总结

希望可以帮助大家提高R水平。
水平有限发现错误还望及时评论区指正,您的意见和批评是我不断前进的动力。

以上是关于R语言入门——均差表的制作的主要内容,如果未能解决你的问题,请参考以下文章

R语言入门——均差表的制作

《数值分析》-- 牛顿插值

R语言学习2-RMarkdown入门使用

C语言反转单向链表的代码

R语言实战英文书籍,配套源代码,帮助你学习R语言!(可下载)

Cg入门19:Fragment shader - 片段级模型动态变色