声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1296|回复: 9

[编程技巧] 一个优化问题

[复制链接]
发表于 2007-5-19 12:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
优化原问题贴出希望xjzuo大哥帮我看看。如果调试出来!烦请发到我信箱!实在感谢!
信箱:chendanyanmin@163.com

[ 本帖最后由 eight 于 2007-5-19 15:50 编辑 ]

数学模型.doc

27.5 KB, 下载次数: 18

原问题数学模型

回复
分享到:

使用道具 举报

发表于 2007-5-19 14:23 | 显示全部楼层
我看了一下,虽然用Matlab也可以计算,
但我觉得可能用1stOpt计算此类问题更合适一些.
计算结果如下:
另:希望不要在帖子里提到某个具体的人名,否则别人可能知道,也不太会参与讨论.
%%%%%%%%%%%%%%%%%%%
目标函数值(最小): 74.1162705016051
x1: 16.3524924850841
x2: 13.1524423763854
%%%%%%%%%%%%%%%%%%%
发表于 2007-5-19 14:35 | 显示全部楼层
我还是将Matlab的解也一并贴出吧,作个比较:
只是要注意将你原程序中的初值改一下:x0=[30.0,25.0]; 因为你的模型决定了x1>x2.

x =

  16.35244237639246  13.15244237639246


fval =

  74.11627049899573
发表于 2007-5-19 14:48 | 显示全部楼层
所以基本上现在可以肯定地说:优化后,"环的面积"为74.11627,
"内、外直径"分别为13.15244, 16.35244.

[ 本帖最后由 xjzuo 于 2007-5-19 16:42 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2007-5-20 13:08 | 显示全部楼层

多谢楼上!

谢谢!你用的程序还是我先贴出来这个吗?
首先建立目标函数M文件,fminconc.m
function f=myfun(x)
f=0.785*(x(1)^2-x(2)^2)
再建立非线性约束M文件,fmincono.m
function[c,ceq]=mycon(x)
c(1)=6292.99/(x(1)^3*(1-(x(2)/x(1))^4))-61320*((x(1)-x(2))/x(1))^(2/3)
c(2)=152.353*((x(1)^2+x(2)^2))^(1/2)-8000
c(3)=5197452/(x(1)^4-x(2)^4)-125
cep=0
设置线性约束,
A=[-1 1
1 0];
b=[-3.2;100];
设置初始值,变量下限值,调用优化程序
x0=[30.0;35.0];
lb=zeros(2,1);
[x,fval,exitflag,output,lambda]=fmincon(@fmincono,x0,A,b,[],[],lb,[],@fminconc)
就是吧X0=[30;35]改为[30;25]就可以运行了吗?请帮我改一下我原先的程序,并指出哪些地方出了问题!以便我处理更多的问题!谢谢
发表于 2007-5-20 14:21 | 显示全部楼层
不是。你的原程序有些问题。
几个问题如下:(你自己修改一下,问题即可解决)
%%%%%%%%%%%%%%%%%%%%%%%%
1. 函数名不统一,要修改.
2. cep=0 改为 ceq=[];
3.可以作如下修改:
A=[-1 1];
b=[-3.2];
lb=[0,0];
ub=[100,100];
 楼主| 发表于 2007-5-20 14:50 | 显示全部楼层
[x,fval,exitflag,output,lambda]=fmincon(@fmincono,x0,A,b,[],[],lb,[],@fminconc)
最后这句有错误吗?刚刚按照你的改还是出现以下提示:
??? Error using ==> fmincon
FMINCON cannot continue because user supplied nonlinear constraint function
failed with the following error:
One or more output arguments not assigned during call to 'e:\MATLAB701\work\fminconc.m (fminconc)'.
函数名统一需要改哪啊?
 楼主| 发表于 2007-5-20 14:53 | 显示全部楼层
麻烦你把正确的程序贴出来一下!我好对照修改!谢谢!
 楼主| 发表于 2007-5-20 17:23 | 显示全部楼层
是不是在fmincon上使用格式有错误啊?
 楼主| 发表于 2007-5-20 18:37 | 显示全部楼层
斑竹!能把你优化出来得到
x =

  16.35244237639246  13.15244237639246


fval =

  74.11627049899573
这个结果的程序贴出来吗?
我对照一下!看什么地方出了问题!谢谢!在线等!急


===================================
有时候一个问题提示到一定程度,是应该自己多思考一下的.
By xjzuo
===================================

[ 本帖最后由 xjzuo 于 2007-5-20 23:10 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-12 17:50 , Processed in 0.070916 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表