使用来自不同数据帧的值作为嵌套函数的输入
use values from different dataframes as input for nested function
我如何 运行 下面一段代码,函数 ftn4
使用数据框 I
的值的输出被 newtonraphson
函数使用与数据框 R0
中的值组合。我想将输出存储在与 I
和 R0
.
相同维度(ncol = 5,nrow = 5)的新数据框(R
)中
我卡住了,有什么想法吗?非常感谢任何提示
c = c(0.3)
Ccf = c(0.3)
Acf = c(3*10^-6)
E = c(0.00006)
Ke = c(1000)
I = as.data.frame(matrix(sample(seq(150,300,0.1),25), ncol = 5, nrow = 5))
R0 = as.data.frame(matrix(sample(seq(0.01,0.2,0.001),25), ncol = 5, nrow = 5))
library(spuRs)
ftn4 <- function(x) {
f = { x^2*exp(c*x)- (Ccf*Acf*E*(I/Ke+I))}
f1 = { 2 * x * exp(c * x) + x^2 * (exp(c * x) * c)}
return(c(f,f1))
}
R = as.data.frame(newtonraphson(ftn4, R0, tol = 1e-09 ,max.iter = 1000))
正如评论所指定的那样,您应该将参数传递给产生一个值的函数 ftn4。所以ftn4,应该改成:
ftn4 <- function(x,I) {
f = { x^2*exp(c*x)- (Ccf*Acf*E*(I/Ke+I))}
f1 = { 2 * x * exp(c * x) + x^2 * (exp(c * x) * c)}
return(c(f,f1))
}
现在迭代矩阵 I 和 R0。
R <- data.frame(matrix(NA,nrow=nrow(I), ncol(I)))
for(i in 1:nrow(I)){
for(j in 1:ncol(I)){
R[i,j] <- newtonraphson(ftn = function(x) ftn4(x, I[i,j]),
x0 = R0[i,j],
tol = 1e-09,
max.iter = 1000)
}
}
我如何 运行 下面一段代码,函数 ftn4
使用数据框 I
的值的输出被 newtonraphson
函数使用与数据框 R0
中的值组合。我想将输出存储在与 I
和 R0
.
R
)中
我卡住了,有什么想法吗?非常感谢任何提示
c = c(0.3)
Ccf = c(0.3)
Acf = c(3*10^-6)
E = c(0.00006)
Ke = c(1000)
I = as.data.frame(matrix(sample(seq(150,300,0.1),25), ncol = 5, nrow = 5))
R0 = as.data.frame(matrix(sample(seq(0.01,0.2,0.001),25), ncol = 5, nrow = 5))
library(spuRs)
ftn4 <- function(x) {
f = { x^2*exp(c*x)- (Ccf*Acf*E*(I/Ke+I))}
f1 = { 2 * x * exp(c * x) + x^2 * (exp(c * x) * c)}
return(c(f,f1))
}
R = as.data.frame(newtonraphson(ftn4, R0, tol = 1e-09 ,max.iter = 1000))
正如评论所指定的那样,您应该将参数传递给产生一个值的函数 ftn4。所以ftn4,应该改成:
ftn4 <- function(x,I) {
f = { x^2*exp(c*x)- (Ccf*Acf*E*(I/Ke+I))}
f1 = { 2 * x * exp(c * x) + x^2 * (exp(c * x) * c)}
return(c(f,f1))
}
现在迭代矩阵 I 和 R0。
R <- data.frame(matrix(NA,nrow=nrow(I), ncol(I)))
for(i in 1:nrow(I)){
for(j in 1:ncol(I)){
R[i,j] <- newtonraphson(ftn = function(x) ftn4(x, I[i,j]),
x0 = R0[i,j],
tol = 1e-09,
max.iter = 1000)
}
}