首页 > 解决方案 > Excel求解器在R中复制

问题描述

我目前正在使用 R/R 闪亮的项目,我想让我的程序更快......

这里我们有一个需要很多时间的功能:

fjeu=function(d){
        res <- sqrt(((A*cos(d)+sqrt(P3.GX.X^2+P3.GX.Y^2)*cos(atan2(P3.GX.X,P3.GX.Y)-asin(A*sin(d)/B)))-C3.GN.X)^2+((A*sin(d)+sqrt(P3.GX.X^2+P3.GX.Y^2)*sin(atan2(P3.GX.X,P3.GX.Y)-asin(A*sin(d)/B)))-C3.GN.Y)^2)-A
        return(res)
}

在此示例中,“n”是一个样本编号,可以介于 100 和 1'000'000 之间。在 100 到 1'000 之间,没问题,代码差不多快,但是当我尝试使用 100'000 或 1'000'000 时,它非常慢。

在我的代码中,我调用了这个函数 360 次(使用角度 -> 从 0 到 360)。

该函数来自一个excel文件,我在其中进行了计算和求解器,但求解器使它更快。

这是我调用函数的代码:

angles <- seq(0, 2*pi, by = (2*pi)/360)
matjeu <- t(matrix(rep(angles), nr=length(angles), nc=n))
exc_max <- apply(apply(matjeu, 2, fjeu), 1, max)

请帮我!

标签: rexcelshinysolver

解决方案


推荐阅读