Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
4 / 2 / 2
Регистрация: 01.12.2017
Сообщений: 11

Производная MathNet

09.10.2019, 18:25. Показов 3954. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Может кто подсказать с работой в библиотеке MathNet.Numerics
Нужно посчитать производную, только аналитически, а не значение в точке. Понимаю, что написать такое пока вряд ли могу, решил воспользоваться библиотекой. Но ничего не понял из их документации на сайте. Может, кто уже сталкивался с подобной задачей и может подсказать либо источник с понятным объяснением либо же каким методом можно воспользоваться .Заранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.10.2019, 18:25
Ответы с готовыми решениями:

Класс Matrix из библиотеки MathNet
Привет, дядьки и тетьки!)) У меня задание: вычислить разность двух матриц, вычести из матрицы число, проверока матриц на разность. Нашла в...

Библиотеки DotNetMatrix и MathNet.Numerics
мне нужно написать прожку, чтобы пользователь вбивал матрицу, а возвращать соответственно собственные вектора (правые и левые). Пытал...

Частная производная
Привет всем, уважаемые, кто поможет реализовать нахождение частной производной? Допустим есть функция f(x,y)=x^2-y^2+2xy+5 Нужно...

1
10 / 7 / 3
Регистрация: 25.02.2018
Сообщений: 86
10.10.2019, 01:58
я у них вообще дифференцирования не видел, но этот код должен работать:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Linq.Expressions;
 
 
namespace Reflection.Differentiation
{
    public class Algebra
    {
        public class ParamModifier : ExpressionVisitor
        {
            public ParameterExpression param;
            public ConstantExpression eps = Expression.Constant(1e-7);
            public Expression Modify(Expression expression, ParameterExpression param)
            {
                this.param = param;
                return Visit(expression);
            }
 
            protected override Expression VisitMethodCall(MethodCallExpression node)
            {
                bool change = false;
 
                foreach (var el in node.Arguments)
                    if (el.NodeType.Equals(ExpressionType.Parameter))
                     change = true; 
 
                if (change)
                    return Expression.Call(node.Method, Expression.Add(param, eps));
 
                return base.VisitMethodCall(node);
            }
 
            protected override Expression VisitBinary(BinaryExpression b)
            {
                bool change = false;
 
                Expression left = this.Visit(b.Left);
                Expression right = this.Visit(b.Right);
                if (left.NodeType == ExpressionType.Parameter)
                {
                    change = true;
                    left = Expression.Add(param, eps);
                }
                if (right.NodeType == ExpressionType.Parameter)
                {
                    change = true;
                    right = Expression.Add(param, eps);
                }
                if (change)
                    return Expression.MakeBinary(b.NodeType, left, right);
 
                return base.VisitBinary(b);
            }
        }
 
        public static Expression<Func<double, double>> Differentiate(Expression<Func<double, double>> function)
        {
            var eps = Expression.Constant(1e-7);
            var param = function.Parameters[0];
            var body = function.Body;
 
            ParamModifier treeModifier = new ParamModifier();
            var modifiedExpr = body.NodeType.Equals(ExpressionType.Parameter) ? Expression.Add(param, eps) : treeModifier.Modify(body, param);
 
            var expression = Expression.Lambda<Func<double, double>>(
            Expression.Divide( Expression.Subtract( modifiedExpr, body ), eps), param);
 
            return expression;
        }
    }
}
тут получишь функцию как символьное дифференцирование. Но вообще рекомендую для этого язык R использовать, там всё очень просто делается
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.10.2019, 01:58
Помогаю со студенческими работами здесь

Производная функции
Исходная функция представлена в виде строки вида: &quot;-6*x^3-x^2+3*x+2&quot; или &quot;sqrt(sin(2*x))&quot; ну или вообще любого вида, я преобразую её в...

Производная гиберболического тангенса
День добрый, мне нужно создать функцию которая будет являться производной вот от этой функции //Функция приведения в диапазон ...

Производная, код приближенного вычисления
Доброго времени суток. Столкнулся с проблемой поиска производной. Программа должна находить корень по методу хорд. Во время...

MathNet Fit.Polynomial Получаю абсурдные результаты
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using...

Производная и Math.Net
Нужно найти десятую производную от заданой функции или хотя бы от x^2-2-lnx. Нашел библиотеку Math.Net, кто-нибудь с ней работал? Что-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru