2.0新功能 (2006年10月7日):
1:求解非线性方程组功能大幅改进,【麦夸特法+通用全局优化算法】已成为解非线性方程组的首选算法,其改进后的求解能力总体上强于任何其它算法。
2:最大最小优化问题求解 (MinMax):一种多目标优化求解功能。
3:智能拟合功能:该功能特别适合于数据量很大时的拟合,可数倍甚至数十倍缩短计算时间,数据量越大,效果越明显。
4:改进的非常容易实现的带等式或不等式约束的拟合
5:算法自动选择功能:对于刚接触1stOpt的用户而言,由于不清楚各算法的特点及适用范围,常无法确定如何选择算法,该功能可根据问题的类型自动选择算法。
6:函数表达式以脚本语言描述表达功能:对于复杂、繁琐、冗长的问题,可通过脚本语言来描述
7:常字符串数组表达功能:定义字符串数组功能
例:ConstStr S(1:3) = [x1^2+x2, x1*x2-x2^2, sin(x1)+x2];
等同于:ConstStr S1 = x1^2+x2, S2 = x1*x2-x2^2, S3 = sin(x1)+x2;
例:ConstStr S(1:3) = x2*[x1^2+x2, x1*x2-x2^2, sin(x1)+x2];
等同于:ConstStr S1 = x2*(x1^2+x2), S2 = x2*(x1*x2-x2^2), S3 = x2*(sin(x1)+x2);
8:公式拟合自动搜索时稳健模式搜索功能
9:0-1规划,修正数值范围溢出问题
10:公式自动拟合库中,增加众多峰函数
11:约束函数连续表达功能:
例:10.3>=x1+sin(x2)*x3>=0
等同于:
x1+sin(x2)*x3>=0;
x1+sin(x2)*x3<=10.3;
例:Parameter x1[0.5,0.66], x4[0.04,0.2], x7[,0.035];
MinFunction 0.44*x1+0.94*x2+0.88*x3+0.48*x4+4*x5+3.4*x6+2.3*x7+0.12*x8+1.6*x9+19*x10+25*x11;
3230*x1+2640*x2+2500*x3+1730*x4+2900*x5+2230*x6+2500*x7>2750;
8.27*x1+43*x2+40*x3+15.4*x4+62*x5+50*x6+45*x7>15;
8.27*x1+43*x2+40*x3+15.4*x4+62*x5+50*x6+45*x7<16;
0.038*x1+0.32*x2+0.32*x3+0.14*x4+3.91*x5+4.6*x6+33.4*x8+21*x9>2.85;
0.038*x1+0.32*x2+0.32*x3+0.14*x4+3.91*x5+4.6*x6+33.4*x8+21*x9<3;
0.058*x1+0.15*x2+0.14*x3+0.32*x4+2.9*x5+2.15*x6+0.14*x8+18.5*x9>0.5;
0.058*x1+0.15*x2+0.14*x3+0.32*x4+2.9*x5+2.15*x6+0.14*x8+18.5*x9<0.55;
0.26*x1+2.45*x2+2.41*x3+0.54*x4+4.35*x5+3.28*x6+2.6*x7+99*x11>0.8;
0.125*x1+0.48*x2+0.51*x3+0.18*x4+1.65*x5+1.31*x6+0.65*x7+99*x10>0.31;
0.298*x1+1.08*x2+1.4*x3+0.58*x4+2.21*x5+1.74*x6+0.83*x7+99*x10>0.58;
0.298*x1+1.08*x2+1.4*x3+0.58*x4+2.21*x5+1.74*x6+0.83*x7+99*x10<0.63;
0.077*x1+0.6*x2+0.6*x3+0.27*x4+0.8*x5+0.64*x6>0.19;
x2+x3>0.1;
x2+x3<0.22;
x5+x6>0.03;
x5+x6<0.07;
x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11=1;
可写为:
Parameter x1[0.5,0.66], x4[0.04,0.2],x7[,0.035];
MinFunction 0.44*x1+0.94*x2+0.88*x3+0.48*x4+4*x5+3.4*x6+2.3*x7+0.12*x8+1.6*x9+19*x10+25*x11;
3230*x1+2640*x2+2500*x3+1730*x4+2900*x5+2230*x6+2500*x7>2750;
16>8.27*x1+43*x2+40*x3+15.4*x4+62*x5+50*x6+45*x7>15;
3>0.038*x1+0.32*x2+0.32*x3+0.14*x4+3.91*x5+4.6*x6+33.4*x8+21*x9>2.85;
0.55>0.058*x1+0.15*x2+0.14*x3+0.32*x4+2.9*x5+2.15*x6+0.14*x8+18.5*x9>0.5;
0.26*x1+2.45*x2+2.41*x3+0.54*x4+4.35*x5+3.28*x6+2.6*x7+99*x11>0.8;
0.125*x1+0.48*x2+0.51*x3+0.18*x4+1.65*x5+1.31*x6+0.65*x7+99*x10>0.31;
0.63>0.298*x1+1.08*x2+1.4*x3+0.58*x4+2.21*x5+1.74*x6+0.83*x7+99*x10>0.58;
0.077*x1+0.6*x2+0.6*x3+0.27*x4+0.8*x5+0.64*x6>0.19;
0.22>x2+x3>0.1;
0.07>x5+x6>0.03;
x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11=1;
12:矩阵计算,基本函数求导计算
13:带权重的拟合功能
14:带约束的超越方程求解
15:For语句,支持循环表达式
16:支持自动重复计算
17:改进的预测/验证功能
18:DataSet,AutoData定义数据时,可指定起始基数:
缺省时,起始基数为1
例:
DataSet;
EndDataSet:
例:AutoData x = 1:1:10;
例:定义起始基数为0
DataSet [Base = 0];
EndDataSet:
例:AutoData[Base = 0] x = 1:1:10;
19:增加IFF关键字
20:代码中直接从Excel表单和1stOpt电子表格中读取数据:必须指定文件名、表单名及数据范围
例:从Excel文件“C:\Data1.xls”中的“Sheet1”中读取数据进行拟合计算,数据范围从A1到B20
Function y = a + b*x + Exp(c*x);
DataFile C:\Data1.xls[Sheet1[A1:B20]];
21:常数连续定义:
例:Constant A(1:3) = 2;
等同于 Constant A1 = 2, A2 = 2, A3 = 2;
例:Constant A(1:3) = 10*[1,2,3];
等同于 Constant A(1:3) = [10,20,30];
22:增强的编程模式,可完善自动处理任意多的等式及不等式约束,对于复杂的带约束的工程问题,可轻易求解。
23:修正定义多维常数、参数时出现的问题
1.5新功能 (2006年4月18日):
1:单纯形线性规划算法中,可进行整数规划、混合整数规划计算。
2:编程模式中,对约束条件的自动处理功能。
3: 权重拟合功能
4:结果数据自动保存功能。
5:同一代码本中,所有问题同时求解功能。
6:函数优化预测检验功能
7:数据自动产生功能: 关键字: AutoData
例:AutoData X = 1:1:10, Y = X^2+X;
等同于:Constant X(1:10) = [1,2,3,4,5,6,7,8,9,10];
Constant Y(1:10) = [2,6,12,20,30,42,56,72,90,110];
8: 循环语句关键字:For,支持无穷镶套
例:For(i=1:3)(x[i]>=A[i]*i);
等同于: x[1] >=A[1]*1;
x[2] >=A[2]*2;
x[3] >=A[3]*3;
9: 新增特殊密度分布函数:BetaCDF, BetaPDF, BinoCDF, BinoPDF, Chi2CDF, Chi2PDF, ExpCDF, ExpPDF, PoissCDF, PoissPDF, TCDF, TPDF
10:增加函数求导计算功能
例:(x*exp(x+sin(x)))’ ==>
diff(x*exp(x+sin(x)),x) = exp(x+sin(x))+exp(x+sin(x))*(1+cos(x))*x
diff(x*exp(x+sin(x)),x=3) = exp(x+sin(x))+exp(x+sin(x))*(1+cos(x))*x = 23.82417126
11:新增:
BinParameter: 定义0-1变量;
IntParameter: 定义正整数变量;
ParameterDomain:定义变量范围;
PlotXYZData:画三维数据图;
PlotMeshData:画三维网格数据图;
PlotPoint3D:画三维点图;
12:众多改进,运行更快捷、稳定。
错误纠正:
1:函数表达式中出现空格显错的问题。
2:拟合时,用“DataFile”调用外部数据文件出错。
3:用超过两次“DataSet- EndDataSet”定义数据时出错
4:拟合时,用“SkipStep“出错。
5:函数中出现诸如“2E+10“时显错的问题。
6: 其它诸多Bugs