Der*_*yBK 1 .net c# math console mathnet-numerics
不确定这是本网站的正确部分,但我有一个问题。
所以,我使用 MathNet.Numerics 来计算导数。我想在控制台中显示它们。
代码示例
using System;
using MathNet.Numerics;
namespace math
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Func<double,double> f = x => 3 * Math.Pow(x, 3) + 2 * x - 6;
var test = Differentiate.DerivativeFunc(f, 1);
Console.WriteLine(test.ToString());
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题
\n\n让我重新表述您的问题,以确保我理解并正确回答您:给定功能3x\xc2\xb3 + 2x - 6
您想要在控制台中打印的函数,导数方程9x\xc2\xb2 + 2
Math.NET Numerics 库无法做到这一点
\n\n这个库做计算。它不会尝试构建导数方程。
\n\n看:Differentiate.DerivativeFunc方法返回一个 C# 方法,Func<double, double>
该方法采用 double 作为参数,并返回 double 作为结果。此签名使得无法检索f\'的方程。深入研究代码,您会发现该库主要用于计算近似值。
然而 Math.NET 符号可以
\n\nhttps://symbolics.mathdotnet.com/就是您正在寻找的内容。我写了以下代码:
\n\n// using System;\n// using MathNet.Symbolics;\n// using Expr = MathNet.Symbolics.SymbolicExpression;\n\nvar x = Expr.Variable("x");\nvar func = 3 * (x * x * x) + 2 * x - 6;\nConsole.WriteLine("f(x) = " + func.ToString());\n\nvar derivative = func.Differentiate(x);\nConsole.WriteLine("f\'(x) = " + derivative.ToString());\n
Run Code Online (Sandbox Code Playgroud)\n\n在控制台中打印:
\n\n\n\nf(x) = -6 + 2*x + 3*x^3
\n\nf\'(x) = 2 + 9*x^2
\n