42 KiB
数学函数 / 优化
nonLP_fmincon(fun, x_0, a, b, aeq, beq, nonlcon)
声明:function
使用起作用集法求解带线性约束和非线性约束的优化问题
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数名称 |
x_0 |
array | 初始点 |
a |
array | 线性不等式约束矩阵 |
b |
array | 线性不等式约束向量 |
aeq |
array | 线性等式约束矩阵 |
beq |
array | 线性等式约束向量 |
nonlcon |
string | 非线性约束函数名称,空字符串表示无 |
返回:array
示例
范例01:调用无显式约束的目标函数
empty_matrix := array();
return nonLP_fmincon(
"sum", array(1.0), empty_matrix, empty_matrix,
empty_matrix, empty_matrix, "");
Fmin(fun, x0, a, b, aeq, beq, lb, ub, nonlcon)
声明:function
用起作用集法求任意形式的非线性优化问题,返回最优点和最优值。新的非线性规划代码建议使用 Prog_N。
来源:天软金融分析.NET函数大全 > TSL函数 > 数学函数 > 优化 > Fmin
Source ID:21143
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数名 |
x0 |
array | 初值向量 |
a |
array | 线性不等式约束系数矩阵 |
b |
array | 线性不等式约束右侧向量 |
aeq |
array | 线性等式约束系数矩阵 |
beq |
array | 线性等式约束右侧向量 |
lb |
array | 变量下界 |
ub |
array | 变量上界 |
nonlcon |
string | 非线性约束回调名;无约束时传空字符串 |
返回:array
示例
return Fmin(
"sum",
array(0.0),
array(),
array(),
array(),
array(),
array(-1.0),
array(1.0),
""
);
// 输出:返回包含最优点和最优值的数组
H_J_CallBack(x, r)
声明:function
H_J算法回调
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 一维数字数组类型 |
r |
float | 实数类型 |
返回:float
H_J_Method_Pgm(call_back)
声明:function
H_J算法测试
| 参数 | 类型 | 说明 |
|---|---|---|
call_back |
string | 字符串类型,计算目标值的回调 |
返回:array
Hooke_Jeeves_Method(x0, d0, d_min, r, call_back)
声明:function
H-J法求解无约束最优化问题
| 参数 | 类型 | 说明 |
|---|---|---|
x0 |
array | 一维数字数组类型 |
d0 |
array | 一维数字数组类型 |
d_min |
array | 一维数字数组类型 |
r |
float | 实数类型 |
call_back |
string | 字符串类型,计算目标值的回调 |
返回:array
示例
return Hooke_Jeeves_Method(
array(2.0),
array(1.0),
array(0.01),
0.5,
"H_J_CallBack"
);
// 输出:返回包含 1 个元素的最优解数组
intLinProg(f, a, b, aeq, beq, int_par)
声明:function
(线性规划,包括整数规划,01规划建议统一使用prog_L函数)解决如下整数规划模型问题
| 参数 | 类型 | 说明 |
|---|---|---|
f |
array of real | 一维实数数组,表示整数规划模型的目标函数系数; |
a |
array of real | 二维实数数组,表示整数规划模型的带“”约束方程系数矩阵,如果是带“”,则将该方程两边同乘以“-1”; |
b |
array of real | 一维实数数组,表示整数规划模型带“”约束方程的约束值; |
aeq |
array of real | 二维实数数组,表示整数规划模型带“=”约束方程系数矩阵; |
beq |
array of real | 一维实数数组,表示整数规划模型带“=”约束方程的约束值; |
int_par |
array of real | 一维整数数组,表示要取整数的变量,缺省时表示全部变量取整; |
返回:array
示例
求解模型:最大化 40x1 + 90x2,约束为 9x1 + 7x2 <= 56、7x1 + 20x2 <= 70,且 x1、x2 为非负整数。
范例01:整数线性规划
f := array(-40, -90);
a := array((9, 7), (7, 20));
b := array(56, 70);
aeq := array();
beq := array();
int_par := array();
return intLinProg(f, a, b, aeq, beq, int_par);
// 输出:x1=4,x2=2,f(x)=-340
linearProgramming(f, a, b, aeq, beq)
声明:function
(线性规划,包括整数规划,01规划建议统一使用prog_L函数),解决如下线性规划模型问题
| 参数 | 类型 | 说明 |
|---|---|---|
f |
array of real | 一维实数数组,表示线性规划模型的目标函数系数; |
a |
array of real | 二维实数数组,表示线性规划模型的带“”约束方程系数矩阵,如果是带“”,则将该方程两边同乘以“-1”; |
b |
array of real | 一维实数数组,表示线性规划模型带“”约束方程的约束值; |
aeq |
array of real | 二维实数数组,表示线性规划模型带“=”约束方程系数矩阵; |
beq |
array of real | 一维实数数组,表示线性规划模型带“=”约束方程的约束值; |
返回:any
示例
求解模型:最小化 -5x1 - 4x2 - 6x3,约束为 x1 - x2 + x3 <= 20、3x1 + 2x2 + 4x3 <= 42、3x1 + 2x2 <= 30,且各变量非负。
范例01:线性规划
f := array(-5, -4, -6);
a := array((1, -1, 1), (3, 2, 4), (3, 2, 0));
b := array(20, 42, 30);
aeq := array();
beq := array();
return linearProgramming(f, a, b, aeq, beq);
// 输出:x1=0,x2=15,x3=3,f(x)=-78
NonLP_BSearch(fun, x0, h)
声明:function
一维盲人搜索方法,目标函数既可以是单峰,也可以是多峰。返回最优点和最优值。(中间函数)
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型 |
x0 |
float | 初值,为实数类型; |
h |
float | 步长,为实数类型; |
返回:array
NonLP_Fibonacci(fun, a, b)
声明:function
(一维最小值搜索建议统一使用NonLP_Fminbnd函数),斐波那契法,用斐波那契数列去搜索[a,b]区间内目标函数的最小值,返回最优点和最优值
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型; |
a |
float | 区间左侧,为实数类型; |
b |
float | 区间右侧,为实数类型 |
返回:array
NonLP_Fminbnd(fun, a, b, methods)
声明:function
一维最小值搜索,求解模型如下: min fun(x)
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数(函数名字符串) |
a |
float | 下界,实数 |
b |
float | 上界,实数 |
methods |
any | 方法选择0 :黄金分割法+抛物线法(默认)1 : 盲人收索法2 :黄金分割法3 :斐波那契法 |
返回:array
示例
return NonLP_Fminbnd("abs", -2.0, 3.0, 0);
// 输出:返回包含 X、opt 和 Iter 的结果数组
NonLP_Fminsearch(fun, x0, methods)
声明:function
无约束最小值求解,求解模型如下: min fun(x)
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数,函数名字符串 |
x0 |
array | 初始值,一维数字数组 |
methods |
any | 方法选择0 单纯形法1 转轴法2 模式搜索法3 拟牛顿下山法(默认方法,推荐使用) |
返回:array
NonLP_Golden(fun, a, b)
声明:function
(一维最小值搜索建议统一使用NonLP_Fminbnd函数),黄金分割法搜索[a,b]区间内目标函数的最小值,返回最优点和最优值
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型; |
a |
float | 区间左侧,为实数类型; |
b |
float | 区间右侧,为实数类型 |
返回:array
NonLP_GP(fun, a, b)
声明:function
(一维最小值搜索建议统一使用NonLP_Fminbnd函数),黄金分割+抛物线插值法:一维优化方法,返回最优点和最优值
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型; |
a |
float | 区间左侧,为实数类型; |
b |
float | 区间右侧,为实数类型; |
返回:array
NonLP_Hooke_Jeeves(fun, x0)
声明:function
(无约束最小值求解建议统一使用NonLP_Fminsearch函数)模式搜索法,又叫Hooke-Jeeves法,求解无约束多维极值问题,返回最优点和最优值
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型; |
x0 |
array | 初值向量,为一维数组类型 |
返回:array
NonLP_minFactor(fun, x0, aeq, beq, nonlcon)
声明:function
(非线性规划建议统一使用prog_n函数),乘子法求等式约束问题,可求解如下问题
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型; |
x0 |
array | 初值向量,为一维数组类型; |
aeq |
array | 线性矩阵等式约束,为二维数组类型; |
beq |
array | 线性向量等式约束值,为一维数组类型; |
nonlcon |
string | 非线性约束回调,为字符串类型; |
返回:array
NonLP_minPS(fun, x0, a, b, nonlcon)
声明:function
(非线性规划建议统一使用prog_n函数),坐标轮换法求不等式约束问题,初值必须在可行域内!可求解如下问题
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型; |
x0 |
array | 初值向量,为一维数组类型; |
a |
array | 线性矩阵不等式约束,为二维数组类型; |
b |
array | 线性向量不等式约束值,为一维数组类型; |
nonlcon |
string | 非线性约束回调,为字符串类型; |
返回:array
NonLP_minSUMT(fun, x0, a, b, aeq, beq, nonlcon, methods)
声明:function
(非线性规划建议统一使用prog_n函数)混合惩罚函数+转轴法/模式搜索法:可解所有优化问题,返回最优点、最优值和迭代次数。可求解如下问题
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型; |
x0 |
array | 初值向量,为一维数组类型; |
a |
array | 线性矩阵不等式约束,为二维数组类型; |
b |
array | 线性向量不等式约束值,为一维数组类型; |
aeq |
array | 线性矩阵等式约束,为二维数组类型; |
beq |
array | 线性向量等式约束值,为一维数组类型; |
nonlcon |
string | 非线性约束回调,为字符串类型; |
methods |
string | 方法选择,’NM’,’Rb’,’HJ’ |
返回:array
NonLP_Nelder(fun, x0)
声明:function
(无约束最小值求解建议统一使用NonLP_Fminsearch函数)内德-米德法,无约束多维的非线性规划方法,即单纯形法。返回最优点和最优值
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型; |
x0 |
array | 初值向量,为一维数组类型 |
返回:array
NonLP_Range(fun, x0, h)
声明:function
进退法,可一维优化问题的确定搜索区间,但目标函数必须是单峰函数,返回结果为上下界的取值。(中间函数)
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型 |
x0 |
float | 初值,为实数类型; |
h |
float | 步长,为实数类型; |
返回:array
NonLP_Rosenbrock(fun, x0)
声明:function
(无约束最小值求解建议统一使用NonLP_Fminsearch函数)Rosenbrock求无约束多维极值问题,返回最优点和最优值
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
string | 目标函数表达式,为字符串类型; |
x0 |
array | 初值向量,为一维数组类型 |
返回:array
ozProg(f, a, b)
声明:function
(线性规划,包括整数规划,01规划建议统一使用prog_L函数),0-1规划,解决如下0-1整数规划模型问题 返回该0-1规划模型的最小值及其对应变量的取值,其中可以转化为和
| 参数 | 类型 | 说明 |
|---|---|---|
f |
array | 一维实数数组,表示0-1规划模型的目标函数系数; |
a |
array | 二维实数数组,表示0-1规划模型的带“”约束方程系数矩阵,如果是带“”,则将该方程两边同乘以“-1”; |
b |
array | 一维实数数组,表示0-1规划模型带“”约束方程的约束值; |
返回:array
示例
f := array(-3, 2, -5);
a := array((1, 2, -1), (1, 4, 1), (1, 1, 0), (4, 0, 1));
b := array(2, 4, 3, 6);
ozProg(f, a, b);
// 输出:x1=1,x2=0,x3=1,f(x)=-8
Prog_L(f, a, b, aeq, beq, lb, ub, x0, options, ozarr, intarr)
声明:function
使用单纯形法,和起作用集法,系统默认作用集形法求解线性规划问题,即求解目标都为线性和约束条件都为线性的规划问题 Prog_L(f,A,b) 求解不等式约束 Prog_L(f,A,b,Aeq,beq) 求解不等式约束、等式约束 Prog_L(f,A,b,Aeq,beq,LB,UB) 求解不等式约束、等式约束、上下界限约束 Prog_L(f,A,b,Aeq,beq,LB,UB,x0,options) 求解不等式约束、等式约束,上下限约束,加入用户算法设置 Prog_L(f,A,b,Aeq,beq,LB,UB,x0,options,ozarr) 求解不等式约束、等式约束、上下限约束、0-1 约束 Prog_L(f,A,b,Aeq,beq,LB,UB,x0,options,ozarr,intarr) 求解不等式约束、等式约束、上下限约束、0-1 约束、整数约束 模型表达: min= sum(f*x) st. A:*x<=b Aeq :* x = Beq lb<x<ub x = (0 or 1) x = integer
| 参数 | 类型 | 说明 |
|---|---|---|
f |
array | 线性目标,一维数字数组,不可缺省 |
a |
array | 线性约束,二维数字数组,不可缺省 |
b |
array | 线性约束,一维数字数组,不可缺省 |
aeq |
array | 线性约束,二维数字数组,缺省为空 |
beq |
array | 线性约束,一维数字数组,缺省为空 |
lb |
array | 下界约束,一维数字数组,缺省为空 |
ub |
array | 上界约束,一维数字数组,缺省为空 |
x0 |
array | 初始值,一维数组 |
options |
array | 选项设置,数据表类型,缺省为:;array( 'algorithm' :'activeset',//'simplex' 单纯形,'activeset' 作用集法;//(当整数、0-1 约束时推荐使用);'maxiter': 400 , //最大迭代次数;'tolcon': 1.0e-10, //约束容忍误差;'tolfun' : 1.0e-8 , //目标最小误差;'tolx' : 1.0e-8 //变量最小变化) |
ozarr |
array | 01约束条件,第1个变量为01变量则ozarr := array(0) |
intarr |
array | 整数约束条件,第2,3两个变量为整数变量则 intarr:=array(1,2);返回结果:;数据表类型;ret["X"] : 变量取值,一维数字数组;ret["Fval"] :规划目标值,实数;ret["Error_M"] : 结果信息,整数;ret["Iter"] : 迭代次数,整数 |
返回:array
Prog_M(fun, x0, goal, weight, a, b, aeq, beq, lb, ub, nlc, options)
声明:function
求解多目标规划问题 模型表达: min AttainFactor st. f(x)-AttainFactor*wight <=goal //目标约束 c(x)<=0; //非线性不等式约束 ceq(x)=0; //非线性等式约束 A*x<=b; //线性不等式约束 aeq*x=beq; //线性等式约束 lb<=x<=ub ; //边界约束
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
array | 目标函数,函数名字符串 |
x0 |
array | 初始值 |
goal |
array | 目标中各个分目标的差,一维数组和目标个数相同 |
weight |
array | 目标中各个分量的在总体中的比重,一维数组和目标个数相同 |
a |
array | 不等式约束,二维数组 |
b |
array | 不等式约束,一维数组 |
aeq |
array | 等式约束,二维数组 |
beq |
array | 等式约束,一维数组 |
lb |
array | 下界,一维数组 |
ub |
array | 上界,一维数组 |
nlc |
string | 非线性约束,约束函数名字符串 |
options |
array | 算法参数设置,默认为:array('maxiter':400, //最大迭代次数'maxfunevals':'100*numberofvariables', //目标回调最大次数'tolcon':1.0e-6,//约束容忍误差'tolfun' :1.0e-6,//目标最小误差'tolx' :1.0e-6, //变量最小变化'diffmaxchange':1e-1,//差分时最大步长'diffminchange':1e-8)// 差分时最小步长 |
返回:array
Prog_N(fun, x0, a, b, aeq, beq, lb, ub, nlc, options)
声明:function
采用拟牛顿下山方法求解非线性规划求解。 Prog_n(fun,x0) 无约束最小值约束 Prog_n(fun,x0,A,B) 非线性不等式约束求解 Prog_n(fun,A,b,Aeq,beq) 求解不等式约束、等式约束 Prog_n(fun,x0,A,b,Aeq,beq,LB,UB) 求解不等式约束、等式约束、上下界限约束 Prog_n(fun,x0,A,b,Aeq,beq,LB,UB,x0,options) 模型表达 1非线性无约束最小值 min fun(x) 2非线性规划求解 min fun(x) st. c(x)<=0; //非线性不等式约束 ceq(x)=0; //非线性等式约束 A*x<=b; //线性不等式约束 aeq*x=beq; //线性等式约束 lb<=x<=ub ; //边界约束
| 参数 | 类型 | 说明 |
|---|---|---|
fun |
array | 目标函数,目标函数名字符串类型,不可缺省。其中,目标函数的返回值必须是一个实数(1x1的矩阵,或长度为1的数组都不允许) |
x0 |
array | 初始值,一维数字数组,不可缺省 |
a |
array | 不等式约束,二维数组,缺省为空 |
b |
array | 不等式约束,一维数组,缺省为空 |
aeq |
array | 等式约束,二维数组,缺省为空 |
beq |
array | 等式约束,一维数组,缺省为空 |
lb |
array | 下界,一维数组,缺省为空 |
ub |
array | 上界,一维数组,缺省为空 |
nlc |
array | 非线性约束,函数名,字符串 |
options |
array | 算法参数设置,默认为array('maxiter':400 , //最大迭代次数'maxfunevals':'100*numberofvariables', //目标回调最大次数'tolcon':1.0e-6 ,//约束容忍误差'tolfun' :1.0e-6 ,//目标最小误差'tolx' :1.0e-6 , //变量最小变化'diffmaxchange':1e-1,//差分时最大步长'diffminchange':1e-8 )// 差分时最小步长 |
返回:array
Prog_Q(h, f, a, b, aeq, beq, lb, ub, x0, options)
声明:function
二次规划问题求解(采用作用集方法) Prog_Q(H,f,A,b) 求解不等式约束 Prog_Q(H,f,A,b,Aeq,beq) 求解不等式约束、等式约束 Prog_Q(H,f,A,b,Aeq,beq,LB,UB) 求解不等式约束、等式约束、上下界限约束 Prog_Q(H,f,A,b,Aeq,beq,LB,UB,x0,options) 模型表达: min= `x* H* x /2 + sum(f*x) st. A:*x<=b Aeq :* x = Beq; lb<x<ub
| 参数 | 类型 | 说明 |
|---|---|---|
h |
array | 二次型,正定二次型二维数字数组,不可缺省 |
f |
array | 线性目标,一维数字数组,不可缺省 |
a |
array | 线性约束,二维数字数组,不可缺省 |
b |
array | 线性约束,一维数字数组,不可缺省 |
aeq |
array | 线性约束,二维数字数组,缺省为空 |
beq |
array | 线性约束,一维数字数组,缺省为空 |
lb |
array | 下界约束,一维数字数组,缺省为空 |
ub |
array | 上界约束,一维数字数组,缺省为空 |
x0 |
array | 初始值,一维数组 |
options |
array | 选项设置,数据表类型,缺省为array('maxiter': 400 , //最大迭代次数'tolcon': 1.0e-6, //约束容忍误差'tolfun' : 1.0e-6 , //目标最小误差'tolx' : 1.0e-6 //变量最小变化) |
返回:array
quadLagR(h, f, aeq, beq)
声明:function
(二次规划建议统一使用prog_Q函数)解决如下二次规划模型问题
| 参数 | 类型 | 说明 |
|---|---|---|
h |
array,tablearray | 二维实数数组,表示二次项目标函数系数,为对称矩阵 |
f |
array,tablearray | 一维实数数组,表示二次规划模型的目标函数系数; |
aeq |
array,tablearray | 二维实数数组,表示二次规划模型带“=”约束方程系数矩阵; |
beq |
array,tablearray | 一维实数数组,表示二次规划模型带“=”约束方程的约束值。 |
返回:any
示例
求解模型:最小化 2x1^2 + x2^2 + x1*x2 - x1 - x2,约束为 x1 + x2 = 1。
范例01:带等式约束的二次规划
h := Array((4, 1), (1, 2));
f := Array(-1, -1);
aeq := array((1, 1));
beq := array(1);
return quadLagR(h, f, aeq, beq);
// 输出:x1=0.25, x2=0.75, 最小值f(x)=-0.125
quadprog(h, f, a, b, aeq, beq)
声明:function
(二次规划建议统一使用prog_Q函数),解决如下二次规划模型问题
| 参数 | 类型 | 说明 |
|---|---|---|
h |
array of real | 二维实数数组,表示二次项目标函数系数,为对称矩阵 |
f |
array of real | 一维实数数组,表示二次规划模型的目标函数系数; |
a |
array of real | 二维实数数组,表示二次规划模型的带“”约束方程系数矩阵,如果是带“”,则将该方程两边同乘以“-1”; |
b |
array of real | 一维实数数组,表示二次规划模型带“”约束方程的约束值; |
aeq |
array of real | 二维实数数组,表示二次规划模型带“=”约束方程系数矩阵; |
beq |
array of real | 一维实数数组,表示二次规划模型带“=”约束方程的约束值; |
返回:array
示例
求解模型:最小化 1/2*x1^2 + x2^2 - x1*x2 - 2x1 - 6x2,并满足文中所列不等式及非负约束。
范例01:带不等式约束的二次规划
h := Array((1, -1), (-1, 2));
f := Array(-2, -6);
a := Array((1, 1), (-1, 2), (2, 1));
b := array(2, 2, 3);
aeq := array();
beq := array();
return quadprog(h, f, a, b, aeq, beq);
// 输出:x1=0.6667,x2=1.3333,f(x)=-8.2222
quadTrackRoute(h, f, a, b, aeq, beq, x0)
声明:function
(二次规划建议统一使用prog_Q函数)解决如下二次规划模型问题
| 参数 | 类型 | 说明 |
|---|---|---|
h |
array of real | 二维实数数组,表示二次项目标函数系数,为对称矩阵 |
f |
一维实数数组,表示二次规划模型的目标函数系数; | |
a |
array of real | 二维实数数组,表示二次规划模型的带“”约束方程系数矩阵,如果是带“”,则将该方程两边同乘以“-1”; |
b |
array of real | 一维实数数组,表示二次规划模型带“”约束方程的约束值; |
aeq |
array of real | 二维实数数组,表示二次规划模型带“=”约束方程系数矩阵; |
beq |
array of real | 一维实数数组,表示二次规划模型带“=”约束方程的约束值; |
x0 |
array of real | 变量的初始点。 |
返回:array
示例
求解模型:最小化 2x1^2 + 2x2^2 - x1*x2 + 8x1 - 6x2,约束为 x1 + x2 <= 2、2x1 - x2 <= 1。
范例01:指定初始点的二次规划
h := Array((4, -1), (-1, 4));
f := Array(8, -6);
a := Array((1, 1), (2, -1));
b := array(2, 1);
aeq := array();
beq := array();
x0 := array(0, 0);
return quadTrackRoute(h, f, a, b, aeq, beq, x0);
// 输出:x1=-1.733333, x2=1.066667, 最小值f(x)=-10.13333
SUMT_Method(x0, call_back)
声明:function
SUMT法求解有约束最优化问题
| 参数 | 类型 | 说明 |
|---|---|---|
x0 |
array | 一维数字数组类型,各个变量的初始值 |
call_back |
string | 字符串类型,计算目标值的回调 |
返回:array
示例
return SUMT_Method(array(1.0), "Sumt_Method_CallBack");
// 输出:返回包含 1 个元素的最优解数组
Sumt_Method__Pgm()
声明:function
Sumt算法测试
返回:array
Sumt_Method_CallBack(x, r)
声明:function
Sumt算法回调
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 一维数字数组类型 |
r |
float | 实数类型 |
返回:float
tsOptimizer
声明:class
天软规划求解基类,以面向对象方式封装 Prog_N、Prog_Q 和 Prog_L
来源:depth=3
Source ID:21162
Source URL:http://www.tinysoft.com/tsdn/helpdoc/display.tsl?id=21162
Ff
声明:field
线性目标
可见性:public
类型:array
Fh
声明:field
二次型
可见性:public
类型:array
Fa
声明:field
线性约束系数矩阵
可见性:public
类型:array
Fb
声明:field
线性约束右侧向量
可见性:public
类型:array
FAeq
声明:field
线性等式约束系数矩阵
可见性:public
类型:array
FBeq
声明:field
线性等式约束右侧向量
可见性:public
类型:array
FLb
声明:field
变量下界约束
可见性:public
类型:array
FUb
声明:field
变量上界约束
可见性:public
类型:array
FOzarr
声明:field
0-1 约束条件
可见性:public
类型:array
FIntarr
声明:field
整数约束条件
可见性:public
类型:array
Fx0
声明:field
优化初始值
可见性:public
类型:array
Foptions
声明:field
算法选项设置
可见性:public
类型:array
Fresult
声明:field
优化后的结果
可见性:public
类型:array
Obj(x)
声明:function
计算优化目标
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
x |
real | 当前优化变量向量,用于计算目标函数值 |
返回:float
Con(x)
声明:function
增加非线性约束
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
x |
array | 当前优化变量向量,用于计算非线性约束值 |
返回:array
Prog()
声明:function
执行优化并返回 Fresult
可见性:public
返回:array
Prog_Debug()
声明:function
查询优化结果并进行约束校验
可见性:public
返回:array
Prog_Debugprint(space)
声明:function
打印当前优化结果质量
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
space |
int | 可选。默认 0。优化结果打印时使用的缩进/格式控制值 |
返回:nil
Prog_ConsTest_Linear()
声明:function
检测当前线性约束是否可行
可见性:public
返回:array