我第一次使用VBA。我从使用Runga Kutta Method的非常基本的代码开始。我无法运行它。我能知道我哪里出错吗?你能为这种微分方程求解器发布一些解决方案吗?
scaled.fn <- function(dt, x, y, i) {
# dt is data.table
# x is dependent column (col name as str)
# y are predictor columns (col names as vector of str)
# i is name of column to multiply, as str
dep = paste(y, collapse = " + ")
my.formula = paste(x, " ~ ", dep, sep = "")
m = lm(formula = my.formula, data = dt)
# column names in dt are named in y
return(dt[, get(i) * coef(m)[i]])
}
答案 0 :(得分:1)
您需要执行RK
程序并为其指定x,y和dx的起始值
要从VBE(Visual Basic编辑器)中执行此操作,请打开立即窗口。如果它不可见,请按Ctrl + G,它应出现在VBE的底部。
在立即窗口中键入类似RK 1, 3, 2
的内容,结果将显示在活动单元格右侧的两列中,并占用6行。
如果您希望按下按钮执行该过程,或者更新某个值时,您需要为此添加额外的代码。
修改强>
刚刚注意到这些行 - RK = y + ((K1 + 2 * (K2 + K3 + K4)) / 6)
和ynew = RK(x, y, dx)
RK
过程不会返回值,也不能将其设置为值
此链接可能有助于解释它:http://what-when-how.com/excel-vba/vba-sub-and-function-procedures/