R语言 插值函数

R语言 插值函数

在这篇文章中,我们将通过R编程语言中的工作实例来探讨近似()和近似()插值函数。

Approx() 和 Approxfun() 插值函数

这些函数返回一个对给定数据点进行线性插值的点列表,或一个执行线性(或常数)插值的函数。

语法

  • approx (x, y = NULL, xout, method = "linear", n = 50, yleft, yright, rule = 1, f = 0, ties = mean)
  • approxfun(x, y = NULL, method = "linear", yleft, yright, rule = 1, f = 0, ties = mean)

参数

  • x, y :数字向量,给出要插值的点的坐标。
  • xout:一组可选的数值,指定插值发生的位置。
  • method:指定要使用的插值方法。选择是 “线性 “或 “常数”。
  • n:如果没有指定xout,插值将在间隔[min(x), max(x)]的n个等间距的点上进行。
  • yleft: 当输入的x值小于min(x)时要返回的值。
  • yright:当输入的x值大于max(x)时要返回的值。
  • rule:一个整数(长度为1或2),描述如何在区间[min(x), max(x)]之外进行插值。
  • ties:处理绑定的x值。

方法1:对两个坐标应用近似函数

在这个方法中,我们将对两个坐标应用近似函数,使用以给定向量为参数传递的近似函数,得到一个给定两个不同数据点的内插点的列表。

例子

在这个例子中,我们使用了两个向量,第一个是从0到10,另一个是从0到20,然后通过调用近似函数并将创建的向量传递给函数,我们得到了线性内插n的点的列表,并进一步形成更好的可视化,我们必须在R编程语言中创建点的图。

# Create vector
x <- c(0, 10)    
y <- c(0, 20)  
  
# Apply approx function
data_approx1 <- approx(x, y)       
data_approx1    
  
# Draw output of approx function
plot(data_approx1x,                 
     data_approx1y)
points(x, y,
       col = "red",
       pch = 16)
R

输出

$x 

[1] 0.0000000 0.2040816 0.4081633 0.6122449 0.8163265 1.0204082 1.2244898 1.4285714 1.6326531 1.8367347 

[11] 2.0408163 2.2448980 2.4489796 2.6530612 2.8571429 3.0612245 3.2653061 3.4693878 3.6734694 3.8775510 

[21] 4.0816327 4.2857143 4.4897959 4.6938776 4.8979592 5.1020408 5.3061224 5.5102041 5.7142857 5.9183673 

[31] 6.1224490 6.3265306 6.5306122 6.7346939 6.9387755 7.1428571 7.3469388 7.5510204 7.7551020 7.9591837 

[41] 8.1632653 8.3673469 8.5714286 8.7755102 8.9795918 9.1836735 9.3877551 9.5918367 9.7959184 10.0000000 

$y 

[1] 0.0000000 0.4081633 0.8163265 1.2244898 1.6326531 2.0408163 2.4489796 2.8571429 3.2653061 3.6734694 

[11] 4.0816327 4.4897959 4.8979592 5.3061224 5.7142857 6.1224490 6.5306122 6.9387755 7.3469388 7.7551020 

[21] 8.1632653 8.5714286 8.9795918 9.3877551 9.7959184 10.2040816 10.6122449 11.0204082 11.4285714 11.8367347 

[31] 12.2448980 12.6530612 13.0612245 13.4693878 13.8775510 14.2857143 14.6938776 15.1020408 15.5102041 15.9183673 

[41] 16.3265306 16.7346939 17.1428571 17.5510204 17.9591837 18.3673469 18.7755102 19.1836735 19.5918367 20.0000000 
Bash

R语言中的插值函数

方法2:对多个坐标应用近似函数

在这个方法中,要对多个坐标应用近似函数,用户必须创建包含多个坐标的向量,这些向量必须像上述方法的函数那样进一步传递,该函数将返回线性内插的向量列表给用户。

例子

在这个例子中,我们将相应地创建具有多个坐标的向量,然后传递给函数 approx,以获得所传递的向量的插值列表,为了实现可视化,我们必须创建点的绘图。

# Create vector
x <- c(1,8,9,4,7,6,5)    
y <- c(0,6,5,1,4,7,9)  
  
# Apply approx function
data_approx1 <- approx(x, y)       
data_approx1    
  
# Draw output of approx function
plot(data_approx1x,                 
     data_approx1y)
points(x, y,
       col = "red",
       pch = 16)
R

输出

$x 

[1] 1.000000 1.163265 1.326531 1.489796 1.653061 1.816327 1.979592 2.142857 2.306122 2.469388 2.632653 2.795918 2.959184 

[14] 3.122449 3.285714 3.448980 3.612245 3.775510 3.938776 4.102041 4.265306 4.428571 4.591837 4.755102 4.918367 5.081633 

[27] 5.244898 5.408163 5.571429 5.734694 5.897959 6.061224 6.224490 6.387755 6.551020 6.714286 6.877551 7.040816 7.204082 

[40] 7.367347 7.530612 7.693878 7.857143 8.020408 8.183673 8.346939 8.510204 8.673469 8.836735 9.000000 

$y 

[1] 0.00000000 0.05442177 0.10884354 0.16326531 0.21768707 0.27210884 0.32653061 0.38095238 0.43537415 0.48979592 

[11] 0.54421769 0.59863946 0.65306122 0.70748299 0.76190476 0.81632653 0.87074830 0.92517007 0.97959184 1.81632653 

[21] 3.12244898 4.42857143 5.73469388 7.04081633 8.34693878 8.83673469 8.51020408 8.18367347 7.85714286 7.53061224 

[31] 7.20408163 6.81632653 6.32653061 5.83673469 5.34693878 4.85714286 4.36734694 4.08163265 4.40816327 4.73469388 

[41] 5.06122449 5.38775510 5.71428571 5.97959184 5.81632653 5.65306122 5.48979592 5.32653061 5.16326531 5.00000000 
Bash

R语言中的插值函数

方法3:使用 approxfun 创建一个用户定义的插值函数

在这个方法中,要创建一个用户定义的插值函数,用户需要调用 approxfun() 函数,并传递所需的参数,以便在 R 编程语言中获得相应的插值。

例子

在这个例子中,我们将创建相应的向量,并将这个给定的向量传递给 approxfun 函数,然后在 R 编程语言中用 approxfun 函数给出的曲线绘制 x 和 y 点的图。

# Create vector
x <- c(1,8,9,4,7,6,5)    
y <- c(0,6,5,1,4,7,9)  
  
# Apply approx function
data_approxfum <- approxfun(x, y)       
data_approxfum    
  
# Draw output of approx function
plot(x, y)                        
curve(data_approxfum, add = TRUE)
R

输出

function (v) 
.approxfun(x, y, v, method, yleft, yright, f, na.rm)
<bytecode: 0x000001bf4ba22068>
<environment: 0x000001bf4d2c0408>
R

R语言中的插值函数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册