IMsNonLinearEquationsTransform.JacobianCalcFrequency

Синтаксис

JacobianCalcFrequency: Integer;

Описание

Свойство JacobianCalcFrequency определяет частоту вычисления якобиана при решении системы нелинейных уравнений методом Ньютона. Значение по умолчанию - единица, т.е. якобиан вычисляется при каждой итерации. Чем больше значение данного свойства, тем реже будет вычисляться якобиан и тем выше будет скорость решения системы уравнений.

Метод решения системы определяется свойством IMsNonLinearEquationsTransform.MethodType: оно должно иметь значение NonLinearEquationsType.NewtonMethod. При других методах решения свойство JacobianCalcFrequency игнорируется.

Пример

Для выполнения примера необходим контейнер моделирования с идентификатором «CONT_MODEL» и созданная в нем модель типа «Система нелинейных уравнений» с идентификатором «NON_LINEAR».

Sub Main;

Var

ActiveMetabase: IMetabase;

ModelCont: IMetabaseObjectDescriptor;

Descript: IMetabaseObjectDescriptor;

Obj: IMetabaseObject;

Model: IMsModel;

Eq: IMsNonLinearEquationsTransform;

Transform: IMsFormulaTransform;

Begin

ActiveMetabase := MetabaseClass.Active;

ModelCont := ActiveMetabase.ItemById("CONT_MODEL");

Descript := ActiveMetabase.ItemByIdNamespace("NON_LINEAR", ModelCont.Key);

Obj := Descript.Edit;

Model := Obj As IMsModel;

Model.TreatNullsAsZeros := True;

Transform := Model.Transform;

Eq := Transform.EquationsFormula.Method As IMsNonLinearEquationsTransform;

Eq.MethodType := NonLinearEquationsType.NewtonMethod;

Eq.DerivativeShift := 2.1;

Eq.LinearEqSolutionMethod := LinearEqSolutionType.InvMatrix;

Eq.JacobianCalcFrequency := 5;

Obj.Save;

End Sub Main;

После выполнения примера в качестве метода решения системы нелинейных уравнений будет установлен метод Ньютона. Для него будут заданы следующие параметры:

Затем модель будет сохранена.

См. также:

IMsNonLinearEquationsTransform