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 соответственно.

Дополнительные материалы

Нет.