Не удается использовать функции оптимизации с ilnumerics в c#

#c# #optimization #ilnumerics

#c# #оптимизация #числовые данные

Вопрос:

Если я прав, в ilnumerics есть набор инструментов оптимизации. После того, как я успешно установил ilnumerics в свой проект, я попытался написать несколько примеров из http://ilnumerics.net/media/ILNumericsOptimizationToolboxDocumentation.pdf в нем. Однако в любое время я использую * = Optimization .*возникает ошибка, например, «Оптимизация» является неопределенной переменной. «Имя «Оптимизация» не существует в текущем контексте»

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ILNumerics;

namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
}

class Program : ILMath
{
    public static ILRetArray<double> MeyerFunc(ILInArray<double> x, ILInArray<double> t)
    {
        using (ILScope.Enter(x, t))
        {
            return x[0] * exp(x[1] / (t   x[2]));
        }
    }
    //The computation of the minimum is done as follows: 
    // Minimum computation: 
    ILArray<double> t = linspace<double>(0, 15, 16).T;
    ILArray<double> ydata = array<double>(34780.0, 28610.0, 23650.0, 19630.0, 16370.0,
     13720.0, 11540.0, 9744.0, 8261.0, 7030.0,
    6005.0, 5147.0, 4427.0, 3820.0, 3307.0, 2872.0);

    ILArray<double> x0 = array<double>(1.0, 200.0, 100.0);

    Func<ILInArray<double>, ILRetArray<double>> meyerfunction = x =>
    {
        using (ILScope.Enter(x))
        {
            return MeyerFunc(x, t);
        }
    };

    ILArray<double> xm = Optimization.optimpdl(meyerfunction, x0, ydata);
    }
}
  

Комментарии:

1. there is an error, like Вставьте полное исключение точно так, как оно появляется. Также укажите номер строки, в которой это происходит.

2. Я также вижу, что строка ILArray<double> xopt появляется вне Main функции. Вы уверены, что это должно быть там? Optimization Предполагается, что это статический класс? Если это так, то вы, вероятно, не включили правильное пространство имен, чтобы оно было определено и доступно.

3. Я отредактировал вопрос

Ответ №1:

Строка

 ILArray<double> xopt = Optimization.optimpdl(objfunc, zeros<double>(2, 1)); 
  

предполагается, что он находится внутри основной функции, а не после и вне ее.