电力公司:拉格朗日插值法

原创 2018年04月16日 19:26:03

怎么弥补缺失值?

# 设置工作空间

# 把“数据及程序”文件夹拷贝到F盘下,再用setwd设置工作空间

setwd("F:/数据及程序/chapter6/示例程序")

 

library(XLConnect)

missing_data <- XLConnect::readWorksheetFromFile(file = "./data/missing_data.xls",

                                                 sheet = 1, header = FALSE)

 

lagrange <- function(x, xi, yi) {

  n <- length(xi)

  lage <- 0

  for (i in 1:n) {

    li <- 1

    for (j in 1:n) {

      if (i != j) {

        li <- li * (x - xi[j]) / (xi[i] - xi[j])

      }

    }

    lage <- li * yi[i] + lage

  }

  return(lage)

}

 

missdata <- missing_data

 

for (k in 1:3) {

  x <- which(is.na(missing_data[, k]))

  x1 <- c(0, x)

  x2 <- c(x, nrow(missing_data))

  x12 <- x2 - x1 - 1

  xx1 <- x12[1:(length(x12) - 1)]  # 缺失值前面的行数

  xx2 <- x12[2:(length(x12))]  # 缺失值后面的行数

  

  j <- 1

  for (m in x) {

    if (xx1[j] >= 5) {  # 空值前的判断

      xi <- (m - 5):(m - 1)

    } else {

      xi <- (m - xx1[j]):(m - 1)

    }

    if (xx2[j] >= 5) {  # 空值后的判断

      xi <- c(xi, (m + 1):(m + 5))

    } else {

      xi <- c(xi, (m + 1):(m + xx2[j]))

    }

    yi <- missing_data[xi, k]

    missdata[m, k] <- lagrange(m, xi, yi)

    print(c(m, missdata[m, k]))

    j <- j + 1

  }

}


拉格朗日插值法实现

拉格朗日插值法,代码,数学,算法
  • xieshimao
  • xieshimao
  • 2016-08-23 12:22:53
  • 1526

拉格朗日插值法复习小计

拉格朗日插值法概述因为n次方的函数图像可以有n+1个点确定(比如说y=kx+b就只用两个点确定,y=ax2+bx+cax^2+bx+c,只用三个点就可以确定),所以个n次方的方程给你n+1个x或者y就...
  • doyouseeman
  • doyouseeman
  • 2016-02-26 20:40:26
  • 1513

拉格朗日插值法的MATLAB源程序

function y0=Lagrange(x,y,x0) %给定一系列插值点(x,y),得到在x=x0处,拉格朗日插值多项的值y0 n=length(x); l=ones(1,n);  %基函数...
  • wenyusuran
  • wenyusuran
  • 2014-12-04 16:17:40
  • 2905

拉格朗日插值法.rar

  • 2009年07月08日 20:59
  • 406B
  • 下载

数值分析(一)拉格朗日插值法c++实现

#include #include #include using namespace std; typedef struct { int x; float y; } LAGRA...
  • DLL42
  • DLL42
  • 2016-08-02 18:01:49
  • 405

插值法:拉格朗日插值、牛顿插值

拉格朗日插值法 (*以下定义选自维基百科) 算法流程图 算法代码 [cpp] view plaincopy #include   #include   #in...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-01-12 12:16:10
  • 3138

拉格朗日插值法及应用

拉格朗日插值法 一般方法 重心拉格朗日插值法 应用 bzoj4559:成绩比较 bzoj2655: calc bzoj3453:XLkxc 拉格朗日插值法 快速根据点值逼...
  • qq_35649707
  • qq_35649707
  • 2017-09-18 14:40:31
  • 1869

拉格朗日插值法学习笔记

对于一个n次函数P(x)=a0+a1x+a2x2+....anxnP(x)=a0+a1x+a2x2+....anxnP(x)=a_0+a_1x+a_2x^2+....a_nx^n 如果要求这个函数的...
  • L_0_Forever_LF
  • L_0_Forever_LF
  • 2018-03-01 16:48:28
  • 79

拉格朗日插值和牛顿插值法

  • 2010年11月20日 18:44
  • 2KB
  • 下载

计算方法_拉格朗日插值_C++实现_方法1

拉格朗日(lagrange)插值计算2007-03-09 21:19/** 拉格朗日插值计算 拉格朗日插值公式: n n Pn(x(i)...
  • shaguabufadai
  • shaguabufadai
  • 2016-11-03 21:50:26
  • 2367
收藏助手
不良信息举报
您举报文章:电力公司:拉格朗日插值法
举报原因:
原因补充:

(最多只允许输入30个字)