前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一起来看看1stOpt到底有多强大?

一起来看看1stOpt到底有多强大?

作者头像
巴山学长
发布2020-09-03 10:14:37
1K0
发布2020-09-03 10:14:37
举报
文章被收录于专栏:巴山学长巴山学长
昨日众筹推送后,不少小伙伴反馈怎么没有实例呢?没有实例怎么知道1stOpt是龙还是蛇?今天小编就给大家展示几个1stOpt实例。

特别说明:本次采用的1stOpt 5.5 英文试用版,实例全部来自于5.0官方帮助文档。

由于试用版有参数个数限制,计算参数不能超过4个,目前官方最新版为8.0,9.0版即将发布,下面就一起来看看吧。

1、二维针状全局最优的函数

该函数的函数图形如下所示,在(50,50)处取得全局最大值 1.1512,其第二极大值为1.12837,它是一个多峰值函数,采用传统优化方法几乎不能找到全局最优点。

1stOpt源代码:

代码语言:javascript
复制
Parameter x[0,100], y[0,100];
ConstStr r = sqrt((x-50)^2+(y-50)^2)+exp(1);
MaxFunction Sin(r)/r + 1;

2、隐函数优化

1stOpt源代码:

代码语言:javascript
复制
Parameter x[-1,7], y[-2,2];
Minimum = z;
Function z = sin((z*x-0.5)^2 + x*2*y^2-z/10)*exp(-((x-0.5-exp(-y+z))^2 + y^2-z/5+3));

3、非线性规划

1stOpt源代码:

代码语言:javascript
复制
Parameter x1[0,10], x2[0,10];
MaxFunction (sin(2*pi*x1))^3*sin(2*pi*x2)/(x1^3*(x1+x2));
x1^2-x2+1 <= 0;
1-x1+(x2-4)^2 <= 0;

4、整数规划

1stOpt源代码:

代码语言:javascript
复制
Parameter x(1:2)[0,100,0], x3[3,100,0], x4[0,100,0];
MinFunction -2*x1-x2-4*x3-3*x4;
2*x2+x3+4*x4<54;
3*x1+4*x2+5*x3-x4<62;
x1+2*x2+x3-2*x4<-3;

5、带等式约束的优化问题

1stOpt源代码:

代码语言:javascript
复制
Algorithm = DE1[100];
PenaltyFactor = 5;
ParameterDomain = [-50,50];
MinFunction exp(sin(50*x)) +sin(60*exp(y)) +sin(70*sin(x))
+sin(sin(80*y))-sin(10*(x+y))+(x^2+y^2)^sin(y)/4;
x-((cos(y))^x-x)^y<=0;

6、非线性拟合

美国国家标准与技术研究院(NIST)提供有一套 27 道非线性拟合测试题,世界上几乎所有著名的数据分析软件包都以能通过该套测试题集为验证标准。经对比测试,1stOpt 是目前唯一不依赖使用 NIST 提供的初始值, 而能以任意随机初始值就可求得全部最优解的软件包(如果使用 NIST 提供的初始值,则更可轻易求得最优解)。由于在实际应用当中,选择确定合理的初始值组是一件非常困难的事,尤其是在参数量比较多的情况下。从此意义而言1stOpt的实用能力达业界领先水平。

示例代码:

代码语言:javascript
复制
Variables x, y;
Parameters a, b, c, d;
Function y = a-b*exp(-c*x^d);
Data;
0.05 0.13
0.15 0.13
0.25 0.19
0.35 0.34

7、求解带积分方程组

本题来源于小木虫,由于参数限制,改为4个参数:

http://muchong.com/t-4192342-1-authorid-8600892

代码语言:javascript
复制
Parameters a,b,c,d;
Function int(exp(a+b*x+c*x^2+d*x^3),x=0.5779,13.5883)=1;
int(x*exp(a+b*x+c*x^2+d*x^3),x=0.5779,13.5883)=6.86;
int(x^2*exp(a+b*x+c*x^2+d*x^3),x=0.5779,13.5883)=54.39;
int(x^3*exp(a+b*x+c*x^2+d*x^3),x=0.5779,13.5883)=478.14;

由于功能和参数限制,没法演示1stOpt更为强大的求解功能,暂且演示到此。

从上面的示例也不难看出,1stOpt的代码编写比起matlab更加容易,至于计算效率嘛,大家可以拿以上的例子去matlab中试试,没有对比就没有伤害

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档