【发布时间】:2015-08-23 13:17:04
【问题描述】:
我如何运行以下代码,使用来自数据框I 的值的函数ftn4 的输出被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))
【问题讨论】:
-
您的函数正在尝试通过使用数据帧 f 和值 f1 创建一个向量 c(f,f1)。尝试使用 ftn4(0.012) 之类的示例。看起来您必须更新您的函数,然后将其应用于 R0 的每一列。
-
@AntoniosK 问题在于
newtonraphson函数需要一个函数作为输入,该函数会产生像c(f,f1)这样的向量,因为它使用迭代过程来收敛两个值