复合形法matlab,用matlab编写复合形法程序

41528d3028836879cd698677c3999917.gif用matlab编写复合形法程序

用 matlab 编写复合形法程序 浏览次数:1105 次悬赏分:50 | 提问时间:2009-1-30 23:21 | 提问者:凝丫头 | 问题为何被关闭 原函数是 f(x,y)=sinx*siny/(x*y) , x,y 的取值范围均为(-10,10)求助,用 MATLAB 编写复合形法!!拜托拜托其他回答 共 2 条 !* 说明 : 1.本程序为复合形法 *!* *!* 2.程序功能是求解约束最优化问题 *!* max F(x1,x2,…,xn) *!* s.t. Gi≤xi≤Hi *!* 其中 x1,x2,…, xn 为独立自变量, *!* xn+1~xm 为隐式变量,是 x1,x2,…,xn 的函数,Gi,Hi 为下界和上界,它们可以是常数(显式约束),*!* 也可以是自变量的函数(隐式约束) *!* 主程序中提供自变量的初始值,输入已知参数及打印最后结果 *!* *!* 3.输入变量说明 *!* N--显式自变量数 *!* M--约束组数 *!* K--构成复合形的顶点数,常用 N+1,可多取 *!* ITMAX--允许最多迭代次数 *!* IPRINT--打印控制参数,IPRINT=1,打印中间结果,IPRINT=0,不打印中间结果 *!* ALPHA--反射因子,常用 1.3 *!* BETA--收敛参数,例如函数的幅值乘 1E-4 *!* GAMMA--收敛参数,整数,常用值为 5 *!* DELTA--显式约束违反校正 ,小正数,如 X 向量幅值乘 1E-4 *!* X(1,J)--自变量初始可行点,=1,N *!* *!* 4.输出变量说明 *!* F--目标函数最大值勤 *!* X(I)--自变量最优值 ,I=1,N *!* *!* 5.使用方法 *!* 1)用户按照待解问题修改主程序 PARAMETER 的 N,M,K 值 *!* 2)在子程序 FUNC 中给定目标函数 *!* 3)在子程序 CONST 中给定 Hi 和 Gi,显式约束必须放在隐式约束前面 *!* 4)编写一个数据文件 COMPDAT,文件中的数据依次为下列变量的值,每个数之间用逗号分开 * !* ITMAX,IPRINT,ALPHA,BETA,GAMMA,DELTA,X(1,1),X(1,2),…,X(1,N) *!* 6.程序内容 *!* 1)本程序由一个主程序和六个子程序组成,主程序首先给定 N,M,K 值,然后定义数组维数 *!* PARAMETER(N=,M=,K=) *!* DIMENSION X(K,M),R(K,N),F(K),G(M),H(M),XC(N) *!* 主程序中提供自变量的初始值,输入已知参数及打印最后结果面 *!* 2)各子程序的作用分别为了 * !* CONSX—这是一个主要子程序,调用其它于程序及输出中间结果 *!* CHECK—检查所有的点是否满足约束条件, 对违背约束的点进行校正 *!* CENTR—计算中心点 *!* FUNC —目标函数,由用户提供 *!* CONST—规定显式和隐式约束 *!* RANDU—产生随机数 *!**********************************************************************************************************PROGRAM COMPLEXPARAMETER(N=3,M=4,K=6)DIMENSION X(K,M),R(K,N),F(K),G(M),H(M),XC(N)INTEGER GAMMAOPEN(4,FILE= COMPDATA )READ(4,*)ITMAX,IPRINT,ALPHA,BETA,GAMMA,DELTAREAD(4,*)(X(1,J),J=1,N)IX=2097151YFL=0.DO 100 II=2,KDO 100 JJ=1,NCALL RANDU(IX,YFL)R(II,JJ)=YFL100 CONTINUEOPEN(2,FILE= COMPD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值