在网上没有找到在 F# 中使用 NLopt 的示例,我一直在尝试将NLoptNet上给出的示例从 C# 转换为 F#。由于对 C# 不熟悉,对 F# 也知之甚少,所以我一直在糟蹋它。
这是我到目前为止所拥有的:
open NLoptNet
open System
let solver = new NLoptSolver(NLoptAlgorithm.LN_COBYLA, uint32(1), 0.001, 100)
solver.SetLowerBounds([|-10.0|])
solver.SetUpperBounds([|100.0|])
let objfunc (variables : float array) =
Math.Pow(variables.[0] - 3.0, 2.0) + 4.0
solver.SetMinObjective(objfunc)
let initial_val = [|2.|]
let finalscore = ref System.Nullable() // ERROR
let result = solver.Optimize(initial_val, finalscore)
这是错误的描述:
连续的参数应该用空格或元组分隔,涉及函数或方法应用的参数应该用括号括起来
更具体地说,我正在尝试将以下三行 C# 转换为 F#:
double? finalScore;
var initialValue = new[] { 2.0 };
var result = solver.Optimize(initialValue, out finalScore);
有任何想法吗?