Welcome to svlab

Member Login

Lost your password?

Not a member yet? Sign Up!

Предыдущий пост
04 Jan 2019

Чтобы купить программу свяжитесь с автором:  svbeat@yandex.ru
Или пройдите по ссылке: Программа SEM

Программа SEM для структурного моделирования.

Основное назначение программы SEM – это построение линейной и квадратичной  факторной модели и латентно-регрессионной структурной модели.

В программы реализованы метод штрафных функций с методом конфигураций безусловной оптимизации, а также модель факторного анализа.

Описание интерфейсной части программы SEM.

Графический интерфейс программы SEM приведен на рисунках 1, 2.

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

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

В качестве входных данных для проведения факторного анализа используется матрица данных (тип данных «Z»). Ввод матрицы первичного факторного отображения можно осуществить различными способами:

использовать текстовый файл с матрицей данных с помощью операции FileOpen File Текстовый файл должен быть следующего формата: в качестве разделителя в числе используется точка, строки должны содержать числа, разделенные одним пробелом, после последнего числа в строке не должно быть каких-либо символов.

ввод данных вручную с помощью табличного компонента. Для этого предварительно необходимо установить размерность матрицы данных и нажать на кнопку «Refresh». Необходимо указать количество строк и столбцов. После ввода данных необходимо нажать кнопку «Save» при выбранном пункте данных «Z». Сохранить матрицу из таблицы можно использовав команду FileSave File As

В окне настроек «Settings» возможна настройка параметров факторного вращения:

«Significance» − уровень значимости для определения возможной нижней границы модуля элемента результирующей факторной структуры,

«number of iter» − максимальное количество итераций оптимизации,

 «penalty» − параметр метода штрафных функций, число на которое умножается ошибка функции минимизации на каждой итерации.

Проведение операции факторного анализа осуществляется нажатием кнопки «Go!».

Вывод результатов факторного анализа осуществляется переключением типов данных:

«A» − матрица факторного отображения, «P» − матрица значений факторов, «E» − невязки факторной модели. Для сохранения выбранной матрицы используется команда FileSave 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
 
Объяснение:
Интегральное уравнение
1
 S(x*y(s))ds = 2y(x)
0
y(0.0) = 0
y(1.0) = 0.5
Решение y(x) = x/2;
 
Таким образом в программе возможно находить решения нелинейных структурных уравнений,
частными случаями которых являются дифференциальные, интегральные и линейные системы уравнений.

SHARE:

#

Post dicussion

Контакты

Для связи svbeat@yandex.ru

  • 1
  • 1