Solving a linear equation

后端 未结 10 1853
悲哀的现实
悲哀的现实 2020-11-27 06:47

I need to programmatically solve a system of linear equations in C, Objective C, or (if needed) C++.

Here\'s an example of the equations:

-44.3940 =          


        
10条回答
  •  盖世英雄少女心
    2020-11-27 07:37

    Take a look at the Microsoft Solver Foundation.

    With it you could write code like this:

      SolverContext context = SolverContext.GetContext();
      Model model = context.CreateModel();
    
      Decision a = new Decision(Domain.Real, "a");
      Decision b = new Decision(Domain.Real, "b");
      Decision c = new Decision(Domain.Real, "c");
      model.AddDecisions(a,b,c);
      model.AddConstraint("eqA", -44.3940 == 50*a + 37*b + c);
      model.AddConstraint("eqB", -45.3049 == 43*a + 39*b + c);
      model.AddConstraint("eqC", -44.9594 == 52*a + 41*b + c);
      Solution solution = context.Solve();
      string results = solution.GetReport().ToString();
      Console.WriteLine(results); 
    

    Here is the output:
    ===Solver Foundation Service Report===
    Datetime: 04/20/2009 23:29:55
    Model Name: Default
    Capabilities requested: LP
    Solve Time (ms): 1027
    Total Time (ms): 1414
    Solve Completion Status: Optimal
    Solver Selected: Microsoft.SolverFoundation.Solvers.SimplexSolver
    Directives:
    Microsoft.SolverFoundation.Services.Directive
    Algorithm: Primal
    Arithmetic: Hybrid
    Pricing (exact): Default
    Pricing (double): SteepestEdge
    Basis: Slack
    Pivot Count: 3
    ===Solution Details===
    Goals:

    Decisions:
    a: 0.0785250000000004
    b: -0.180612500000001
    c: -41.6375875

提交回复
热议问题