Чтобы купить программу свяжитесь с автором: svbeat@yandex.ru
Или пройдите по ссылке: Программа SEM
Программа SEM для структурного моделирования.
Основное назначение программы SEM – это построение линейной и квадратичной факторной модели и латентно-регрессионной структурной модели.
В программы реализованы метод штрафных функций с методом конфигураций безусловной оптимизации, а также модель факторного анализа.
Описание интерфейсной части программы SEM.
Графический интерфейс программы SEM приведен на рисунках 1, 2.

Рис. 1. Скриншот программы SEM.

Рис. 2. Скриншот программы SEM.
В качестве входных данных для проведения факторного анализа используется матрица данных (тип данных «Z»). Ввод матрицы первичного факторного отображения можно осуществить различными способами:
использовать текстовый файл с матрицей данных с помощью операции File → Open File… Текстовый файл должен быть следующего формата: в качестве разделителя в числе используется точка, строки должны содержать числа, разделенные одним пробелом, после последнего числа в строке не должно быть каких-либо символов.
ввод данных вручную с помощью табличного компонента. Для этого предварительно необходимо установить размерность матрицы данных и нажать на кнопку «Refresh». Необходимо указать количество строк и столбцов. После ввода данных необходимо нажать кнопку «Save» при выбранном пункте данных «Z». Сохранить матрицу из таблицы можно использовав команду File → Save File As…
В окне настроек «Settings» возможна настройка параметров факторного вращения:
«Significance» − уровень значимости для определения возможной нижней границы модуля элемента результирующей факторной структуры,
«number of iter» − максимальное количество итераций оптимизации,
«penalty» − параметр метода штрафных функций, число на которое умножается ошибка функции минимизации на каждой итерации.
Проведение операции факторного анализа осуществляется нажатием кнопки «Go!».
Вывод результатов факторного анализа осуществляется переключением типов данных:
«A» − матрица факторного отображения, «P» − матрица значений факторов, «E» − невязки факторной модели. Для сохранения выбранной матрицы используется команда File → Save File As…
README
В программе осуществляется ввод матрицы исходных данных Z[][]
минимальная требуемая размерность данных должна быть 1x1
Т.е. файл с матрицей Z должен включать одно единственное число, например,
1.
В общем случае загружаемый файл матрицы Z может иметь m строк и n чисел разделенных пробелом.
В качестве разделителя числа используется точка.
Например, матрица Z размерности 2x3:
2.9 1.5 4.3
3.2 1.6 1.2
В программе также необходимо определить размерности матрицы A и P
размерность матрицы A задается как число уравнений на максимальное число параметров в уравнении.
Матрица P определяется размерность gxn.
Т.е. количество столбцов матрицы Z и P равно.
В программе размерность по столбцам может соответсвовать либо объектам либо состояниям одного объекта.
В программе можно использовать стандартизацию матрицы Z, т.е. приведение матрицы к единичной дисперсии и нулевому среднему.
В матрице Z строки соответствуют отдельным показателям,
а столбцы состояниям или объектам.
Матрица A может соответсвовать матрице факторной структуры в модели факторного анализа.
Для задания минимального значения общностей можно задать ненулевое значение significants.
Строки матрицы P соответствуют скрытым показателям.
Максимальное количество итераций в процессе оптимизации варьируемых значений матриц A и P задается в
number of iter.
Мультипликативный коэффициент метода штрафных функций задаеся в penalty.
Уравнения вводятся в текстовое поле settings.
Текст уравнений разделен на разделы:
//equations:
//constraints1:
//constraints2:
Раздел equations описывает уравнения невязки которых стремятся к нулю.
Раздел constraints1 описывает ограничения неравенства < 0.
Раздел constraints2 описывает ограничения равенства = 0.
перед разделом equations
доступно определение на языке Java Script определение вспомогательных функций.
В тестовом поле доступны пременные Z[][], A[][], P[][], m, n, g, t, seq, keq.
t это индекс текущего состояния или объекта.
seq - число уравнений раздела equations.
keq - максимальное количество параметров A[] в уравнениях.
Т.е. seqxkeq это размерность матрицы A.
Параметры A[][] не зависят от состояния или объекта t.
Тогда как скрытые показатели могут иметь свои значения для каждого обекта или состояния t:
P[0][t].
Если множество P[i][t] моделирует i-ую функцию.
Во временной развертке есть множество состояний, для каждого такого состояния задается система структурных уравнений. Текущее состояние определено индексом t - это перебераемые состояния, для которых минимизируются невязки структурных уравнений системы.
Пример 1 (СЛАУ):
function sum(x, y) {
return x + y;
}
function razn(x, y) {
return x - y;
}
//equations:
sum(P[0][0], P[1][0]) - 3
razn(P[0][0], P[1][0]) - 1
//constraints1:
//constraints2:
Объяснение:
sum и razn функции суммирования и разности.
P - матрица размерности 2x1.
Фактически это СЛАУ вида:
1*x + 1*y = 3
1*x - 1*y = 1
Решение
x = 3
y = 1
Пример 2 (Дифф. уравнение):
function diff(v) {
if(v < n- 2) {
return (-3*P[0][v] + 4*P[0][v+1]-P[0][v+2])/(Z[0][v + 1] - Z[0][v])/2;
}
if (v == n- 2) {
return diif2(v);
}
if (v == n - 1) {
return diff2(v);
}
}
function diff2(v) {
if(v < n - 1) {
return (P[0][v + 1] - P[0][v])/(Z[0][v + 1] - Z[0][v]);
}
return (P[0][v] - P[0][v - 1])/(Z[0][v] - Z[0][v - 1]);
}
//equations:
diff(t) - 2*Z[0][t]
//constraints1:
//constraints2:
P[0][0] - 0
P[0][1] - 0.01
P[0][2] - 0.04
Объяснение:
Функция diff и diff2 - это разностная формула производной в точке v.
Аргумент x со значениями
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Представлен матрицей Z[][] размерности 1x10.
Неизветсная функция y(x) представлена матрицей P[][] размерности 1x10.
Дифф. уравнение представлено в разделе equations
и соответствует следующему
dy(x)/dx = 2*y(x)
Задача Коши определа в разделе constraints2
y(0.0) = 0
y(0.1) = 0.01
y(0.2) = 0.04
Решение:
y(x) = x^2
function integral(v) {
var i;
var sum = 0;
for (i = 1; i < n; i++) {
sum += Z[0][v]*P[0][i]*(Z[0][i] - Z[0][i - 1]);
}
return sum;
}
//equations:
integral(t) - 2*P[0][t]
//constraints1:
//constraints2:
P[0][0] - 0
P[0][n-1] - 0.5
Объяснение:
Интегральное уравнение
2
S(x*y(s))ds = 2y(x)
0
y(0.0) = 0
y(2.0) = 1
Решение y(x) = x/2;
Таким образом в программе возможно находить решения нелинейных структурных уравнений,
частными случаями которых являются дифференциальные, интегральные и линейные системы уравнений.
Количество просмотров: 972