私は単純なソルバーの演習に取り組んでおり、を使用するのに苦労していますMath.Pow
。
Math.Pow(error1, 2)
次の行で使用できないのはなぜですか?
error1 = error1 * error1;
error2 = error2 * error2;
エラーが発生します:
エラー3引数1:「Microsoft.SolverFoundation.Services.Term」から「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
ダブルス専用です。
error1 = Model.Power(error1, 2);
error2 = Model.Power(error2, 2);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加