efei 发表于 2006-6-15 20:51

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

http://vib.hit.edu.cn/vibbbs/Skins/Default/topicface/face1.gif一个最优化问题:如何求多变量函数在一定区间的最小值!
目标函数:
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:
在此范围内求最小值。 这应该怎么求了?用什么方法?
数学软件Maple 9,Mathematica 5或MATLAB 6.5.1中怎么算?用什么函数,不管哪一种都行,能不能给个例子或解法,谢谢!
可以固定一个变量后画出三维图形吗?
该怎么做?

[ 本帖最后由 lxq 于 2007-5-2 23:47 编辑 ]

dingd 发表于 2006-6-15 22:35

Min = 84177
t2=120
x=0
D为限制范围内不等于0的任意数

bainhome 发表于 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:
===============================================
1stopt代码:
Title "Type your title here";
Parameters x1,x2[.4,5],x3;
//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值附近,极值意义同样不大。

efei 发表于 2006-6-16 03:47

非常感谢楼上这位大哥
我是刚接触这方面的软件,还是外行
我得加油努力学习啊
再次感谢!!!

efei 发表于 2006-6-16 04:14

1stopt感觉不错
你有注册码吗?
谢谢
页: [1]
查看完整版本: [求助]一个最优化问题:如何求多变量函数在一定区间的最小值!