Как отобразить производную - PullRequest
1 голос
/ 17 февраля 2020

Не уверен, что это правильный раздел этого сайта, но у меня есть вопрос.

Итак, я использую Mat hNet .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();
        }
    }
}

1 Ответ

2 голосов
/ 17 февраля 2020

Вопрос

Позвольте мне перефразировать вашу проблему, чтобы убедиться, что я вас правильно понимаю и отвечу: учитывая функцию 3x³ + 2x - 6, вы хотите вывести в консоль уравнение производной 9x² + 2

Математическая библиотека. NET Числа не могут этого сделать

Эта библиотека вычисляет . Он не пытается построить уравнение производной.

Look: Differentiate.DerivativeFun c метод возвращает C# метод Func<double, double>, который принимает удвоенный параметр, и возвращает двойной как результат. Эта подпись делает невозможным получение уравнения f '. Go глубже в коде и увидите, что библиотека предназначена для вычисления результатов с приближением.

Однако математика. NET Символика может ?

https://symbolics.mathdotnet.com/ - это то, что вы ищете. Я написал следующий код:

// 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());

, который печатается в консоли:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...