|
|
Система поддержки многометодных процедур оптимального управления
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Помощь : описание моделейназвание | паспорт | переменные | функции | ограниченияСоздание функций
Определение функций происходит в два этапа: на первом этапе задается название функции и ее описание, на втором -- тело функции.
В системе существует два зарезервированных имени функции, которые создаются автоматически и не могут быть удалены, это: 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)
// - умножает данную матрицу и матрицу,
// вектор или число
}
// ~ - метод не реализован
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||