如何在 C# 中通过 MathNet 查找函数的值
How Can I Find Function's Value by MathNet in C#
我需要找到给定值的函数值。比如函数是3x-6,想求f(1),
using MathNet.Numerics;
using MathNet.Symbolics;
using Expr = MathNet.Symbolics.SymbolicExpression;
var x = Expr.Variable("x");
var func = 3*x - 6;
// var value = func.Evaluate?
我应该使用评估方法吗?我该怎么做?
你的表述和评价不正确
您可以执行一个将 x 作为参数的方法,并通过使用正确的代码获得正确的结果。
这是一个工作示例,内联 comments/explanation 您的问题。你可以改变你的等式,用它做任何事。享受:
public static double MyFunc(int x)
{
// pass one or multiple variable in equation
var variables = new Dictionary<string, FloatingPoint>
{
{ "x", x }
};
//transfer equation from string to expression
Expression expression = Infix.ParseOrThrow("3*x-6");
//evaluate the result in double
double result = Evaluate.Evaluate(variables, expression).RealValue;
return result;
}
现在 运行 它,然后传递 MyFunc(1)
就像 f(1)
,它 returns -3
,传递 MyFunc(2)
returns 0
并传递 MyFunc(3)
returns 3
等等
我需要找到给定值的函数值。比如函数是3x-6,想求f(1),
using MathNet.Numerics;
using MathNet.Symbolics;
using Expr = MathNet.Symbolics.SymbolicExpression;
var x = Expr.Variable("x");
var func = 3*x - 6;
// var value = func.Evaluate?
我应该使用评估方法吗?我该怎么做?
你的表述和评价不正确
您可以执行一个将 x 作为参数的方法,并通过使用正确的代码获得正确的结果。
这是一个工作示例,内联 comments/explanation 您的问题。你可以改变你的等式,用它做任何事。享受:
public static double MyFunc(int x)
{
// pass one or multiple variable in equation
var variables = new Dictionary<string, FloatingPoint>
{
{ "x", x }
};
//transfer equation from string to expression
Expression expression = Infix.ParseOrThrow("3*x-6");
//evaluate the result in double
double result = Evaluate.Evaluate(variables, expression).RealValue;
return result;
}
现在 运行 它,然后传递 MyFunc(1)
就像 f(1)
,它 returns -3
,传递 MyFunc(2)
returns 0
并传递 MyFunc(3)
returns 3
等等