gpt4 book ai didi

c# - 将 Math.Pow 与 Microsoft Solver Foundation 结合使用

转载 作者:行者123 更新时间:2023-12-02 08:37:17 24 4
gpt4 key购买 nike

我正在做一个简单的求解器练习,但我很难使用 Math.Pow

为什么我不能在下面的行中使用 Math.Pow(error1, 2)

error1 = error1 * error1;
error2 = error2 * error2;

报错:

Error 3 Argument 1: cannot convert from 'Microsoft.SolverFoundation.Services.Term' to 'double'

相关代码:

using Microsoft.SolverFoundation.Common;
using Microsoft.SolverFoundation.Services;

...

private void Form1_Load(object sender, EventArgs e)
{
var solver = SolverContext.GetContext();
var model = solver.CreateModel();
Decision R = new Decision(Domain.Real, "R");
Decision T = new Decision(Domain.Real, "T");
model.AddDecisions(R);
model.AddDecisions(T);

var xr1=5;
var xr2=4;
var xp1 = 6;
var xp2=8;
var error1 = xr1 * R + T - xp1;
var error2 = xr2 * R + T - xp2;
error1 = error1 * error1;
error2 = error2 * error2;
model.AddGoal("error",GoalKind.Minimize,error1+error2);

var solution = solver.Solve();
var valordeR = R.GetDouble();
var valordeT = T.GetDouble();
}

最佳答案

您可以使用 Model.Power方法。 Math.Pow仅适用于 double 。

error1 = Model.Power(error1, 2);
error2 = Model.Power(error2, 2);

关于c# - 将 Math.Pow 与 Microsoft Solver Foundation 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20162094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com