[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.17 Распределение данных

Команда MGL: hist RES xdat adat
Команда MGL: hist RES xdat ydat adat
Команда MGL: hist RES xdat ydat zdat adat
Метод класса mglGraph: mglData Hist (const mglDataA &x, const mglDataA &a, const char *opt="")
Метод класса mglGraph: mglData Hist (const mglDataA &x, const mglDataA &y, const mglDataA &a, const char *opt="")
Метод класса mglGraph: mglData Hist (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *opt="")
Функция С: HMDT mgl_hist_x (HMGL gr, HCDT x, HCDT a, const char *opt)
Функция С: HMDT mgl_hist_xy (HMGL gr, HCDT x, HCDT y, HCDT a, const char *opt)
Функция С: HMDT mgl_hist_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT a, const char *opt)

Создают распределения данных. Они не рисуют данные. Функции могут быть полезны в случае когда данные пользователя определены на случайно расположенных точка (например, после PIC расчетов) и он хочет построить график, требующий регулярных данных (данных на сетках). Диапазон сеток равен диапазону осей координат. Массивы x, y, z определяют положение (координаты) точек. Массив a задает значения данных. Число точек в результате res – максимум из размера res и значения mglFitPnts.

Команда MGL: fill dat 'eq'
Команда MGL: fill dat 'eq' vdat
Команда MGL: fill dat 'eq' vdat wdat
Метод класса mglGraph: void Fill (mglData &u, const char *eq, const char *opt="")
Метод класса mglGraph: void Fill (mglData &u, const char *eq, const mglDataA &v, const char *opt="")
Метод класса mglGraph: void Fill (mglData &u, const char *eq, const mglDataA &v, const mglDataA &w, const char *opt="")
Функция С: void mgl_data_fill_eq (HMGL gr, HMDT u, const char *eq, HCDTv, HCDTw, const char *opt)

Заполняют значения массива ‘u’ в соответствии с формулой в строке eq. Формула – произвольное выражение, зависящее от переменных ‘x’, ‘y’, ‘z’, ‘u’, ‘v’, ‘w’. Координаты ‘x’, ‘y’, ‘z’ полагаются в диапазоне изменения осей координат. Переменная ‘u’ – значение исходного массива. Переменные ‘v’ и ‘w’ – значения массивов v, w, которые могут быть NULL (т.е. могут быть опущены).

MGL command: datagrid dat xdat ydat zdat
Метод класса mglGraph: void DataGrid (mglData &u, const mglDataA &x, const mglDataA &y, const mglDataA &z, const char *opt="")
Функция С: void mgl_data_grid (HMGL gr, HMDT u, HCDT x, HCDT y, HCDT z, const char *opt)

Заполняет значения массива ‘u’ результатом линейной интерполяции по триангулированной поверхности, найденной по произвольно расположенным точкам ‘x’, ‘y’, ‘z’. NAN значение используется для точек сетки вне триангулированной поверхности.

Команда MGL: pde RES 'ham' ini_re ini_im [dz=0.1 k0=100]
Метод класса mglGraph: mglData PDE (const char *ham, const mglDataA &ini_re, const mglDataA &ini_im, mreal dz=0.1, mreal k0=100, const char *opt="")
Функция С: HMDT mgl_pde_solve (HMGL gr, const char *ham, HCDT ini_re, HCDT ini_im, mreal dz, mreal k0, const char *opt)

Решает уравнение в частных производных du/dz = i*k0*ham(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy – псевдо-дифференциальные оперторы. Параметры ini_re, ini_im задают действительную и мнимую часть начального распределения поля. Координаты ‘x’, ‘y’, ‘z’ полагаются в диапазоне изменения осей координат. Отмечу, ято в действительности этот диапазон увеличен на 3/2 для уменьшения отражения от границ сетки. Параметр dz задает шаг по эволюционной координате z. Сейчас используется упрощенный вид функции ham – исключены все “смешанные” члены (типа ‘x*p’->x*d/dx). Например, в 2D случае это функция вида ham = f(p,z) + g(x,z,u). Однако, коммутирующие члены (типа ‘x*q’->x*d/dy) разрешены. Переменная ‘u’ используется для амплитуды поля |u|, что позволяет решать нелинейные задачи – например уравнение Шредингера ham="p^2 + q^2 - u^2". Вы можете задавать мнимую часть для поглощения волн, например ham = "p^2 + i*x*(x>0)", но только для линейной зависимости от переменной ‘i’ (т.е. ham = hre+i*him). См. раздел PDE solving hints, для примеров кода и графика.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated by Autobuild on September 28, 2013 using texi2html 1.82.