Je ne suis pas sûr que ce soit la bonne section de ce site, mais j'ai une question.

Donc, j'utilise MathNet.Numerics pour calculer une dérivée. Je veux les afficher dans la console.

Exemple de code

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();
        }
    }
}
1
DerzkeyBK 17 févr. 2020 à 13:50

1 réponse

Meilleure réponse

Question

Permettez-moi de reformuler votre problème pour être sûr de bien comprendre et de vous répondre correctement : Étant donné la fonction 3x³ + 2x - 6 vous voudriez imprimer dans la console l'équation de la dérivée 9x² + 2

La bibliothèque Math.NET Numerics ne peut pas faire ça

Cette bibliothèque fait du calcul. Il ne cherche pas à construire l'équation de la dérivée.

Regardez : Differentiate.DerivativeFunc renvoie une méthode C# Func<double, double> qui prend un double comme paramètre et renvoie un double comme résultat. Cette signature rend impossible la récupération de l'équation de f'. Allez plus loin dans le code et voyez que la bibliothèque est entièrement consacrée au calcul des résultats avec une approximation.

Cependant Math.NET Symbolics peut 😀

https://symbolics.mathdotnet.com/ est ce que vous recherchez. J'ai écrit le code suivant :

// using System;
// using MathNet.Symbolics;
// using Expr = MathNet.Symbolics.SymbolicExpression;

var x = Expr.Variable("x");
var func = 3 * (x * x * x) + 2 * x - 6;
Console.WriteLine("f(x) = " + func.ToString());

var derivative = func.Differentiate(x);
Console.WriteLine("f'(x) = " + derivative.ToString());

Qui s'affiche dans la console :

f(x) = -6 + 2*x + 3*x^3

f'(x) = 2 + 9*x^2

2
Guillaume Sasdy 17 févr. 2020 à 18:59