||
一个简单的插值问题
jinlongzhang01@gmail.com
举例: 一个均匀的坐标轴上,x取0.5时,y为0.7, x取11.5时,y为13.9,问x取6.1时, y的值。
该题为插值问题,可以用线性插值公式解决:
参见: http://zh.wikipedia.org/wiki/%E7%BA%BF%E6%80%A7%E6%8F%92%E5%80%BC
该公式其实也可以通过解一元二次方程来推导。
## 线性方程一般的形式如下:
y = a*X + b
所以题目中的关系也可用以下方程组来表示:
## 0.7 = a*0.5 + b
## 13.9 = a*11.5 + b
即:
a*0.5 + b = 0.7
a*11.5 + b = 13.9
##写成矩阵形式如下
Ax =b
###在R中,可用solve 函数对线性方程组求解
### 示例R code 如下:
A <- matrix(c(0.5, 1, 11.5, 1), nrow = 2, byrow = TRUE)
b <- c(0.7, 13.9)
res <- solve(A, b)
### 写成函数
fx <- function(x){
y <- res[1]*x + res[2]
return(y)
}
fx(6.1)
### 结果为7.42
### 所以当x取值为6.1时, y为7.42
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-21 21:42
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社