|
Система поддержки многометодных процедур оптимального управления
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Помощь : описание моделейназвание | паспорт | переменные | функции | ограниченияСоздание функций
Определение функций происходит в два этапа: на первом этапе задается название функции и ее описание, на втором -- тело функции.
В системе существует два зарезервированных имени функции, которые создаются автоматически и не могут быть удалены, это: main(t,x,u) и functional(x).
x(t+1) = main(t,x,u) Функция functional(x) возвращает число, соответсвующее значению функционала. functional есть конечная улучшаемая функция. Возможно описание любых других функций и использование их теле в указанных.
Функции задаются на языке JavaScript. При описании тела функции можно использовать ранее определенные для данной модели переменные и функции.
В качестве результата своей работы функция должна возвращать значение при помощи оператора return.
var t = main.arguments[0]; var x = main.arguments[1]; var u = main.arguments[2]; Доступные операции: создать, удалить, редактировать, тестировать.
Описание используемых структур данных: ///////////// CLASS VECTOR //////////////////////////////////////////// class Vector { Vector(size, data_string); // поля/////////// length // - размерность вектора type // - тип ("вектор") // методы///////// String toString() // - перевод в строку Vector roundVector(Number) // - округление до указанной точности String toScript() // - преобразование в строку типа // "Vector(size, data_string)" Vector copy() // - возвращает копию вектора Vector put(place, Number) // - помещает в указанную коорд. значение Number get(place) // - получает из указанной коорд. значение Vector plus(Vector| Number, place) // - складывает данный вектор с вектором // или числом, находящимся по указанной // координате place Vector minus(Vector | Number, place) // - вычитает из данного вектора вектор // или число, находящееся по указанной // координате place Vector mult(Vector | Number)// - умножает данный вектор на переданный // вектор или число } ///////////// CLASS TIMEVECTOR //////////////////////////////////////// class TimeVector { TimeVector(size, time, data_string); // поля/////////// length // - длина массива векторов по времени xdim // - размерность вектора в массиве type // - тип ("временной вектор") // методы///////// String toString() // - перевод в строку TimeVector roundVector(Number) // - округление до указанной точности String toScript() // - преобразование в строку типа // "TimeVector(size, time, data_string)" TimeVector copy() // - возвращает копию временного вектора TimeVector put(place, Vector) // - помещает в указанный адрес // передаваемый вектор Vector get(place) // - получает из указанного адреса вектор TimeVector plus(Vector| TimeVector) // - складывает данный массив векторов с // переданным вектором или с массивом // векторов поэлементно } ///////////// CLASS MATRIX /////////////////////////////////////////// class Matrix { Matrix(col, row, data_string); // поля/////////// col // - количество строк row // - количество столбцов type // - тип ("матрица") // методы///////// String toString() // - перевод в строку ~Matrix roundMatrix(Number) // - округление до указанной точности String toScript() // - преобразование в строку типа // "Matrix(col, row, data_string)" Matrix copy() // - возвращает копию матрицы Matrix put(col, row, Number)// - помещает в указанные коорд. значение Number | Vector get(col, row) // - получает из указанной коорд. число, // если row указано и вектор, если указано ~Matrix plus(Matrix) // - складывает данную матрицу с переданной ~Matrix minus(Matrix) // - вычитает из данной матрицы переданную ~Matrix mult(Vector | Matrix | Number) // - умножает данную матрицу и матрицу, // вектор или число } // ~ - метод не реализован |