gradient
Функция вычисления градиента таблично заданной функции.
Синтаксис
DeriArr = gradient(ArgArr, FuncArr);
gradient(XArr, YArr, ZMatr, OutdZdXMatr, OutdZdYMatr);
Аргументы
| Имя | Тип данных | Описание |
|---|---|---|
| ArgArr | array |
Массив аргументов одномерной табличной функции |
| FuncArr | array |
Массив значений одномерной табличной функции |
| XArr | array |
Массив аргументов по X (по строкам) для двумерной табличной функции |
| YArr | array |
Массив аргументов по Y (по столбцам) для двумерной табличной функции |
| ZMatr | array2 |
Матрица значений двумерной табличной функции |
| OutdZdXMatr | array2 |
Выходная матрица частных производных по аргументу X (по строкам) двумерной табличной функции |
| OutdZdYMatr | array2 |
Выходная матрица частных производных по аргументу Y (по столбцам) двумерной табличной функции |
Описание
Осуществляется вычисление градиента (частных производных) в точках таблично заданной
одномерной кривой или двумерной поверхности. Для вычисления градиента в i-ой точке кривая
(поверхность) аппроксимируется параболой, проходящей через точки с номерами i-1, i, i+1. Для
определения градиента в первой и последней точках таблицы используются первые три и
последние три точки таблицы соответственно.
DeriArr = gradient(ArgArr, FuncArr)– функция вычисляет массив значений градиентаDeriArrво всех точках одномерной табличной кривой. Табличная кривая задается массивамиArgArrиFuncArr, которые должны иметь одинаковое количество элементов. Размер массива значений градиентаDeriArrбудет равен размерам массивовArgArrиFuncArr.gradient(XArr, YArr, ZMatr, OutdZdXMatr, OutdZdYMatr)– функция вычисляет матрицы частных производных во всех точках двумерной табличной поверхности, которая задается двумя массивами координатXArrиYArrи матрицей значенийZMatr. Количество строк матрицыZMatrдолжно быть равно количеству элементов массиваXArr. Количество столбцов матрицыZMatrдолжно быть равно количеству элементов массиваYArr. Рассчитанные матрицы частных производных по X и по Y возвращаются через аргументыOutdZdXMatrиOutdZdYMatrсоответственно. Перед вызовом функции аргументыOutdZdXMatrиOutdZdYMatrдолжны быть объявлены как переменные типа матрица, размер матриц может быть произвольным. После выполнения функции размеры матриц частных производныхOutdZdXMatrиOutdZdYMatrбудут равны размерам матрицыZMatr.
Результат
| Имя | Тип данных | Описание |
|---|---|---|
| DeriArr | array |
Массив значений градиента одномерной функции |
Пример
//Градиент одномерной функции
var
//Массив аргументов
ArgArr:array = 0..5,
//Массив значений функции (зависимость Y = X^2)
FuncArr:array = ArgArr^2,
//Массив значений градиента (производной)
DeriArr:array;
//Вычисление массива значений производных
DeriArr = gradient(ArgArr, FuncArr);
В результате выполнения скрипта переменной DeriArr будет присвоено значение
[0 , 2 , 4 , 6 , 8 , 10].
Пример
//Градиент двумерной функции
var
//Массив аргументов по строкам
Xarr:array = -2..2:0.5,
//Массив аргументов по столбцам
Yarr:array = -2..2:0.5,
//Матрица значений функции
Zmatr:array2 = matrix(9, 9),
//Матрица частных производных по X
dZdXMatr:array2,
//Матрица частных производных по Y
dZdYMatr:array2,
//Счетчики циклов
i:integer,
j:integer;
//Вычисление значений функции Z = X^2 + Y^3
for(i = 1; 9)
for(j = 1; 9)
Zmatr[i,j] = Xarr[i]^2 + Yarr[j]^3;
//Вычисление массива значений производных
gradient(Xarr, Yarr, Zmatr, dZdXMatr, dZdYMatr);
В результате выполнения скрипта элементам матриц dZdXMatr и
dZdYMatr будут присвоены значения частных производных табличной функции
по X и по Y соответственно.
Дополнительные материалы
Нет.