声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3949|回复: 4

[编程技巧] [求助]一个最优化问题:如何求多变量函数在一定区间的最小值!

[复制链接]
发表于 2006-6-15 20:51 | 显示全部楼层 |阅读模式

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

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

x

                               
登录/注册后可看大图
一个最优化问题:如何求多变量函数在一定区间的最小值!
目标函数:
P=61005*((1+x)*(1.02+7.25*x)*(120-t2)*D*Ln(100/(t2-40))/(((1+x)*(2.93+1.92*x)/D^2)^.16*(140-t2)))^.66+84177+6785*x*(120-t2)+336*(1+x)*(1.02+7.25*x)*(120-t2)*Ln(100/(t2-40))*(40+1/2*t2)/(((1+x)*(2.93+1.92*x)/D^2)^.16*(140-t2))+47.11*x;
参数范围:D:(0.4,5);t2:(40,120);x:[0,1]
在此范围内求最小值。 这应该怎么求了?用什么方法?
数学软件Maple 9,Mathematica 5或MATLAB 6.5.1中怎么算?用什么函数,不管哪一种都行,能不能给个例子或解法,谢谢!
可以固定一个变量后画出三维图形吗?
该怎么做?

[ 本帖最后由 lxq 于 2007-5-2 23:47 编辑 ]
回复
分享到:

使用道具 举报

发表于 2006-6-15 22:35 | 显示全部楼层
Min = 84177
t2=120
x=0
D为限制范围内不等于0的任意数
发表于 2006-6-15 23:03 | 显示全部楼层
% ********************************************************************
F=61005*((1+x(1))*(1.02+7.25*x(1))*(120-x(3))*x(2)*log(100/(x(3)-40))/(((1+x(1))*(2.93+1.92*x(1))/x(2)^2)^16*(140-x(3))))^66+...
84177+6785*x(1)*(120-x(3))+336*(1+x(1))*(1.02+7.25*x(1))*(120-x(3))*log(100/(x(3)-40))*(40+1/2*x(3))/(((1+x(1))*(2.93+1.92*x(1))/x(2)^2)^16*(140-x(3)))+47.11*x(1);
================================================
求解结果:
Optimization terminated: first-order optimality measure less
than options.TolFun and maximum constraint violation is less
than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
1 3
x =
0 0.45 120
fval =
84177
exitflag =
1
output =
iterations: 2
funcCount: 12
stepsize: 1
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 0
cgiterations: []
message: [1x144 char]
===============================================
1stopt代码:
Title "Type your title here";
Parameters x1[0,1],x2[.4,5],x3[40,120];
//Variable ;
minFunction 61005*((1+x1)*(1.02+7.25*x1)*(120-x3)*x2*log(100/(x3-40))/(((1+x1)*(2.93+1.92*x1)/x2^2)^16*(140-x3)))^66+84177+6785*x1*(120-x3)+336*(1+x1)*(1.02+7.25*x1)*(120-x3)*log(100/(x3-40))*(40+1/2*x3)/(((1+x1)*(2.93+1.92*x1)/x2^2)^16*(140-x3))+47.11*x1;
=================================================
求解结果:
====== 结果 ======

迭代数: 17
计算用时(时:分:秒:毫秒): 00:00:00:156
计算中止原因: 达到收敛判定标准
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
函数表达式: 61005*((1+x1)*(1.02+7.25*x1)*(120-x3)*x2*log(100/(x3-40))/(((1+x1)*(2.93+1.92*x1)/x2^2)^16*(140-x3)))^66
+84177+6785*x1*(120-x3)+336*(1+x1)*(1.02+7.25*x1)*(120-x3)*log(100/(x3-40))*(40+1/2*x3)/(((1+x1)*(2.93
+1.92*x1)/x2^2)^16*(140-x3))+47.11*x1
目标函数值(最小): 84177
x1: 0
x2: 0.401332868776814
x3: 45.1969769224524

====== 计算结束 ======
================================================
至于什么固定常量画3D图什么的,自己看看surf命令怎么用,整个问题是很简单的,看看书就可以了。
另外这个问题用我所取的常量(固定x或者固定t2)感觉绘图意义不大,多处数值inf,固定t2只有当其等于120才能画出一个接近40度的倾侧平面。另外亦有多点处可取在84177值附近,极值意义同样不大。
 楼主| 发表于 2006-6-16 03:47 | 显示全部楼层
非常感谢楼上这位大哥
我是刚接触这方面的软件,还是外行
我得加油努力学习啊
再次感谢!!!
 楼主| 发表于 2006-6-16 04:14 | 显示全部楼层
1stopt感觉不错
你有注册码吗?
谢谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-25 07:57 , Processed in 0.060827 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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